From 57eb126416ff6386bf21e7fad03783acb4b0171a Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 2 Oct 2019 16:00:37 +0200 Subject: [PATCH 001/388] build: Bump version to 0.19.0 Prepare for 0.19.0rc1. Tree-SHA512: 94be2a465ccba56252b6d9aa9ed493cebef4c37668fa7aad4caeb42ca60c6789b107eb0f3956ca91f846f5e8a55f85371864a5697c4e5474b64cb6c1acfe59b2 --- build_msvc/bitcoin_config.h | 6 +++--- configure.ac | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build_msvc/bitcoin_config.h b/build_msvc/bitcoin_config.h index 66cc1208a1..fd7a2dcfb8 100644 --- a/build_msvc/bitcoin_config.h +++ b/build_msvc/bitcoin_config.h @@ -8,16 +8,16 @@ #define CLIENT_VERSION_BUILD 0 /* Version is release */ -#define CLIENT_VERSION_IS_RELEASE false +#define CLIENT_VERSION_IS_RELEASE true /* Major version */ #define CLIENT_VERSION_MAJOR 0 /* Minor version */ -#define CLIENT_VERSION_MINOR 18 +#define CLIENT_VERSION_MINOR 19 /* Build revision */ -#define CLIENT_VERSION_REVISION 99 +#define CLIENT_VERSION_REVISION 0 /* Copyright holder(s) before %s replacement */ #define COPYRIGHT_HOLDERS "The %s developers" diff --git a/configure.ac b/configure.ac index 2445b72683..f0befe66fa 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,11 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) -define(_CLIENT_VERSION_MINOR, 18) -define(_CLIENT_VERSION_REVISION, 99) +define(_CLIENT_VERSION_MINOR, 19) +define(_CLIENT_VERSION_REVISION, 0) define(_CLIENT_VERSION_BUILD, 0) -define(_CLIENT_VERSION_RC, 0) -define(_CLIENT_VERSION_IS_RELEASE, false) +define(_CLIENT_VERSION_RC, 1) +define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2019) define(_COPYRIGHT_HOLDERS,[The %s developers]) define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]]) From 76ec335234ba66064fb89a1b5c942984963dcbad Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 2 Oct 2019 17:19:13 +0200 Subject: [PATCH 002/388] qt: Translations update pre-rc1 Tree-SHA512: d3bafa862826d90f281e753d1398c19c83f298ad22c86ab46999ef1a566df61a27ad127f35ea84f908620eec1c5c89e1b82505e7b3be94ca75f97e48706f34f5 --- src/qt/locale/bitcoin_fi.ts | 28 ++++++++++++++++++++++++++++ src/qt/locale/bitcoin_zh_CN.ts | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index 2db4e598a9..efa3defba3 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Nämä ovat Bitcoin-osoitteesi maksujen lähettämistä varten. Tarkista aina määrä ja vastaanotto-osoite ennen kolikoiden lähettämistä. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Nämä ovat sinun Bitcoin osoitteesi maksujen vastaanottamista varten. Käytä 'Luo uusi vastaanotto-osoite' painiketta vastaantto tabissä luodaksesi uuden osoitteen. + &Copy Address &Kopioi osoite @@ -131,6 +135,10 @@ Repeat new passphrase Toista uusi tunnuslause + + Show passphrase + Näytä salasanalause + Encrypt wallet Salaa lompakko @@ -171,6 +179,26 @@ Wallet encrypted Lompakko salattiin + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Syötä uusi salasanalause lompakolle <br/>Ole hyvä ja käytä salasanalausetta, jossa on <b>kymmenen tai enemmän sattumanvaraisia merkkjä tai <b>kahdeksan tai enemmän sanoja</b> . + + + Enter the old passphrase and new passphrase for the wallet. + Syötä vanha ja uusi salasanalause lompakolle. + + + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Muista, että salaamalla lompakkosi et täysin pysty suojaamaan bitcoineja varkaudelta, jotka aiheutuvat koneellasi olevista haittaohjelmista. + + + Wallet to be encrypted + Lompakko tulee salata + + + Your wallet is about to be encrypted. + Lompakkosi tulee kohta salatuksi. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. TÄRKEÄÄ: Kaikki tekemäsi vanhan lompakon varmuuskopiot pitäisi korvata uusilla suojatuilla varmuuskopioilla. Turvallisuussyistä edelliset varmuuskopiot muuttuvat turhiksi, kun aloitat uuden suojatun lompakon käytön. diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index 910c33a4d4..82bc22f836 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -1494,7 +1494,7 @@ Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. - 由于BIP70具有广泛的安全缺陷,强烈建议您忽略任何要求更换钱包的商家指引。 + 由于BIP70具有广泛的安全缺陷,无论哪个商家指引要求您更换钱包,我们都建议您不要听信。 If you are receiving this error you should request the merchant provide a BIP21 compatible URI. From 9fdaaecf4928f597ce4db49abaa11bcc178bb5cb Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 3 Oct 2019 06:08:52 +0200 Subject: [PATCH 003/388] Don't rename main thread at process level Set only the internal name. Fixes #17036 for both `bitcoind` and `bitcoin-qt`. Github-Pull: #17038 Rebased-From: 07e4bdba3bd46c3a15dedb0a2660453c300643dc Tree-SHA512: ed6f1b95a23c4c7863982ee6972429be5af0702ea93f0f17d32d2ef4b01446b1c0528eeadc45289609eda5c02ea68b3d722b8ecdfdf4fff4b02592c2188cc0a0 --- src/bitcoind.cpp | 2 +- src/qt/bitcoin.cpp | 2 +- src/util/threadnames.cpp | 5 +++++ src/util/threadnames.h | 5 +++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 615b955f6e..17989a4214 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -45,7 +45,7 @@ static bool AppInit(int argc, char* argv[]) bool fRet = false; - util::ThreadRename("init"); + util::ThreadSetInternalName("init"); // // Parameters diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index ec6075c8fb..86f4dc91a1 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -416,7 +416,7 @@ int GuiMain(int argc, char* argv[]) std::tie(argc, argv) = winArgs.get(); #endif SetupEnvironment(); - util::ThreadRename("main"); + util::ThreadSetInternalName("main"); std::unique_ptr node = interfaces::MakeNode(); diff --git a/src/util/threadnames.cpp b/src/util/threadnames.cpp index c25e9ed661..168f9325d0 100644 --- a/src/util/threadnames.cpp +++ b/src/util/threadnames.cpp @@ -60,3 +60,8 @@ void util::ThreadRename(std::string&& name) SetThreadName(("b-" + name).c_str()); SetInternalName(std::move(name)); } + +void util::ThreadSetInternalName(std::string&& name) +{ + SetInternalName(std::move(name)); +} diff --git a/src/util/threadnames.h b/src/util/threadnames.h index aaf07b9bf8..69a1b55bfe 100644 --- a/src/util/threadnames.h +++ b/src/util/threadnames.h @@ -10,8 +10,13 @@ namespace util { //! Rename a thread both in terms of an internal (in-memory) name as well //! as its system thread name. +//! @note Do not call this for the main thread, as this will interfere with +//! UNIX utilities such as top and killall. Use ThreadSetInternalName instead. void ThreadRename(std::string&&); +//! Set the internal (in-memory) name of the current thread only. +void ThreadSetInternalName(std::string&&); + //! Get the thread's internal (in-memory) name; used e.g. for identification in //! logging. const std::string& ThreadGetInternalName(); From 6db76c6bc7fe749d1576b69dd5742c5400a476eb Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 4 Oct 2019 07:36:42 +0200 Subject: [PATCH 004/388] qt: Periodic translations update Pull new translations from Transifex. Fixes #17027. Tree-SHA512: 0c1708e9cf8180fd98715a078d49f417c78418b7c42fa31ca5a9c0d5766a54c217cef1f76a9edee1780d65635194536f2e63109a8a8560589aa2f6bb98d6b0de --- src/qt/locale/bitcoin_de.ts | 108 ++- src/qt/locale/bitcoin_zh_TW.ts | 1598 ++++++++++++++++---------------- 2 files changed, 905 insertions(+), 801 deletions(-) diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index e73bb22c75..7156409b64 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Dies sind Ihre Bitcoin-Adressen zum Tätigen von Überweisungen. Bitte prüfen Sie den Betrag und die Adresse des Empfängers, bevor Sie Bitcoins überweisen. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Dies sind Ihre Bitcoin-Adressen zum Empfangen von Zahlungen. Benutze den 'Neue Empfangsadresse erstellen' Button im Empfangen-Tab, um eine neue Addresse zu erstellen. + &Copy Address &Adresse kopieren @@ -175,10 +179,30 @@ Wallet encrypted Wallet verschlüsselt + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Geben Sie die neue Passphrase für die Wallet ein.<br/>Bitte benutzen Sie eine Passphrase bestehend aus <b>zehn oder mehr zufälligen Zeichen</b> oder <b>acht oder mehr Wörtern</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Geben Sie die alte und die neue Wallet-Passphrase ein. + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. Beachten Sie, dass das Verschlüsseln Ihrer Brieftasche nicht komplett vor Diebstahl Ihrer Bitcoins durch Malware schützt, die Ihren Computer infiziert hat. + + Wallet to be encrypted + Wallet zu verschlüsseln + + + Your wallet is about to be encrypted. + Wallet wird verschlüsselt. + + + Your wallet is now encrypted. + Deine Wallet ist jetzt verschlüsselt. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. WICHTIG: Alle vorherigen Wallet-Backups sollten durch die neu erzeugte, verschlüsselte Wallet ersetzt werden. Aus Sicherheitsgründen werden vorherige Backups der unverschlüsselten Wallet nutzlos, sobald Sie die neue, verschlüsselte Wallet verwenden. @@ -301,6 +325,14 @@ Open &URI... &URI öffnen... + + Create Wallet... + Wallet erstellen... + + + Create a new wallet + Neue Wallet erstellen + Wallet: Wallet: @@ -529,6 +561,10 @@ Error: %1 Fehler: %1 + + Warning: %1 + Warnung: %1 + Date: %1 @@ -751,13 +787,29 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + Erstelle Wallet<b>%1</b> ... + + + Create wallet failed + Fehler beim Wallet erstellen aufgetreten + + + Create wallet warning + Warnung beim Wallet erstellen aufgetreten + + CreateWalletDialog Create Wallet Wallet erstellen + + Wallet Name + Wallet Name + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. Verschlüssele das Wallet. Das Wallet wird mit einer Passphrase deiner Wahl verschlüsselt. @@ -770,6 +822,10 @@ Disable Private Keys Private Keys deaktivieren + + Make Blank Wallet + Eine leere Wallet erstellen + Create Erstellen @@ -942,7 +998,11 @@ (of %n GB needed) (von %n GB benötigt)(von %n GB benötigt) - + + (%n GB needed for full chain) + (%n GB benötigt für komplette Blockchain)(%n GB benötigt für komplette Blockchain) + + ModalOverlay @@ -1019,6 +1079,14 @@ OpenWalletActivity + + Open wallet failed + Wallet öffnen fehlgeschlagen + + + Open wallet warning + Wallet öffnen Warnung + default wallet Standard Wallet @@ -1629,6 +1697,10 @@ Error encoding URI into QR Code. Beim Enkodieren der URI in den QR-Code ist ein Fehler aufgetreten. + + QR code support not available. + QR Code Funktionalität nicht vorhanden + Save QR Code QR-Code speichern @@ -1987,6 +2059,10 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. Ein optional angeforderter Betrag. Lassen Sie dieses Feld leer oder setzen Sie es auf 0, um keinen spezifischen Betrag anzufordern. + + &Create new receiving address + Neue Empfangsadresse erstellen + Clear all fields of the form. Alle Formularfelder zurücksetzen. @@ -2308,6 +2384,14 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio %1 (%2 blocks) %1 (%2 Blöcke) + + from wallet '%1' + von der Wallet '%1' + + + %1 to '%2' + %1 an '%2' + %1 to %2 %1 an %2 @@ -2340,6 +2424,10 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Total Amount Gesamtbetrag + + To review recipient list click "Show Details..." + Um die Empfängerliste anzuzeigen, klicke auf "Details anzeigen..." + Confirm send coins Überweisung bestätigen @@ -3113,6 +3201,10 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Close wallet Wallet schließen + + Are you sure you wish to close the wallet <i>%1</i>? + Sind Sie sich sicher, dass Sie die Wallet <i>%1</i> schließen möchten? + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. Wenn Sie die Wallet zu lange schließen, kann es dazu kommen, dass Sie die gesamte Chain neu synchronisieren müssen, wenn Pruning aktiviert ist. @@ -3387,6 +3479,10 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Initialization sanity check failed. %s is shutting down. Initialisierungsplausibilitätsprüfung fehlgeschlagen. %s wird beendet. + + Invalid P2P permission: '%s' + Ungültige P2P Genehmigung: '%s' + Invalid amount for -%s=<amount>: '%s' Ungültiger Betrag für -%s=<amount>: '%s' @@ -3419,6 +3515,10 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Loading P2P addresses... Lade P2P-Adressen... + + Error: Disk space is too low! + Fehler: Zu wenig freier Speicherplatz auf dem Datenträger! + Loading banlist... Lade Sperrliste... @@ -3527,6 +3627,10 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Need to specify a port with -whitebind: '%s' Angabe eines Ports benötigt für -whitebind: '%s' + + Prune mode is incompatible with -blockfilterindex. + Kürzungsmodus ist nicht mit -blockfilterindex kompatibel. + Reducing -maxconnections from %d to %d, because of system limitations. Reduziere -maxconnections von %d zu %d, aufgrund von Systemlimitierungen. diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index 0a6e5d6050..14290cadde 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -3,71 +3,71 @@ AddressBookPage Right-click to edit address or label - 鼠标右击编辑地址或标签 + 右鍵點一下來修改位址或標記 Create a new address - 创建新地址 + 產生一個新位址 &New - 新建(&N) + 新增(&N) Copy the currently selected address to the system clipboard - 复制当前选中的地址到系统剪贴板 + 複製目前選擇的位址到系統剪貼簿 &Copy - 复制(&C) + 複製(&C) C&lose - 关闭(&l) + 關閉(&L) Delete the currently selected address from the list - 从列表中删除选中的地址 + 把目前選擇的位址從列表中刪掉 Enter address or label to search - 输入地址或标签来搜索 + 請輸入要搜尋的位址或標記 Export the data in the current tab to a file - 将当前标签页数据导出到文件 + 把目前分頁的資料匯出存成檔案 &Export - 导出(&E) + 匯出(&E) &Delete - 删除(&D) + 刪掉(&D) Choose the address to send coins to - 选择要发币给哪些地址 + 選擇要付錢過去的位址 Choose the address to receive coins with - 选择要用哪些地址收币 + 選擇要收錢進來的位址 C&hoose - 选择(&C) + 選取(&H) Sending addresses - 付款地址 + 付款位址 Receiving addresses - 收款地址 + 收款位址 These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - 您可以给这些比特币地址付款。在付款之前,务必要检查金额和收款地址是否正确。 + 這些是你要付款過去的 Bitcoin 位址。在付錢之前,務必要檢查金額和收款位址是否正確。 These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. @@ -75,105 +75,105 @@ &Copy Address - 复制地址(&C) + 複製位址(&C) Copy &Label - 复制标签(&L) + 複製標記(&L) &Edit - 编辑(&E) + 編輯(&E) Export Address List - 导出地址列表 + 匯出位址清單 Comma separated file (*.csv) - 逗号分隔文件 (*.csv) + 逗點分隔資料檔(*.csv) Exporting Failed - 导出失败 + 匯出失敗 There was an error trying to save the address list to %1. Please try again. - 存储地址列表到 %1 时发生错误。请再试一次。 + 儲存位址列表到 %1 時發生錯誤。請重試一次。 AddressTableModel Label - 标签 + 標記 Address - 地址 + 位址 (no label) - (无标签) + (無標記) AskPassphraseDialog Passphrase Dialog - 密码对话框 + 密碼對話視窗 Enter passphrase - 输入密码 + 請輸入密碼 New passphrase - 新密码 + 新密碼 Repeat new passphrase - 重复新密码 + 重複新密碼 Encrypt wallet - 加密钱包 + 加密錢包 This operation needs your wallet passphrase to unlock the wallet. - 这个操作需要你的钱包密码来解锁钱包。 + 這個動作需要你的錢包密碼來解鎖錢包。 Unlock wallet - 解锁钱包 + 解鎖錢包 This operation needs your wallet passphrase to decrypt the wallet. - 这个操作需要你的钱包密码来把钱包解密。 + 這個動作需要你的錢包密碼來把錢包解密。 Decrypt wallet - 解密钱包 + 解密錢包 Change passphrase - 修改密码 + 改變密碼 Confirm wallet encryption - 确认钱包加密 + 確認錢包加密 Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - 警告: 如果把钱包加密后又忘记密码,你就会从此<b>失去其中所有的比特币了</b>! + 警告: 如果把錢包加密後又忘記密碼,你就會從此<b>失去其中所有的 Bitcoin 了</b>! Are you sure you wish to encrypt your wallet? - 你确定要把钱包加密吗? + 你確定要把錢包加密嗎? Wallet encrypted - 钱包已加密 + 錢包已加密 Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. @@ -181,273 +181,273 @@ IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - 重要: 请用新生成的、已加密的钱包备份文件取代你之前留的钱包文件备份。出于安全方面的原因,一旦你开始使用新的已加密钱包,旧钱包文件的备份就失效了。 + 重要須知: 請改用新造出來、有加密的錢包檔,來取代舊錢包檔的備份。為了安全起見,當你開始使用新的有加密的錢包後,舊錢包檔的備份就沒有用了。 Wallet encryption failed - 钱包加密失败 + 錢包加密失敗 Wallet encryption failed due to an internal error. Your wallet was not encrypted. - 因为内部错误导致钱包加密失败。你的钱包还是没加密。 + 因為內部錯誤導致錢包加密失敗。你的錢包還是沒加密。 The supplied passphrases do not match. - 提供的密码不一致。 + 提供的密碼不一樣。 Wallet unlock failed - 钱包解锁失败 + 錢包解鎖失敗 The passphrase entered for the wallet decryption was incorrect. - 输入用来解密钱包的密码不正确。 + 輸入要用來解密錢包的密碼不對。 Wallet decryption failed - 钱包解密失败 + 錢包解密失敗 Wallet passphrase was successfully changed. - 钱包密码修改成功。 + 錢包密碼改成功了。 Warning: The Caps Lock key is on! - 警告: 大写字母锁定已开启! + 警告: 大寫字母鎖定作用中! BanTableModel IP/Netmask - IP/网络掩码 + 網路位址/遮罩 Banned Until - 在此之前禁止: + 禁止期限 BitcoinGUI Sign &message... - 消息签名(&M)... + 簽署訊息(&M)... Synchronizing with network... - 正在与网络同步... + 正在跟網路進行同步... &Overview - 概况(&O) + 總覽(&O) Show general overview of wallet - 显示钱包概况 + 顯示錢包一般總覽 &Transactions - 交易记录(&T) + 交易(&T) Browse transaction history - 查看交易历史 + 瀏覽交易紀錄 E&xit - 退出(&X) + 結束(&X) Quit application - 退出程序 + 結束應用程式 &About %1 - 关于 %1 + 關於%1(&A) Show information about %1 - 显示 %1 相关信息 + 顯示 %1 的相關資訊 About &Qt - 关于Qt(&Q) + 關於 &Qt Show information about Qt - 显示 Qt 相关信息 + 顯示 Qt 相關資訊 &Options... - 选项(&O)... + 選項(&O)... Modify configuration options for %1 - 修改%1配置选项 + 修改 %1 的設定選項 &Encrypt Wallet... - 加密钱包(&E)... + 加密錢包(&E)... &Backup Wallet... - 备份钱包(&B)... + 備份錢包(&B)... &Change Passphrase... - 更改密码(&C)... + 改變密碼(&C)... Open &URI... - 打开 &URI... + 開啓 &URI... Wallet: - 钱包: + 錢包: Click to disable network activity. - 点击禁用网络活动。 + 按一下就會不使用網路。 Network activity disabled. - 网络活动已禁用。 + 網路活動關閉了。 Click to enable network activity again. - 点击重新开启网络活动。 + 按一下就又會使用網路。 Syncing Headers (%1%)... - 同步区块头 (%1%)... + 正在同步前導資料(%1%)中... Reindexing blocks on disk... - 正在为区块数据重建索引... + 正在為磁碟裡的區塊重建索引... Proxy is <b>enabled</b>: %1 - 代理已被<b>启用</b>:%1 + 代理伺服器<b>已經啟用</b>: %1 Send coins to a Bitcoin address - 向一个比特币地址发送比特币 + 付錢給一個 Bitcoin 位址 Backup wallet to another location - 备份钱包到其他文件夹 + 把錢包備份到其它地方 Change the passphrase used for wallet encryption - 更改钱包加密口令 + 改變錢包加密用的密碼 &Debug window - 调试窗口(&D) + 除錯視窗(&D) Open debugging and diagnostic console - 打开调试和诊断控制台 + 開啓除錯和診斷主控台 &Verify message... - 验证消息(&V)... + 驗證訊息(&V)... &Send - 发送(&S) + 付款(&S) &Receive - 接收(&R) + 收款(&R) &Show / Hide - 显示 / 隐藏(&S) + 顯示或隱藏(&S) Show or hide the main Window - 显示或隐藏主窗口 + 顯示或隱藏主視窗 Encrypt the private keys that belong to your wallet - 对钱包中的私钥加密 + 把錢包中的密鑰加密 Sign messages with your Bitcoin addresses to prove you own them - 用比特币地址关联的私钥为消息签名,以证明您拥有这个比特币地址 + 用 Bitcoin 位址簽署訊息來證明位址是你的 Verify messages to ensure they were signed with specified Bitcoin addresses - 校验消息,确保该消息是由指定的比特币地址所有者签名的 + 驗證訊息是用來確定訊息是用指定的 Bitcoin 位址簽署的 &File - 文件(&F) + 檔案(&F) &Settings - 设置(&S) + 設定(&S) &Help - 帮助(&H) + 說明(&H) Tabs toolbar - 分页工具栏 + 分頁工具列 Request payments (generates QR codes and bitcoin: URIs) - 请求支付 (生成二维码和 bitcoin: URI) + 要求付款(產生 QR Code 和 bitcoin 付款協議的資源識別碼: URI) Show the list of used sending addresses and labels - 显示用过的发送地址和标签的列表 + 顯示已使用過的付款位址和標記的清單 Show the list of used receiving addresses and labels - 显示用过的接收地址和标签的列表 + 顯示已使用過的收款位址和標記的清單 Open a bitcoin: URI or payment request - 打开一个 bitcoin: URI 或支付请求 + 開啓 bitcoin 協議的資源識別碼(URI)或付款要求 &Command-line options - 命令行选项(&C) + 命令列選項(&C) %n active connection(s) to Bitcoin network - %n 条到比特币网络的活动连接 + %n 個運作中的 Bitcoin 網路連線 Indexing blocks on disk... - 正在为区块数据建立索引... + 正在為磁碟裡的區塊建立索引... Processing blocks on disk... - 正在处理区块数据... + 正在處理磁碟裡的區塊資料... Processed %n block(s) of transaction history. - 已处理 %n 个区块的交易历史 + 已經處理了 %n 個區塊的交易紀錄。 %1 behind - 落后 %1 + 落後 %1 Last received block was generated %1 ago. - 最新收到的区块产生于 %1。 + 最近收到的區塊是在 %1 以前生出來的。 Transactions after this will not yet be visible. - 在此之后的交易尚未可见 + 暫時會看不到在這之後的交易。 Error - 错误 + 錯誤 Warning @@ -455,43 +455,43 @@ Information - 信息 + 資訊 Up to date - 已是最新 + 最新狀態 &Sending addresses - 付款地址(&S) + 付款位址(&S) &Receiving addresses - 收款地址(&R) + 收款位址(&R) Open Wallet - 打开钱包 + 打開錢包 Open a wallet - 打开一个钱包 + 打開一個錢包檔 Close Wallet... - 关闭钱包... + 關上錢包... Close wallet - 关闭钱包 + 關上錢包 Show the %1 help message to get a list with possible Bitcoin command-line options - 显示 %1 帮助信息,获取可用命令行选项列表 + 顯示 %1 的說明訊息,來取得可用命令列選項的列表 default wallet - 默认钱包 + 預設錢包 No wallets available @@ -499,11 +499,11 @@ &Window - 窗口(&W) + 視窗(&W) Minimize - 最小化 + 縮小 Zoom @@ -515,15 +515,15 @@ %1 client - %1 客户端 + %1 客戶端軟體 Connecting to peers... - 正在连接到节点…… + 正在跟其他節點連線中... Catching up... - 更新中... + 正在趕進度... Error: %1 @@ -542,47 +542,48 @@ Amount: %1 - 金额: %1 + 金額: %1 Wallet: %1 - 钱包:%1 + 錢包: %1 + Type: %1 - 类型: %1 + 種類: %1 Label: %1 - 标签: %1 + 標記: %1 Address: %1 - 地址: %1 + 位址: %1 Sent transaction - 发送交易 + 付款交易 Incoming transaction - 流入交易 + 收款交易 HD key generation is <b>enabled</b> - HD密钥生成<b>启用</b> + 產生 HD 金鑰<b>已經啟用</b> HD key generation is <b>disabled</b> - HD密钥生成<b>禁用</b> + 產生 HD 金鑰<b>已經停用</b> Private key <b>disabled</b> @@ -590,58 +591,58 @@ Wallet is <b>encrypted</b> and currently <b>unlocked</b> - 钱包已被<b>加密</b>,当前为<b>解锁</b>状态 + 錢包<b>已加密</b>並且<b>解鎖中</b> Wallet is <b>encrypted</b> and currently <b>locked</b> - 钱包已被<b>加密</b>,当前为<b>锁定</b>状态 + 錢包<b>已加密</b>並且<b>上鎖中</b> A fatal error occurred. Bitcoin can no longer continue safely and will quit. - 发生严重错误。客户端无法安全地继续运行,即将退出。 + 發生了致命的錯誤。Bitcoin 軟體沒辦法再繼續安全執行,只好結束。 CoinControlDialog Coin Selection - 币源选择(Coin Selection) + 選擇錢幣 Quantity: - 总量: + 數目: Bytes: - 字节: + 位元組數: Amount: - 金额: + 金額: Fee: - 费用: + 手續費: Dust: - 粉尘: + 零散錢: After Fee: - 加上交易费用后: + 計費後金額: Change: - 找零 : + 找零金額: (un)select all - 全(不)选 + 全選或全不選 Tree mode - 树状模式 + 樹狀模式 List mode @@ -649,15 +650,15 @@ Amount - 金额 + 金額 Received with label - 收款标签 + 收款標記 Received with address - 收款地址 + 收款位址 Date @@ -665,63 +666,63 @@ Confirmations - 确认 + 確認次數 Confirmed - 已确认 + 已確認 Copy address - 复制地址 + 複製位址 Copy label - 复制标签 + 複製標記 Copy amount - 复制金额 + 複製金額 Copy transaction ID - 复制交易ID + 複製交易識別碼 Lock unspent - 锁定未花费 + 鎖定不用 Unlock unspent - 解锁未花费 + 解鎖可用 Copy quantity - 复制数目 + 複製數目 Copy fee - 复制手续费 + 複製手續費 Copy after fee - 复制计费后金额 + 複製計費後金額 Copy bytes - 复制字节数 + 複製位元組數 Copy dust - 复制粉尘金额 + 複製零散金額 Copy change - 复制找零金额 + 複製找零金額 (%1 locked) - (锁定 %1 枚) + (鎖定 %1 枚) yes @@ -733,15 +734,15 @@ This label turns red if any recipient receives an amount smaller than the current dust threshold. - 当任何一个收款金额小于目前的粉尘金额上限时,文字会变红色。 + 當任何一個收款金額小於目前的零散金額上限時,文字會變紅色。 Can vary +/- %1 satoshi(s) per input. - 每组输入可能有 +/- %1 个 satoshi 的误差。 + 每組輸入可能有 +/- %1 個 satoshi 的誤差。 (no label) - (无标签) + (無標記) change from %1 (%2) @@ -762,78 +763,78 @@ EditAddressDialog Edit Address - 编辑地址 + 編輯位址 &Label - 标签(&L) + 標記(&L) The label associated with this address list entry - 与此地址相关的标签项 + 跟這個位址簿項目關聯的標記 The address associated with this address list entry. This can only be modified for sending addresses. - 该地址已与地址列表中的条目关联,只能被发送地址修改。 + 跟這個位址簿項目關聯的位址。只有付款位址能被修改。 &Address - 地址(&A) + 位址(&A) New sending address - 新建付款地址 + 造新的付款位址 Edit receiving address - 编辑收款地址 + 編輯收款位址 Edit sending address - 编辑付款地址 + 編輯付款位址 The entered address "%1" is not a valid Bitcoin address. - 输入的地址 %1 并不是有效的比特币地址。 + 輸入的位址 %1 並不是有效的 Bitcoin 位址。 Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. - 地址“%1”已经存在,它是一个接受地址,标签为“%2”,所以它不能被添加为一个发送地址。 + %1 已經是標記為 %2 的收款位址了,不可以又是付款位址。 The entered address "%1" is already in the address book with label "%2". - 输入地址“%1”已经存在于地址簿中,标签为“%2”。 + 輸入的位址 %1 本來就在位址簿中了,標記為 %2。 Could not unlock wallet. - 无法将钱包解锁。 + 沒辦法把錢包解鎖。 New key generation failed. - 生成新密钥失败。 + 產生新的密鑰失敗了。 FreespaceChecker A new data directory will be created. - 一个新的数据目录将被创建。 + 就要產生新的資料目錄。 name - 名称 + 名稱 Directory already exists. Add %1 if you intend to create a new directory here. - 目录已存在。如果您打算在这里创建一个新目录,添加 %1。 + 已經有這個目錄了。如果你要在裡面造出新的目錄的話,請加上 %1. Path already exists, and is not a directory. - 路径已存在,并且不是一个目录。 + 已經有指定的路徑了,並且不是一個目錄。 Cannot create data directory here. - 无法在此创建数据目录。 + 沒辦法在這裡造出資料目錄。 @@ -844,160 +845,160 @@ (%1-bit) - (%1 位) + (%1 位元) About %1 - 关于 %1 + 關於 %1 Command-line options - 命令行选项 + 命令列選項 Intro Welcome - 欢迎 + 歡迎 Welcome to %1. - 欢迎使用 %1 + 歡迎使用 %1。 As this is the first time the program is launched, you can choose where %1 will store its data. - 由于这是第一次启动此程序,您可以选择%1的数据所存储的位置 + 因為這是程式第一次啓動,你可以選擇 %1 儲存資料的地方。 When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. - 当你点击确认后,%1 将会在 %4 启动时从 %3 中最早的交易开始,下载并处理完整的 %4 区块链 (%2GB)。 + 在你按下「好」之後,%1 就會開始下載並處理整個 %4 區塊鏈(大小是 %2GB),也就是從 %3 年 %4 剛剛起步時的最初交易開始。 This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. - 最初的同步过程是非常吃力的,同时可能会暴露你电脑上的一些硬件方面的小毛病,尽管你可能之前没有注意过。你每跑 %1,它就会继续从之前中断的地方下载 + 一開始的同步作業非常的耗費資源,並且可能會暴露出之前沒被發現的電腦硬體問題。每次執行 %1 的時候都會繼續先前未完成的下載。 If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. - 如果你选择限制区块链存储大小(区块链裁剪模式),程序依然会下载并处理全部历史数据,此后才会删除不必须的部分,占用最少的存储空间。 + 如果你選擇要限制區塊鏈儲存空間的大小(修剪模式),還是需要下載和處理過去的歷史資料被,但是之後就會把它刪掉來節省磁碟使用量。 Use the default data directory - 使用默认的数据目录 + 使用預設的資料目錄 Use a custom data directory: - 使用自定义的数据目录: + 使用自訂的資料目錄: Bitcoin - 比特币 + Bitcoin At least %1 GB of data will be stored in this directory, and it will grow over time. - 此目录中至少会保存 %1 GB 的数据,并且尺寸还会随着时间增长。 + 在這個目錄中至少會存放 %1 GB 的資料,並且還會隨時間增加。 Approximately %1 GB of data will be stored in this directory. - 会在此目录中存储约 %1 GB 的数据。 + 在這個目錄中大約會存放 %1 GB 的資料。 %1 will download and store a copy of the Bitcoin block chain. - %1 将会下载并存储比特币区块链。 + %1 會下載 Bitcoin 區塊鏈並且儲存一份副本。 The wallet will also be stored in this directory. - 钱包也会被保存在这个目录中。 + 錢包檔也會存放在這個目錄中。 Error: Specified data directory "%1" cannot be created. - 错误:无法创建 指定的数据目录 "%1" + 錯誤: 無法新增指定的資料目錄: %1 Error - 错误 + 錯誤 %n GB of free space available - 有 %n GB 空闲空间可用 + 可用空間尚存 %n GB (of %n GB needed) - (需要 %n GB的空间) + (需要 %n GB) ModalOverlay Form - 表单 + 表單 Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - 近期交易可能尚未显示,因此当前余额可能不准确。以上信息将在与比特币网络完全同步后更正。详情如下 + 最近的交易可能還看不到,因此錢包餘額可能不正確。在錢包軟體完成跟 bitcoin 網路的同步後,這裡的資訊就會正確。詳情請見下面。 Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - 尝试使用受未可见交易影响的余额将不被网络接受。 + 使用還沒顯示出來的交易所影響到的 bitcoin 可能會不被網路所接受。 Number of blocks left - 剩余区块数量 + 剩餘區塊數 Unknown... - 未知 + 不明... Last block time - 上一区块时间 + 最近區塊時間 Progress - 进度 + 進度 Progress increase per hour - 每小时进度增加 + 每小時進度 calculating... - 正在计算 + 正在計算中... Estimated time left until synced - 预计剩余同步时间 + 預估完成同步所需時間 Hide - 隐藏 + 隱藏 Unknown. Syncing Headers (%1, %2%)... - 未知。正在同步区块头 (%1, %2%)... + 不明。正在同步前導資料中(%1, %2%)... OpenURIDialog Open URI - 打开 URI + 開啓 URI Open payment request from URI or file - 打开来自URI或文件的付款请求 + 從 URI 或檔案開啟付款要求 URI: - URI: + URI: Select payment request file - 选择付款请求文件 + 選擇付款要求資料檔 Select payment request file to open - 选择要打开的付款请求文件 + 選擇要開啟的付款要求資料檔 @@ -1015,7 +1016,7 @@ OptionsDialog Options - 选项 + 選項 &Main @@ -1023,83 +1024,83 @@ Automatically start %1 after logging in to the system. - 在登入系统后自动启动 %1 + 在登入系統後自動啓動 %1。 &Start %1 on system login - 系统登入时启动 %1 + 系統登入時啟動 %1 (&S) Size of &database cache - 数据库缓存大小(&D) + 資料庫快取大小(&D) Number of script &verification threads - 脚本验证线程数(&V) + 指令碼驗證執行緒數目(&V) IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - 代理的 IP 地址 (例如 IPv4: 127.0.0.1 / IPv6: ::1) + 代理伺服器的網際網路位址(像是 IPv4 的 127.0.0.1 或 IPv6 的 ::1) Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. - 显示默认的SOCKS5代理是否被用于在该类型的网络下连接同伴 + 如果對這種網路類型,有指定用來跟其他節點聯絡的 SOCKS5 代理伺服器的話,就會顯示在這裡。 Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - 连接Tor隐藏服务节点时使用另一个SOCKS&5代理: + 透過另外的 SOCKS&5 代理伺服器來連線到 Bitcoin 網路中的 Tor 隱藏服務: Hide the icon from the system tray. - 隐藏系统通知区图标 + 隱藏系統通知區圖示 &Hide tray icon - 隐藏通知区图标(&H) + 隱藏通知區圖示(&H) Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - 窗口被关闭时最小化程序而不是退出。当此选项启用时,只有在菜单中选择“退出”时才会让程序退出。 + 當視窗關閉時,把應用程式縮到最小,而不是結束。當勾選這個選項時,只能夠用選單中的結束來關掉應用程式。 Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - 这个第三方网址(比如区块浏览器)会出现在交易选项卡的右键菜单中。 网址中的%s代表交易哈希。多个网址需要用竖线 | 相互分隔。 + 在交易頁籤的情境選單出現的第三方網址連結(URL),比如說區塊探索網站。網址中的 %s 會被取代為交易的雜湊值。可以用直線符號 | 來分隔多個連結。 Open the %1 configuration file from the working directory. - 从工作目录下打开配置文件 %1。 + 從工作目錄開啟設定檔 %1。 Open Configuration File - 打开配置文件 + 開啟設定檔 Reset all client options to default. - 恢复客户端的缺省设置 + 重設所有客戶端軟體選項成預設值。 &Reset Options - 恢复缺省设置(&R) + 重設選項(&R) &Network - 网络(&N) + 網路(&N) Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher. - 禁用一些高级特性,但是仍然会对所有区块数据进行完整验证。必须重新下载整个区块链数据才能撤销此设置。实际的磁盘空间占用可能会略高。 + 啟用時有些進階功能會不能使用,不過區塊資料還是會被完全驗證。如果把這個設定改回來,會需要重新下載整個區塊鏈。區塊資料實際使用的磁碟空間會比設定值稍微大一點。 Prune &block storage to - 将区块存储修剪至(&B) + 修剪區塊資料大小到 GB - GB + GB (十億位元組) Reverting this setting requires re-downloading the entire blockchain. - 警告:还原此设置需要重新下载整个区块链。 + 把這個設定改回來會需要重新下載整個區塊鏈。 MiB @@ -1107,67 +1108,67 @@ (0 = auto, <0 = leave that many cores free) - (0 = 自动, <0 = 保持指定数量的CPU核心空闲) + (0 表示程式自動決定,小於 0 表示保留處理器核心不用的數目) W&allet - 钱包(&A) + 錢包(&A) Expert - 专家 + 專家 Enable coin &control features - 启动货币控制功能(&C) + 開啟錢幣控制功能(&C) If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - 如果您禁止动用尚未确认的找零资金,则一笔交易的找零资金至少需要有1个确认后才能动用。这同时也会影响账户余额的计算。 + 如果你關掉「可以花還沒確認的零錢」,那麼交易中找零的零錢就必須要等交易至少有一次確認後,才能夠使用。這也會影響餘額的計算方式。 &Spend unconfirmed change - 动用尚未确认的找零资金(&S) + 可以花還沒確認的零錢(&S) Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - 自动在路由器中打开比特币端口。只有当您的路由器开启了 UPnP 选项时此功能才有效。 + 自動在路由器上開放 Bitcoin 的客戶端通訊埠。只有在你的路由器支援且開啓「通用即插即用」協定(UPnP)時才有作用。 Map port using &UPnP - 使用 &UPnP 映射端口 + 用 &UPnP 設定通訊埠對應 Accept connections from outside. - 接收外部连接。 + 接受外來連線 Allow incomin&g connections - 允许流入连接(&G) + 接受外來連線(&G) Connect to the Bitcoin network through a SOCKS5 proxy. - 通过 SOCKS5 代理连接比特币网络。 + 透過 SOCKS5 代理伺服器來連線到 Bitcoin 網路。 &Connect through SOCKS5 proxy (default proxy): - 通过 SO&CKS5 代理连接(默认代理): + 透過 SOCKS5 代理伺服器連線(預設代理伺服器 &C): Proxy &IP: - 代理服务器 &IP: + 代理位址(&I): &Port: - 端口(&P): + 埠號(&P): Port of the proxy (e.g. 9050) - 代理端口(例如 9050) + 代理伺服器的通訊埠(像是 9050) Used for reaching peers via: - 连接到同伴的方式: + 用來跟其他節點聯絡的中介: IPv4 @@ -1183,51 +1184,51 @@ Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - 访问 Tor 隐藏服务上的比特币网络时使用另一个 SOCKS5 代理。 + 透過另外的 SOCKS5 代理伺服器來連線到 Bitcoin 網路中的 Tor 隱藏服務。 &Window - 窗口(&W) + 視窗(&W) Show only a tray icon after minimizing the window. - 最小化窗口后仅显示托盘图标 + 視窗縮到最小後只在通知區顯示圖示。 &Minimize to the tray instead of the taskbar - 最小化到托盘(&M) + 縮到最小到通知區而不是工作列(&M) M&inimize on close - 单击关闭按钮时最小化(&I) + 關閉時縮到最小(&I) &Display - 显示(&D) + 顯示(&D) User Interface &language: - 用户界面语言(&L): + 使用界面語言(&L): The user interface language can be set here. This setting will take effect after restarting %1. - 可以在这里设定用户界面的语言。这个设定在重启 %1 后才会生效。 + 可以在這裡設定使用者介面的語言。這個設定在重啓 %1 後才會生效。 &Unit to show amounts in: - 比特币金额单位(&U): + 金額顯示單位(&U): Choose the default subdivision unit to show in the interface and when sending coins. - 选择比特币单位。 + 選擇操作界面和付款時,預設顯示金額的細分單位。 Whether to show coin control features or not. - 是否需要交易源地址控制功能。 + 是否要顯示錢幣控制功能。 &Third party transaction URLs - 第三方交易网址(&T) + 第三方交易網址連結(&T) Options set in this dialog are overridden by the command line or in the configuration file: @@ -1235,7 +1236,7 @@ &OK - 确定(&O) + 好(&O) &Cancel @@ -1243,142 +1244,141 @@ default - 默认 + 預設值 none - + Confirm options reset - 确认恢复缺省设置 + 確認重設選項 Client restart required to activate changes. - 更改生效需要重启客户端。 + 需要重新啟動客戶端軟體來讓改變生效。 Client will be shut down. Do you want to proceed? - 客户端即将关闭,您想继续吗? + 客戶端軟體就要關掉了。繼續做下去嗎? Configuration options - 配置选项 + 設定選項 The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file. - 配置文件可以用来设置高级选项。配置文件会覆盖设置界面窗口中的选项。此外,命令行会覆盖配置文件指定的选项。 + 設定檔可以用來指定進階的使用選項,並且會覆蓋掉圖形介面的設定。不過,命令列的選項也會覆蓋掉設定檔中的選項。 Error - 错误 + 錯誤 The configuration file could not be opened. - 配置文件无法打开。 + 沒辦法開啟設定檔。 This change would require a client restart. - 此更改需要重启客户端。 + 這項改變需要重新啟動客戶端軟體。 The supplied proxy address is invalid. - 提供的代理服务器地址无效。 + 提供的代理伺服器位址無效。 OverviewPage Form - 表单 + 表單 The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - 现在显示的消息可能是过期的。在连接上比特币网络节点后,您的钱包将自动与网络同步,但是这个过程还没有完成。 + 顯示的資訊可能是過期的。跟 Bitcoin 網路的連線建立後,你的錢包會自動和網路同步,但是這個步驟還沒完成。 Watch-only: - 仅观察: + 只能看: Available: - 可使用的余额: + 可用金額: Your current spendable balance - 您当前可使用的余额 + 目前可用餘額 Pending: - 等待中的余额: + 未定金額: Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - 尚未确认的交易总额,未计入当前余额 + 還沒被確認的交易的總金額,可用餘額不包含這些金額 Immature: - 未成熟的: + 未成熟金額: Mined balance that has not yet matured - 尚未成熟的挖矿收入余额 + 還沒成熟的開採金額 Balances - 余额 + 餘額 Total: - 总额: + 總金額: Your current total balance - 您当前的总余额 + 目前全部餘額 Your current balance in watch-only addresses - 您当前 观察地址(watch-only address)的余额 + 所有只能看位址的目前餘額 Spendable: - 可使用: + 可支配: Recent transactions - 最近交易记录 + 最近的交易 Unconfirmed transactions to watch-only addresses - 观察地址(watch-only address)的未确认交易记录 + 所有只能看位址還沒確認的交易 Mined balance in watch-only addresses that has not yet matured - 观察地址(watch-only address)中尚未成熟(matured)的挖矿收入余额: + 所有只能看位址還沒成熟的開採金額 Current total balance in watch-only addresses - 观察地址(watch-only address)中的当前总余额 + 所有只能看位址的目前全部餘額 PaymentServer Payment request error - 要求付款时发生错误 + 要求付款時發生錯誤 Cannot start bitcoin: click-to-pay handler - 无法启动 bitcoin 协议的“ -一键支付”处理器 + 沒辦法啟動 bitcoin 協議的「按就付」處理器 URI handling - URI 处理 + URI 處理 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - ‘bitcoin://’不是合法的URI。请使用'bitcoin:'作为替代。 + 字首為 bitcoin:// 不是有效的 URI,請改用 bitcoin: 開頭。 You are using a BIP70 URL which will be unsupported in the future. @@ -1386,7 +1386,7 @@ Payment request fetch URL is invalid: %1 - 取得付款请求的 URL 无效: %1 + 取得付款要求的 URL 無效: %1 Cannot process payment request because BIP70 support was not compiled in. @@ -1394,98 +1394,98 @@ Invalid payment address %1 - 无效的付款地址 %1 + 無效的付款位址 %1 URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - 无法解析 URI 地址!可能是因为比特币地址无效,或是 URI 参数格式错误。 + 沒辦法解析 URI 位址!可能是因為 Bitcoin 位址無效,或是 URI 參數格式錯誤。 Payment request file handling - 处理付款请求文件 + 處理付款要求檔案 Payment request file cannot be read! This can be caused by an invalid payment request file. - 无法读取付款请求文件!可能是文件无效造成的。 + 沒辦法讀取付款要求檔案!可能是無效的檔案造成的。 Payment request rejected - 付款请求已被拒绝 + 付款的要求被拒絕了 Payment request network doesn't match client network. - 付款请求的网络类型跟客户端不符。 + 付款要求的網路類型跟客戶端不符。 Payment request expired. - 付款请求已过期。 + 付款的要求過期了。 Payment request is not initialized. - 付款请求未初始化。 + 付款的要求沒有完成初始化。 Unverified payment requests to custom payment scripts are unsupported. - 不支持到自定义付款脚本的未验证付款请求。 + 不支援含有自訂付款指令碼,且沒驗證過的付款要求。 Invalid payment request. - 无效的支付请求。 + 付款的要求無效。 Requested payment amount of %1 is too small (considered dust). - 请求支付的金额 %1 太小 (可被忽略)。 + 要求付款的金額 %1 太少(會被網路認為是沒必要的零散錢)。 Refund from %1 - 来自 %1 的退款 + 來自 %1 的退款 Payment request %1 is too large (%2 bytes, allowed %3 bytes). - 支付请求 %1 太大 (%2 字节。只允许 %3 字节)。 + 付款要求 %1 過大 (%2 位元組, 上限 %3 位元組). Error communicating with %1: %2 - 与 %1 通信出错: %2 + 跟 %1 通訊時發生錯誤: %2 Payment request cannot be parsed! - 无法解析付款请求! + 沒辦法解析付款要求內容! Bad response from server %1 - 来自服务器 %1 的响应无效 + 伺服器 %1 的回應有誤 Network request error - 网络请求出错 + 發出要求時發生網路錯誤 Payment acknowledged - 付款已确认 + 付款已確認 PeerTableModel User Agent - 用户代理 + 使用者代理 Node/Service - 节点/服务 + 節點/服務 NodeId - 节点ID + 節點識別碼 Ping - Ping + Ping 時間 Sent - 发送 + 送出 Received @@ -1496,11 +1496,11 @@ QObject Amount - 金额 + 金額 Enter a Bitcoin address (e.g. %1) - 请输入一个比特币地址 (例如 %1) + 輸入 Bitcoin 位址 (比如說 %1) %1 d @@ -1508,11 +1508,11 @@ %1 h - %1 小时 + %1 小時 %1 m - %1 分钟 + %1 分鐘 %1 s @@ -1520,11 +1520,11 @@ None - + N/A - 不可用 + 未知 %1 ms @@ -1532,15 +1532,15 @@ %n second(s) - %n 秒 + %n 秒鐘 %n minute(s) - %n 分钟 + %n 分鐘 %n hour(s) - %n 小时 + %n 小時 %n day(s) @@ -1548,11 +1548,11 @@ %n week(s) - %n 周 + %n 星期 %1 and %2 - %1 和 %2 + %1又 %2 %n year(s) @@ -1560,19 +1560,19 @@ %1 B - %1 字节 + %1 B (位元組) %1 KB - %1 KB + %1 KB (千位元組) %1 MB - %1 MB + %1 MB (百萬位元組) %1 GB - %1 GB + %1 GB (十億位元組) Error: Specified data directory "%1" does not exist. @@ -1588,7 +1588,7 @@ %1 didn't yet exit safely... - %1 尚未安全退出 + %1 還沒有安全地結束... unknown @@ -1599,11 +1599,11 @@ QRImageWidget &Save Image... - 保存图片(&S)... + 儲存圖片(&S)... &Copy Image - 复制图片 + 複製圖片(&C) Resulting URI too long, try to reduce the text for label / message. @@ -1619,42 +1619,42 @@ Save QR Code - 保存二维码 + 儲存 QR Code PNG Image (*.png) - PNG 图像(*.png) + PNG 圖檔(*.png) RPCConsole N/A - 不可用 + 未知 Client version - 客户端版本 + 客戶端軟體版本 &Information - 信息 + 資訊(&I) Debug window - 调试窗口 + 除錯視窗 General - 常规 + 普通 Using BerkeleyDB version - 使用的 BerkeleyDB 版本 + 使用 BerkeleyDB 版本 Datadir - 数据目录 + 資料目錄 To specify a non-default location of the data directory use the '%1' option. @@ -1670,51 +1670,51 @@ Startup time - 启动时间 + 啓動時間 Network - 网络 + 網路 Name - 姓名 + 名稱 Number of connections - 连接数 + 連線數 Block chain - 区块链 + 區塊鏈 Current number of blocks - 当前区块数量 + 目前區塊數 Memory Pool - 内存池 + 記憶體暫存池 Current number of transactions - 当前交易数量 + 目前交易數目 Memory usage - 内存使用 + 記憶體使用量 Wallet: - 钱包: + 錢包: (none) - (无) + (無) &Reset - &重置 + 重置(&R) Received @@ -1722,23 +1722,23 @@ Sent - 发送 + 送出 &Peers - 同伴(&P) + 節點(&P) Banned peers - 节点黑名单 + 被禁節點 Select a peer to view detailed information. - 选择节点查看详细信息。 + 選一個節點來看詳細資訊 Whitelisted - 白名单 + 列在白名單 Direction @@ -1750,27 +1750,27 @@ Starting Block - 起步区块 + 起始區塊 Synced Headers - 已同步区块头 + 已同步前導資料 Synced Blocks - 已同步区块 + 已同步區塊 User Agent - 用户代理 + 使用者代理 Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. - 打开 %1 当前目录中的调试日志文件。日志文件大的话可能要等上几秒钟。 + 從目前的資料目錄下開啓 %1 的除錯紀錄檔。當紀錄檔很大時,可能會花好幾秒的時間。 Decrease font size - 缩小文字 + 縮小文字 Increase font size @@ -1778,83 +1778,83 @@ Services - 服务 + 服務 Ban Score - 封禁记分 + 惡劣分數 Connection Time - 连接时间 + 連線時間 Last Send - 最后发送 + 最近送出 Last Receive - 最后接收 + 最近收到 Ping Time - Ping 时间 + Ping 時間 The duration of a currently outstanding ping. - 目前这一次 ping 已经过去的时间。 + 目前這一次 ping 已經過去的時間。 Ping Wait - Ping等待 + Ping 等待時間 Min Ping - 最小Ping值 + Ping 最短時間 Time Offset - 时间偏移 + 時間差 Last block time - 上一区块时间 + 最近區塊時間 &Open - 打开(&O) + 開啓(&O) &Console - 控制台(&C) + 主控台(&C) &Network Traffic - 网络流量(&N) + 網路流量(&N) Totals - 总数 + 總計 In: - 输入: + 來: Out: - 输出: + 去: Debug log file - 调试日志文件 + 除錯紀錄檔 Clear console - 清空控制台 + 清主控台 1 &hour - 1 小时(&H) + 1 小時(&H) 1 &day @@ -1862,7 +1862,7 @@ 1 &week - 1 周(&W) + 1 星期(&W) 1 &year @@ -1870,67 +1870,67 @@ &Disconnect - (&D)断开 + 斷線(&D) Ban for - 封禁时长 + 禁止連線 &Unban - 重新允许 + 連線解禁(&U) Welcome to the %1 RPC console. - 欢迎使用 %1 的 RPC 控制台。 + 歡迎使用 %1 的 RPC 主控台。 Use up and down arrows to navigate history, and %1 to clear screen. - 使用上下方向键浏览历史, 以及 %1 清除屏幕。 + 請用游標上下鍵來瀏覽先前指令的紀錄,並用 %1 來清畫面。 Type %1 for an overview of available commands. - 输入%1命令显示可用命令信息。 + 請打 %1 來看所有可用指令的簡介。 For more information on using this console type %1. - 输入%1来取得使用这个控制台的更多信息。 + 請打 %1 來取得使用這個主控台的更多資訊。 WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - 警告: 已有骗子通过要求用户在此输入指令以盗取钱包。不要在没有完全理解命令规范时使用控制台。 + 警告: 已知有詐騙集團會叫人在這個畫面輸入指令,以偷取他們錢包的內容物。如果你沒有充分理解指令可能造成的後果,請不要使用主控台。 Network activity disabled - 网络活动已禁用 + 網路活動已關閉 Executing command without any wallet - 不使用任何钱包执行命令 + 不使用任何錢包來執行指令 Executing command using "%1" wallet - 使用“%1”钱包执行命令 + 使用 %1 錢包來執行指令 (node id: %1) - (节点ID: %1) + (節點識別碼: %1) via %1 - 通过 %1 + 經由 %1 never - 从未 + 沒有過 Inbound - 传入 + 進來 Outbound - 传出 + 出去 Yes @@ -1942,38 +1942,38 @@ Unknown - 未知 + 不明 ReceiveCoinsDialog &Amount: - 总额(&A): + 金額(&A): &Label: - 标签(&L): + 標記(&L): &Message: - 消息(&M): + 訊息(&M): An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - 可在付款请求上备注一条信息,在打开付款请求时可以看到。注意:该消息不是通过比特币网络传送。 + 附加在付款要求中的訊息,可以不填,打開要求內容時會顯示。注意: 這個訊息不會隨著付款送到 Bitcoin 網路上。 An optional label to associate with the new receiving address. - 可为新建的收款地址添加一个标签。 + 跟新收款位址關聯的標記,可以不填。 Use this form to request payments. All fields are <b>optional</b>. - 使用此表单要求付款。所有字段都是<b>可选</b>。 + 請用這份表單來要求付款。所有欄位都<b>可以不填</b>。 An optional amount to request. Leave this empty or zero to not request a specific amount. - 可选的请求金额。留空或填零为不要求具体金额。 + 要求付款的金額,可以不填。不確定金額時可以留白或是填零。 &Create new receiving address @@ -1981,82 +1981,82 @@ Clear all fields of the form. - 清除此表单的所有字段。 + 把表單中的所有欄位清空。 Clear - 清除 + 清空 Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. - 原生隔离见证地址(又称为Bech32或者BIP-173)可减少您日后的交易费用,并且可以更好的防范打字错误,但旧版本的钱包不能识别这种地址。如果取消勾选,则会生成一个与旧版本钱包兼容的地址。 + 使用 segwit 原生位址(也叫做 Bech32 或 BIP-173)可以減少日後的交易手續費,也比較不容易打錯字,不過會跟舊版的錢包軟體不相容。如果沒有勾選的話,會改產生與舊版錢包軟體相容的位址。 Generate native segwit (Bech32) address - 生成原生隔离见证 (Bech32)地址 + 產生 segwit 原生位址(Bech32) Requested payments history - 请求付款的历史 + 先前要求付款的記錄 Show the selected request (does the same as double clicking an entry) - 显示选中的请求 (双击也可以显示) + 顯示選擇的要求內容(效果跟按它兩下一樣) Show - 显示 + 顯示 Remove the selected entries from the list - 从列表中移除选中的条目 + 從列表中刪掉選擇的項目 Remove - 移除 + 刪掉 Copy URI - 复制URI + 複製 URI Copy label - 复制标签 + 複製標記 Copy message - 复制消息 + 複製訊息 Copy amount - 复制金额 + 複製金額 ReceiveRequestDialog QR Code - 二维码 + QR Code Copy &URI - 复制 URI(&U) + 複製 &URI Copy &Address - 复制地址(&A) + 複製位址(&A) &Save Image... - 保存图片(&S)... + 儲存圖片(&S)... Request payment to %1 - 请求付款到 %1 + 付款給 %1 的要求 Payment information - 付款信息 + 付款資訊 URI @@ -2064,23 +2064,23 @@ Address - 地址 + 位址 Amount - 金额 + 金額 Label - 标签 + 標記: Message - 消息 + 訊息 Wallet - 钱包 + 錢包 @@ -2091,146 +2091,146 @@ Label - 标签 + 標記: Message - 消息 + 訊息 (no label) - (无标签) + (無標記) (no message) - (无消息) + (無訊息) (no amount requested) - (无请求金额) + (無要求金額) Requested - 总额 + 要求金額 SendCoinsDialog Send Coins - 发送 + 付款 Coin Control Features - 交易源地址控制功能 + 錢幣控制功能 Inputs... - 输入... + 輸入... automatically selected - 自动选择 + 自動選擇 Insufficient funds! - 存款不足! + 累計金額不足! Quantity: - 总量: + 數目: Bytes: - 字节: + 位元組數: Amount: - 金额: + 金額: Fee: - 费用: + 手續費: After Fee: - 加上交易费用后: + 計費後金額: Change: - 找零 : + 找零金額: If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - 如果该选项已被激活,但是找零地址却被用光了,或者是非法的,找零资金将会被转入新生成的地址。 + 如果這項有打開,但是找零位址是空的或無效,那麼找零的錢會送到一個新造出來的位址去。 Custom change address - 自定义找零地址 + 自訂找零位址 Transaction Fee: - 交易费用: + 交易手續費: Choose... - 选择... + 選項... Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. - 如果使用备用交易费设置,有可能会导致交易经过几个小时、几天(甚至永远)无法被确认。请考虑手动选择交易费,或等待整个链完成验证。 + 以備用手續費金額(fallbackfee)來付手續費可能會造成交易確認時間長達數小時、數天、或是永遠不會確認。請考慮自行指定金額,或是等到完全驗證區塊鏈後,再進行交易。 Warning: Fee estimation is currently not possible. - 警告: 目前无法进行交易费估计。 + 警告:目前無法計算預估手續費。 collapse fee-settings - 收起 费用设置 + 展開手續費設定 Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis. - 按照交易的虚拟大小自定义每kB ( 1,000 字节 )要交多少手续费。 + 指定每一千位元祖(kB)擬真大小的交易所要付出的手續費。 -注意:手续费是按照字节数计算的,对于一笔大小为500字节(1kB的一半)的交易来说,"每kB付100聪手续费"就意味着手续费一共只付了50聪。 +注意: 交易手續費是以位元組為單位來計算。因此當指定手續費為每千位元組 100 個 satoshi 時,對於一筆大小為 500 位元組(一千位元組的一半)的交易,其手續費會只有 50 個 satoshi。 per kilobyte - 每kb + 每千位元組 Hide - 隐藏 + 隱藏 Recommended: - 推荐: + 建議值: Custom: - 自定义: + 自訂: (Smart fee not initialized yet. This usually takes a few blocks...) - (智能交易费用 尚未初始化。 需要再下载一些区块数据...) + (手續費智慧演算法還沒準備好。通常都要等幾個區塊才行...) Send to multiple recipients at once - 一次发送给多个接收者 + 一次付給多個收款人 Add &Recipient - 添加收款人(&R) + 增加收款人(&R) Clear all fields of the form. - 清除此表单的所有字段。 + 把表單中的所有欄位清空。 Dust: - 粉尘: + 零散錢: When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. @@ -2238,67 +2238,67 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p A too low fee might result in a never confirming transaction (read the tooltip) - 过低的手续费率可能导致交易永远无法确认(请阅读工具提示) + 手續費太低的話可能會造成永遠無法確認的交易(請參考提示) Confirmation time target: - 确认时间目标: + 目標確認時間: Enable Replace-By-Fee - 启用手续费追加 + 啟用手續費追加 With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk. - 手续费追加(Replace-By-Fee,BIP-125)可以让你在送出交易后才来提高手续费。不用这个功能的话,建议付比较高的手续费来降低交易延迟的风险。 + 手續費追加(Replace-By-Fee, BIP-125)可以讓你在送出交易後才來提高手續費。不用這個功能的話,建議付比較高的手續費來降低交易延遲的風險。 Clear &All - 清除所有(&A) + 全部清掉(&A) Balance: - 余额: + 餘額: Confirm the send action - 确认发送货币 + 確認付款動作 S&end - 发送(&E) + 付款(&E) Copy quantity - 复制数目 + 複製數目 Copy amount - 复制金额 + 複製金額 Copy fee - 复制手续费 + 複製手續費 Copy after fee - 复制计费后金额 + 複製計費後金額 Copy bytes - 复制字节数 + 複製位元組數 Copy dust - 复制粉尘金额 + 複製零散金額 Copy change - 复制找零金额 + 複製找零金額 %1 (%2 blocks) - %1 (%2个块) + %1 (%2 個區塊) from wallet '%1' @@ -2310,11 +2310,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p %1 to %2 - %1 到 %2 + %1 給 %2 Are you sure you want to send? - 您确定要发出吗? + 你確定要付錢出去嗎? or @@ -2322,23 +2322,23 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p You can increase the fee later (signals Replace-By-Fee, BIP-125). - 你可以之后再提高手续费(有BIP-125手续费追加的标记) + 你可以之後再提高手續費(有 BIP-125 手續費追加的標記) Please, review your transaction. - 请检查您的交易。 + 請再次確認交易內容。 Transaction fee - 交易费用 + 交易手續費 Not signalling Replace-By-Fee, BIP-125. - 没有BIP-125手续费追加的标记。 + 沒有 BIP-125 手續費追加的標記。 Total Amount - 总额 + 總金額 To review recipient list click "Show Details..." @@ -2346,43 +2346,43 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Confirm send coins - 确认发送 + 確認付款金額 The recipient address is not valid. Please recheck. - 接收人地址无效。请重新检查。 + 收款位址無效。請再檢查看看。 The amount to pay must be larger than 0. - 支付金额必须大于0。 + 付款金額必須大於零。 The amount exceeds your balance. - 金额超出您的余额。 + 金額超過餘額了。 The total exceeds your balance when the %1 transaction fee is included. - 计入 %1 交易费后的金额超出您的余额。 + 包含 %1 的交易手續費後,總金額超過你的餘額了。 Duplicate address found: addresses should only be used once each. - 发现重复地址:每个地址应该只使用一次。 + 發現有重複的位址: 每個位址只能出現一次。 Transaction creation failed! - 交易创建失败! + 製造交易失敗了! The transaction was rejected with the following reason: %1 - 交易因以下原因拒绝:%1 + 交易因為以下原因被拒絕了: %1 A fee higher than %1 is considered an absurdly high fee. - 交易费一般不应超过 %1。 + 高於 %1 的手續費會被認為是不合理。 Payment request expired. - 付款请求已过期。 + 付款的要求過期了。 Estimated to begin confirmation within %n block(s). @@ -2390,50 +2390,50 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Warning: Invalid Bitcoin address - 警告: 比特币地址无效 + 警告: Bitcoin 位址無效 Warning: Unknown change address - 警告:未知的找零地址 + 警告: 不明的找零位址 Confirm custom change address - 确认用户找零地址 + 自定找零位址確認 The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? - 你选择的找零地址未被包含在本钱包中,你钱包中的部分或全部金额将被发送至该地址。你确定要这样做吗? + 選擇的找零位址並不屬於這個錢包。部份或是全部的錢會被送到這個位址去。你確定嗎? (no label) - (无标签) + (無標記) SendCoinsEntry A&mount: - 金额(&M) + 金額(&M): Pay &To: - 付给(&T): + 付給(&T): &Label: - 标签(&L): + 標記(&L): Choose previously used address - 选择以前用过的地址 + 選擇先前使用過的位址 This is a normal payment. - 这是笔正常的支付。 + 這是一筆正常的付款。 The Bitcoin address to send the payment to - 付款目的地址 + 接收付款的 Bitcoin 位址 Alt+A @@ -2441,7 +2441,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Paste address from clipboard - 从剪贴板粘贴地址 + 貼上剪貼簿裡的位址 Alt+P @@ -2449,51 +2449,51 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Remove this entry - 移除此项 + 刪掉這個項目 The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - 交易费将从发送总额中扣除。接收人将收到比您在金额框中输入的更少的比特币。如果选中了多个收件人,交易费平分。 + 手續費會從要付款出去的金額中扣掉。因此收款人會收到比輸入的金額還要少的 bitcoin。如果有多個收款人的話,手續費會平均分配來扣除。 S&ubtract fee from amount - 从金额中减去交易费(&U) + 從付款金額減去手續費(&U) Use available balance - 使用全部可用余额 + 使用全部可用餘額 Message: - 消息: + 訊息: This is an unauthenticated payment request. - 这是一个未经验证的支付请求。 + 這是個沒有驗證過身份的付款要求。 This is an authenticated payment request. - 这是一个已经验证的支付请求。 + 這是個已經驗證過身份的付款要求。 Enter a label for this address to add it to the list of used addresses - 请为此地址输入一个标签以将它加入用过的地址列表 + 請輸入這個位址的標記,來把它加進去已使用過位址的清單。 A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - bitcoin:URI 附带的备注信息,将会和交易一起存储,备查。 注意:该消息不会通过比特币网络传输。 + 附加在 Bitcoin 付款協議的資源識別碼(URI)中的訊息,會和交易內容一起存起來,給你自己做參考。注意: 這個訊息不會送到 Bitcoin 網路上。 Pay To: - 支付给: + 付給: Memo: - 便条: + 備註: Enter a label for this address to add it to your address book - 为这个地址输入一个标签,以便将它添加到您的地址簿 + 請輸入這個位址的標記來把它加進位址簿中 @@ -2507,34 +2507,34 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p ShutdownWindow %1 is shutting down... - 正在关闭 %1 ... + 正在關閉 %1 中... Do not shut down the computer until this window disappears. - 在此窗口消失前不要关闭计算机。 + 在這個視窗不見以前,請不要關掉電腦。 SignVerifyMessageDialog Signatures - Sign / Verify a Message - 签名 - 为消息签名/验证签名消息 + 簽章 - 簽署或驗證訊息 &Sign Message - 签名消息(&S) + 簽署訊息(&S) You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - 您可以用你的地址对消息/协议进行签名,以证明您可以接收发送到该地址的比特币。注意不要对任何模棱两可或者随机的消息进行签名,以免遭受钓鱼式攻击。请确保消息内容准确的表达了您的真实意愿。 + 你可以用自己的位址簽署訊息或合約,來證明你可以從該位址收款。但是請小心,不要簽署語意含糊不清,或隨機產生的內容,因為釣魚式詐騙可能會用騙你簽署的手法來冒充是你。只有在語句中的細節你都同意時才簽署。 The Bitcoin address to sign the message with - 用来对消息签名的地址 + 用來簽署訊息的 Bitcoin 位址 Choose previously used address - 选择以前用过的地址 + 選擇先前使用過的位址 Alt+A @@ -2542,7 +2542,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Paste address from clipboard - 从剪贴板粘贴地址 + 貼上剪貼簿裡的位址 Alt+P @@ -2550,107 +2550,107 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Enter the message you want to sign here - 请输入您要发送的签名消息 + 請在這裡輸入你想簽署的訊息 Signature - 签名 + 簽章 Copy the current signature to the system clipboard - 复制当前签名至剪切板 + 複製目前的簽章到系統剪貼簿 Sign the message to prove you own this Bitcoin address - 签名消息,证明这个地址属于您。 + 簽署這個訊息來證明這個 Bitcoin 位址是你的 Sign &Message - 消息签名(&M) + 簽署訊息(&M) Reset all sign message fields - 清空所有签名消息栏 + 重設所有訊息簽署欄位 Clear &All - 清除所有(&A) + 全部清掉(&A) &Verify Message - 验证消息(&V) + 驗證訊息(&V) Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! - 请在下面输入接收者地址、消息(确保换行符、空格符、制表符等完全相同)和签名以验证消息。请仔细核对签名信息,以提防中间人攻击。请注意,这只是证明接收方签名的地址,它不能证明任何交易! + 請在下面輸入收款人的位址,訊息(請確定完整複製了所包含的換行,空格,跳位符號等等),以及簽章,來驗證這個訊息。請小心,除了訊息內容以外,不要對簽章本身過度解讀,以避免被用「中間人攻擊法」詐騙。請注意,通過驗證的簽章只能證明簽章人確實可以從該位址收款,不能證明任何交易中的付款人身份! The Bitcoin address the message was signed with - 消息使用的签名地址 + 簽署這個訊息的 Bitcoin 位址 Verify the message to ensure it was signed with the specified Bitcoin address - 验证消息,确保消息是由指定的比特币地址签名过的。 + 驗證這個訊息來確定是用指定的 Bitcoin 位址簽署的 Verify &Message - 验证消息签名(&M) + 驗證訊息(&M) Reset all verify message fields - 清空所有验证消息栏 + 重設所有訊息驗證欄位 Click "Sign Message" to generate signature - 单击“签名消息“产生签名。 + 請按一下「簽署訊息」來產生簽章 The entered address is invalid. - 输入的地址无效。 + 輸入的位址無效。 Please check the address and try again. - 请检查地址后重试。 + 請檢查位址是否正確後再試一次。 The entered address does not refer to a key. - 输入的地址没有关联的公私钥对。 + 輸入的位址沒有對應到你的任何密鑰。 Wallet unlock was cancelled. - 钱包解锁动作取消。 + 錢包解鎖已取消。 Private key for the entered address is not available. - 找不到输入地址关联的私钥。 + 沒有對應輸入位址的密鑰。 Message signing failed. - 消息签名失败。 + 訊息簽署失敗。 Message signed. - 消息已签名。 + 訊息簽署好了。 The signature could not be decoded. - 签名无法解码。 + 沒辦法把這個簽章解碼。 Please check the signature and try again. - 请检查签名后重试。 + 請檢查簽章是否正確後再試一次。 The signature did not match the message digest. - 签名与消息摘要不匹配。 + 這個簽章跟訊息的數位摘要不符。 Message verification failed. - 消息验证失败。 + 訊息驗證失敗。 Message verified. - 消息验证成功。 + 訊息驗證沒錯。 @@ -2664,43 +2664,43 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p TransactionDesc Open for %n more block(s) - 在进一步同步完%n个区块前状态待定 + 到下 %n 個區塊生出來前可修改 Open until %1 - 至 %1 个数据块时开启 + 到 %1 前可修改 conflicted with a transaction with %1 confirmations - 与一个有 %1 个确认的交易冲突 + 跟一個目前確認 %1 次的交易互相衝突 0/unconfirmed, %1 - 0/未确认,%1 + 0 次/未確認,%1 in memory pool - 在内存池中 + 在記憶池中 not in memory pool - 不在内存池中 + 不在記憶池中 abandoned - 已抛弃 + 已中止 %1/unconfirmed - %1/未确认 + %1 次/未確認 %1 confirmations - %1 个确认 + 確認 %1 次 Status - 状态 + 狀態 Date @@ -2708,15 +2708,15 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Source - + 來源 Generated - 生成 + 生產出來 From - 来自 + 來源 unknown @@ -2724,75 +2724,75 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p To - + 目的 own address - 自己的地址 + 自己的位址 watch-only - 观察地址(watch-only) + 只能看 label - 标签 + 標記 Credit - 收入 + 入帳 matures in %n more block(s) - 还差 %n 个区块成熟 + 再等 %n 個區塊生出來後成熟 not accepted - 未被接受 + 不被接受 Debit - 支出 + 出帳 Total debit - 总收入 + 出帳總額 Total credit - 总支出 + 入帳總額 Transaction fee - 交易费用 + 交易手續費 Net amount - 净额 + 淨額 Message - 消息 + 訊息 Comment - 备注 + 附註 Transaction ID - 交易 ID + 交易識別碼 Transaction total size - 交易总大小 + 交易總大小 Transaction virtual size - 交易虚拟大小 + 交易擬真大小 Output index - 输出索引 + 輸出索引 Merchant @@ -2800,11 +2800,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - 新挖出的比特币在可以使用前必须经过 %1 个区块确认的成熟过程。当您挖出此区块后,它将被广播到网络中以加入区块链。如果它未成功进入区块链,其状态将变更为“不接受”并且不可使用。这可能偶尔会发生,在另一个节点比你早几秒钟成功挖出一个区块时就会这样。 + 生產出來的錢要再等 %1 個區塊生出來後才成熟可以用。當區塊生產出來時會公布到網路上,來被加進區塊鏈。如果加失敗了,狀態就會變成「不被接受」,而且不能夠花。如果在你生產出區塊的幾秒鐘內,也有其他節點生產出來的話,就有可能會發生這種情形。 Debug information - 调试信息 + 除錯資訊 Transaction @@ -2812,11 +2812,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Inputs - 输入 + 輸入 Amount - 金额 + 金額 true @@ -2831,11 +2831,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p TransactionDescDialog This pane shows a detailed description of the transaction - 当前面板显示了交易的详细信息 + 這個版面顯示這次交易的詳細說明 Details for %1 - %1 详情 + 交易 %1 的明細 @@ -2846,47 +2846,47 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Type - 种类 + 種類 Label - 标签 + 標記: Open for %n more block(s) - 在进一步同步完%n个区块前状态待定 + 到下 %n 個區塊生出來前可修改 Open until %1 - 至 %1 个数据块时开启 + 到 %1 前可修改 Unconfirmed - 未确认 + 未確認 Abandoned - 已丢弃 + 已中止 Confirming (%1 of %2 recommended confirmations) - 确认中 (推荐 %2个确认,已经有 %1个确认) + 確認中(已經 %1 次,建議至少 %2 次) Confirmed (%1 confirmations) - 已确认 (%1 条确认信息) + 已確認(%1 次) Conflicted - 冲突的 + 有衝突 Immature (%1 confirmations, will be available after %2) - 未成熟 (%1 个确认,将在 %2 个后可用) + 未成熟(確認 %1 次,會在 %2 次後可用) Generated but not accepted - 已生成但未被接受 + 生產出來但是不被接受 Received with @@ -2894,7 +2894,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Received from - 收款来自 + 收款自 Sent to @@ -2902,47 +2902,47 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Payment to yourself - 付款给自己 + 付給自己 Mined - 挖矿所得 + 開採所得 watch-only - 观察地址(watch-only) + 只能看 (n/a) - (不可用) + (不適用) (no label) - (无标签) + (無標記) Transaction status. Hover over this field to show number of confirmations. - 交易状态。 鼠标移到此区域可显示确认项数量。 + 交易狀態。把游標停在欄位上會顯示確認次數。 Date and time that the transaction was received. - 交易被接收的时间和日期。 + 收到交易的日期和時間。 Type of transaction. - 交易类型。 + 交易的種類。 Whether or not a watch-only address is involved in this transaction. - 该交易中是否涉及 观察地址(watch-only address)。 + 不論如何有一個只能觀看的地只有參與這次的交易 User-defined intent/purpose of the transaction. - 用户定义的该交易的意图/目的。 + 使用者定義的交易動機或理由。 Amount removed from or added to balance. - 从余额添加或移除的金额。 + 要減掉或加進餘額的金額。 @@ -2957,15 +2957,15 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p This week - 这星期 + 這星期 This month - 这个月 + 這個月 Last month - 上个月 + 上個月 This year @@ -2973,7 +2973,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Range... - 指定范围... + 指定範圍... Received with @@ -2985,11 +2985,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p To yourself - 给自己 + 給自己 Mined - 挖矿所得 + 開採所得 Other @@ -2997,67 +2997,67 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Enter address, transaction id, or label to search - 输入地址、交易ID或标签进行搜索 + 請輸入要搜尋的位址、交易識別碼、或是標記 Min amount - 最小金额 + 最小金額 Abandon transaction - 放弃交易 + 中止交易 Increase transaction fee - 增加交易费 + 提高手續費 Copy address - 复制地址 + 複製位址 Copy label - 复制标签 + 複製標記 Copy amount - 复制金额 + 複製金額 Copy transaction ID - 复制交易ID + 複製交易識別碼 Copy raw transaction - 拷贝原始交易 + 複製交易原始資料 Copy full transaction details - 复制所有交易详情 + 複製完整交易明細 Edit label - 编辑标签 + 編輯標記 Show transaction details - 显示交易详情 + 顯示交易明細 Export Transaction History - 导出交易历史 + 匯出交易記錄 Comma separated file (*.csv) - 逗号分隔文件 (*.csv) + 逗點分隔資料檔(*.csv) Confirmed - 已确认 + 已確認 Watch-only - 观察地址(Watch-only) + 只能觀看的 Date @@ -3065,39 +3065,39 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Type - 种类 + 種類 Label - 标签 + 標記: Address - 地址 + 位址 ID - ID + 識別碼 Exporting Failed - 导出失败 + 匯出失敗 There was an error trying to save the transaction history to %1. - 尝试保存交易历史 %1 时发生了错误。 + 儲存交易記錄到 %1 時發生錯誤。 Exporting Successful - 导出成功 + 匯出成功 The transaction history was successfully saved to %1. - 交易历史已成功保存到 %1。 + 交易記錄已經成功儲存到 %1 了。 Range: - 范围: + 範圍: to @@ -3108,107 +3108,107 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p UnitDisplayStatusBarControl Unit to show amounts in. Click to select another unit. - 金额单位。单击选择别的单位。 + 金額顯示單位。可以點選其他單位。 WalletController Close wallet - 关闭钱包 + 關閉錢包 Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. - 如果启用了修剪,关闭钱包太久后可能就必须再次同步整条区块链。 + 關上錢包太久的話且修剪模式又有開啟的話,可能會造成日後需要重新同步整個區塊鏈。 WalletFrame No wallet has been loaded. - 没有载入钱包。 + 沒有載入錢包。 WalletModel Send Coins - 发送 + 付款 Fee bump error - 手续费提升失败 + 手續費提升失敗 Increasing transaction fee failed - 增加交易费失败 + 手續費提高失敗了 Do you want to increase the fee? - 你是否愿意增加交易费? + 想要提高手續費嗎? Current fee: - 当前交易费: + 目前費用: Increase: - 增加量: + 增加: New fee: - 新交易费: + 新的費用: Confirm fee bump - 确认手续费提升 + 確認手續費提升 Can't sign transaction. - 无法签署交易。 + 沒辦法簽署交易。 Could not commit transaction - 无法提交交易 + 沒辦法提交交易 default wallet - 默认钱包 + 預設錢包 WalletView &Export - 导出(&E) + 匯出(&E) Export the data in the current tab to a file - 将当前标签页数据导出到文件 + 將目前分頁的資料匯出存成檔案 Backup Wallet - 备份钱包 + 備份錢包 Wallet Data (*.dat) - 钱包文件(*.dat) + 錢包資料檔(*.dat) Backup Failed - 备份失败 + 備份失敗 There was an error trying to save the wallet data to %1. - 尝试保存钱包数据至 %1 时发生了错误。 + 儲存錢包資料到 %1 時發生錯誤。 Backup Successful - 备份成功 + 備份成功 The wallet data was successfully saved to %1. - 钱包数据成功保存至 %1。 + 錢包的資料已經成功儲存到 %1 了。 Cancel @@ -3219,35 +3219,35 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p bitcoin-core Distributed under the MIT software license, see the accompanying file %s or %s - 在MIT协议下分发,参见附带的 %s 文件或 %s + 依據 MIT 軟體授權條款散布,詳情請見附帶的 %s 檔案或是 %s Prune configured below the minimum of %d MiB. Please use a higher number. - 修剪值被设置为低于最小值%d MiB,请使用更大的数值。 + 設定的修剪值小於最小需求的 %d 百萬位元組(MiB)。請指定大一點的數字。 Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) - 修剪:最后的钱包同步超过了修剪的数据。你需要通过 -reindex (重新下载整个区块链以防修剪节点) + 修剪模式:錢包的最後同步狀態是在被修剪掉的區塊資料中。你需要用 -reindex 參數執行(會重新下載整個區塊鏈) Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. - 无法在开启修剪的状态下进行重扫描,请使用 -reindex重新下载完整的区块链。 + 在修剪模式下沒辦法重新掃描區塊鏈。你需要配合使用 -reindex 參數來重新下載整個區塊鏈。 Error: A fatal internal error occurred, see debug.log for details - 错误:发生了致命的内部错误,详情见 debug.log 文件 + 錯誤: 發生了致命的內部錯誤,詳情請看 debug.log Pruning blockstore... - 正在修剪区块存储... + 正在修剪區塊資料庫中... Unable to start HTTP server. See debug log for details. - 无法启动HTTP服务,查看日志获取更多信息 + 無法啟動 HTTP 伺服器。詳情請看除錯紀錄。 The %s developers - %s 开发人员 + %s 開發人員 Can't generate a change-address key. No keys in the internal keypool and can't generate any keys. @@ -3255,71 +3255,71 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Cannot obtain a lock on data directory %s. %s is probably already running. - 无法锁定数据目录 %s。%s 可能已经在运行。 + 沒辦法鎖定資料目錄 %s。%s 可能已經在執行了。 Cannot provide specific connections and have addrman find outgoing connections at the same. - 无法同时指定特定连接地址以及自动寻找连接。 + 無法同時指定特定連線位址以及自動尋找連線。 Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - 读取 %s 时发生错误!所有的密钥都可以正确读取,但是交易记录或地址簿数据可能已经丢失或出错。 + 讀取錢包檔 %s 時發生錯誤!所有的密鑰都正確讀取了,但是交易資料或位址簿資料可能會缺少或不正確。 Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. - 请检查电脑的日期时间设置是否正确!时间错误可能会导致 %s 运行异常。 + 請檢查電腦日期和時間是否正確!%s 沒辦法在時鐘不準的情況下正常運作。 Please contribute if you find %s useful. Visit %s for further information about the software. - 如果你认为%s对你比较有用的话,请对我们进行一些捐赠支持。请访问%s网站来获取有关这个软件的更多信息。 + 如果你覺得 %s 有用,可以幫助我們。關於這個軟體的更多資訊請見 %s。 The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct - 区块数据库包含未来的交易,这可能是由本机错误的日期时间引起。若确认本机日期时间正确,请重新建立区块数据库。 + 區塊資料庫中有來自未來的區塊。可能是你電腦的日期時間不對。如果確定電腦日期時間沒錯的話,就重建區塊資料庫看看。 This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - 这是测试用的预发布版本 - 请谨慎使用 - 不要用来挖矿,或者在正式商用环境下使用 + 這是個還沒發表的測試版本 - 使用請自負風險 - 請不要用來開採或做商業應用 This is the transaction fee you may discard if change is smaller than dust at this level - 如果找零金额低于粉尘水平,你或许可以把它作为手续费忽略掉。 + 在該交易手續費率下,找零的零錢會因為少於零散錢的金額,而自動棄掉變成手續費 Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate. - 没办法重算区块。你需要先用-reindex-chainstate参数来重建数据库。 + 沒辦法重算區塊。你需要先用 -reindex-chainstate 參數來重建資料庫。 Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain - 没办法将数据库倒转回分叉前的状态。必须要重新下载区块链。 + 沒辦法將資料庫倒轉回分岔前的狀態。必須要重新下載區塊鍊。 Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - 警告:网络似乎并不完全同意!有些矿工似乎遇到了问题。 + 警告: 位元幣網路對於區塊鏈結的決定目前有分歧!有些礦工看來會有問題。 Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - 警告:我们和其他节点似乎不完全意见一致!您可能需要升级,或者是其他节点可能需要升级。 + 警告: 我們和某些連線的節點對於區塊鏈結的決定不同!你可能需要升級,或是需要等其它的節點升級。 %d of last 100 blocks have unexpected version - 最后100个区块中的%d个包含未知的版本号 + 最近的 100 個區塊中有 %d 個意料之外的區塊版本 %s corrupt, salvage failed - %s 已损坏,抢救备份失败 + 錢包檔 %s 壞掉了,搶救失敗 -maxmempool must be at least %d MB - -maxmempool 最小为%d MB + 參數 -maxmempool 至少要給 %d 百萬位元組(MB) Cannot resolve -%s address: '%s' - 无法解析 - %s 地址: '%s' + 沒辦法解析 -%s 參數指定的位址: '%s' Change index out of range - 找零超过索引范围 + 找零的索引值超出範圍 Config setting for %s only applied on %s network when in [%s] section. @@ -3327,67 +3327,67 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Copyright (C) %i-%i - 版权所有 (C) %i-%i + 版權所有 (C) %i-%i Corrupted block database detected - 检测到区块数据库损坏 + 發現區塊資料庫壞掉了 Do you want to rebuild the block database now? - 你想现在就重建区块数据库吗? + 你想要現在重建區塊資料庫嗎? Error initializing block database - 初始化区块数据库出错 + 初始化區塊資料庫時發生錯誤 Error initializing wallet database environment %s! - 初始化钱包数据库环境错误 %s! + 初始化錢包資料庫環境 %s 時發生錯誤! Error loading %s - 载入 %s 时发生错误 + 載入檔案 %s 時發生錯誤 Error loading %s: Private keys can only be disabled during creation - 加载 %s 时出错:只能在创建钱包时禁用私钥。 + 載入 %s 時發生錯誤: 只有在造新錢包時能夠指定不允許私鑰 Error loading %s: Wallet corrupted - %s 加载出错:钱包损坏 + 載入檔案 %s 時發生錯誤: 錢包損毀了 Error loading %s: Wallet requires newer version of %s - %s 加载错误:请升级到最新版 %s + 載入檔案 %s 時發生錯誤: 這個錢包需要新版的 %s Error loading block database - 导入区块数据库出错 + 載入區塊資料庫時發生錯誤 Error opening block database - 导入区块数据库出错 + 打開區塊資料庫時發生錯誤 Failed to listen on any port. Use -listen=0 if you want this. - 监听端口失败。请使用 -listen=0 参数。 + 在任意的通訊埠聽候失敗。如果你希望這樣的話,可以設定 -listen=0. Failed to rescan the wallet during initialization - 初始化时重新扫描钱包失败了 + 初始化時重新掃描錢包失敗了 Importing... - 导入中... + 正在匯入中... Incorrect or no genesis block found. Wrong datadir for network? - 不正确或没有找到起源区块。网络错误? + 創世區塊不正確或找不到。資料目錄錯了嗎? Initialization sanity check failed. %s is shutting down. - 初始化完整性检查失败。%s 即将关闭。 + 初始化時的基本檢查失敗了。%s 就要關閉了。 Invalid P2P permission: '%s' @@ -3395,19 +3395,19 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Invalid amount for -%s=<amount>: '%s' - 无效的金额 -%s=<amount>: '%s' + 參數 -%s=<金額> 指定的金額無效: '%s' Invalid amount for -discardfee=<amount>: '%s' - 无效的金额 -discardfee=<amount>: '%s' + 設定 -discardfee=<金額> 的金額無效: '%s' Invalid amount for -fallbackfee=<amount>: '%s' - -fallbackfee 的无效数额=<amount>: '%s' + 設定 -fallbackfee=<金額> 的金額無效: '%s' Specified blocks directory "%s" does not exist. - 指定的区块目录"%s"不存在。 + 指定的區塊目錄 "%s" 不存在。 Unknown address type '%s' @@ -3419,11 +3419,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Upgrading txindex database - 正在升级交易索引数据库 + 正在升級 txindex 資料庫 Loading P2P addresses... - 正在加载P2P地址... + 正在載入 P2P 位址資料... Error: Disk space is too low! @@ -3431,87 +3431,87 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Loading banlist... - 正在加载黑名单... + 正在載入禁止連線名單中... Not enough file descriptors available. - 没有足够的文件描述符可用。 + 檔案描述元不足。 Prune cannot be configured with a negative value. - 修剪不能配置一个负数。 + 修剪值不能設定為負的。 Prune mode is incompatible with -txindex. - 修剪模式与 -txindex 不兼容。 + 修剪模式和 -txindex 參數不相容。 Replaying blocks... - 正在对区块进行重算… + 正在對區塊進行重算... Rewinding blocks... - 回退区块... + 正在倒轉回區塊鏈之前的狀態... The source code is available from %s. - 源代码可以在 %s 获得。 + 原始碼可以在 %s 取得。 Transaction fee and change calculation failed - 计算交易手续费和找零失败 + 計算交易手續費和找零失敗了 Unable to bind to %s on this computer. %s is probably already running. - 无法在本机绑定 %s 端口。%s 可能已经在运行。 + 沒辦法繫結在這台電腦上的 %s 。%s 可能已經在執行了。 Unable to generate keys - 无法生成密钥 + 沒辦法產生密鑰 Unsupported logging category %s=%s. - 不支持的日志分类 %s=%s. + 不支援的紀錄類別 %s=%s。 Upgrading UTXO database - 升级UTXO数据库 + 正在升級 UTXO 資料庫 User Agent comment (%s) contains unsafe characters. - 用户代理评论(%s)包含不安全的字符。 + 使用者代理註解(%s)中含有不安全的字元。 Verifying blocks... - 正在验证区块... + 正在驗證區塊資料... Wallet needed to be rewritten: restart %s to complete - 钱包需要被重写:请重新启动%s来完成 + 錢包需要重寫: 請重新啓動 %s 來完成 Error: Listening for incoming connections failed (listen returned error %s) - 错误:监听外部连接失败 (监听返回错误 %s) + 錯誤: 聽候外來連線失敗(回傳錯誤 %s) Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - -maxtxfee=<amount>: '%s' 的金额无效(交易费至少为 %s,以免交易滞留过久) + -maxtxfee=<amount>: '%s' 的金額無效 (必須大於最低轉發手續費 %s 以避免交易無法確認) The transaction amount is too small to send after the fee has been deducted - 在交易费被扣除后发送的交易金额太小 + 扣除手續費後的交易金額太少而不能傳送 You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain - 您需要使用 -reindex 重新构建数据库以返回未修剪的模式。这将重新下载整个区块链 + 回到非修剪的模式需要用 -reindex 參數來重建資料庫。這會導致重新下載整個區塊鏈。 Error reading from database, shutting down. - 读取数据库出错,关闭中。 + 讀取資料庫時發生錯誤,要關閉了。 Error upgrading chainstate database - 升级链状态数据库出错 + 升級區塊鏈狀態資料庫時發生錯誤 Error: Disk space is low for %s @@ -3519,23 +3519,23 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Invalid -onion address or hostname: '%s' - 无效的 -onion 地址: '%s' + 無效的 -onion 位址或主機名稱: '%s' Invalid -proxy address or hostname: '%s' - 无效的 -proxy 地址: '%s' + 無效的 -proxy 位址或主機名稱: '%s' Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - 无效的金额 -paytxfee=<amount>: '%s' (必须至少为 %s) + 設定 -paytxfee=<金額> 的金額無效: '%s' (至少要有 %s) Invalid netmask specified in -whitelist: '%s' - -whitelist: '%s' 指定的网络掩码无效 + 指定在 -whitelist 的網段無效: '%s' Need to specify a port with -whitebind: '%s' - -whitebind: '%s' 需要指定一个端口 + 指定 -whitebind 時必須包含通訊埠: '%s' Prune mode is incompatible with -blockfilterindex. @@ -3543,7 +3543,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Reducing -maxconnections from %d to %d, because of system limitations. - 因为系统的限制,将 -maxconnections 参数从 %d 降到了 %d + 因為系統的限制,將 -maxconnections 參數從 %d 降到了 %d Section [%s] is not recognized. @@ -3551,19 +3551,19 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Signing transaction failed - 签署交易失败 + 簽署交易失敗 Specified -walletdir "%s" does not exist - 以-walletdir指定的路径“%s”不存在 + 以 -walletdir 指定的路徑 "%s" 不存在 Specified -walletdir "%s" is a relative path - 以-walletdir指定的路径“%s”是相对路径 + 以 -walletdir 指定的路徑 "%s" 是相對路徑 Specified -walletdir "%s" is not a directory - 以-walletdir指定的路径“%s”不是个目录 + 以 -walletdir 指定的路徑 "%s" 不是個目錄 The specified config file %s does not exist @@ -3573,23 +3573,23 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p The transaction amount is too small to pay the fee - 交易金额太小,不足以支付交易费 + 交易金額太少而付不起手續費 This is experimental software. - 这是实验性的软件。 + 這套軟體屬於實驗性質。 Transaction amount too small - 交易量太小 + 交易金額太小 Transaction too large - 交易太大 + 交易位元量太大 Unable to bind to %s on this computer (bind returned error %s) - 无法在此计算机上绑定 %s (绑定返回错误 %s) + 無法和這台電腦上的 %s 繫結(回傳錯誤 %s) Unable to create the PID file '%s': %s @@ -3597,7 +3597,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Unable to generate initial keys - 无法产生初始的密钥 + 無法產生初始的密鑰 Unknown -blockfilterindex value %s. @@ -3605,115 +3605,115 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Verifying wallet(s)... - 正在检测钱包的完整性... + 正在驗證錢包資料... Warning: unknown new rules activated (versionbit %i) - 警告: 不明的交易规则被启用了(versionbit %i) + 警告: 不明的交易規則被啟用了(versionbit %i) Zapping all transactions from wallet... - 正在消除錢包中的所有交易... + 正在砍掉錢包中的所有交易... -maxtxfee is set very high! Fees this large could be paid on a single transaction. - 参数 -maxtxfee 设定了很高的金额!这是你一次交易就有可能付出的最高手续费。 + 參數 -maxtxfee 設定了很高的金額!這可是你一次交易就有可能付出的最高手續費。 This is the transaction fee you may pay when fee estimates are not available. - 这是在费用估计不可用时你可能会支付的交易费。 + 這是當預估手續費還沒計算出來時,付款交易預設會付的手續費。 This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - 此产品包含了由OpenSSL Project所开发的OpenSSL Toolkit软件%s,由Eric Young撰写的加解密软件,以及由Thomas Bernard所撰写的UPnP软件。 + 此產品包含了由 OpenSSL Project 所開發的 OpenSSL Toolkit 軟體 %s, 由 Eric Young 撰寫的加解密軟體,以及由 Thomas Bernard 所撰寫的 UPnP 軟體。 Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. - 网络版本字符串的总长度 (%i) 超过最大长度 (%i) 了。请减少 uacomment 参数的数目或长度。 + 網路版本字串的總長度(%i)超過最大長度(%i)了。請減少 uacomment 參數的數目或長度。 Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. - 警告:钱包文件损坏,但数据被救回!原始的钱包文件%s已经重命名为%s并存储到%s目录下 。如果您的账户余额或者交易记录不正确,请使用您的钱包备份文件恢复。 + 警告: 錢包檔壞掉,但資料被救回來了!原來的檔案 %s 改儲存為 %s,在目錄 %s 下。 如果餘額或交易資料有誤的話,你應該要從備份資料復原回來。 %s is set very high! - %s非常高! + %s 的設定值異常大! Error loading wallet %s. Duplicate -wallet filename specified. - 加载钱包 %s 出错。 重复的 -wallet 文件名。 + 載入錢包檔 %s 失敗。-wallet 參數指定了重複的檔名。 Starting network threads... - 正在启动网络线程... + 正在啟動網路執行緒... The wallet will avoid paying less than the minimum relay fee. - 钱包避免低于最小交易费的支付 + 錢包軟體會付多於最小轉發費用的手續費。 This is the minimum transaction fee you pay on every transaction. - 这是你每次交易付款时最少要付的手续费。 + 這是你每次交易付款時最少要付的手續費。 This is the transaction fee you will pay if you send a transaction. - 如果发送交易,这将是你要支付的交易费。 + 這是你交易付款時所要付的手續費。 Transaction amounts must not be negative - 交易金额不不可为负数 + 交易金額不能是負的 Transaction has too long of a mempool chain - 此交易在内存池中串接了太多其他交易 + 交易造成記憶池中的交易鏈太長 Transaction must have at least one recipient - 交易必须包含至少一个接收人 + 交易必須至少要有一個收款人 Unknown network specified in -onlynet: '%s' - -onlynet 指定的是未知网络:%s + 在 -onlynet 指定了不明的網路別: '%s' Insufficient funds - 金额不足 + 累積金額不足 Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified. - 如果要对“未进行分割的HD钱包”(non HD split wallet)进行升级,就必须先把它升级到支持“未进行分割的密钥池(pre split keypool)”的版本,否则无法进行升级。请使用指定了具体版本号的 -upgradewallet=169900 参数,或者直接使用不指定具体版本号的 -upgradewallet 参数重启钱包。 + 無法將一個非 HD 分支錢包升級成不支援預先分支密鑰池的 HD 分支錢包版本。請用 -upgradewallet=169900 參數或是不指定版本的 -upgradewallet 參數來升級錢包。 Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee. - 手续费估计失败。而且备用手续费估计(fallbackfee)已被禁用。请再等一些区块,或者通过-fallbackfee参数启用备用手续费估计。 + 計算預估手續費失敗了,也沒有備用手續費(fallbackfee)可用。請再多等待幾個區塊,或是啟用 -fallbackfee 參數。 Warning: Private keys detected in wallet {%s} with disabled private keys - 警告:在已经禁用私钥的钱包 {%s} 中仍然检测到私钥 + 警告: 在不允許私鑰的錢包 {%s} 中發現有私鑰 Cannot write to data directory '%s'; check permissions. - 不能写入到数据目录'%s';请检查文件权限。 + 沒辦法寫入資料目錄 '%s',請檢查是否有權限。 Loading block index... - 正在加载区块索引... + 正在載入區塊索引... Loading wallet... - 正在加载钱包... + 正在載入錢包資料... Cannot downgrade wallet - 无法降级钱包 + 沒辦法把錢包格式降級 Rescanning... - 正在重新扫描... + 正在重新掃描... Done loading - 加载完成 + 載入完成 \ No newline at end of file From cd1e7bb064315ce909dfa1a0a14a5660d985f266 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 4 Oct 2019 08:07:28 +0200 Subject: [PATCH 005/388] build: Fix boost detection on Ubuntu ARM 18.04 Update ax_boost_base.m4 to version in progress: autoconf-archive/autoconf-archive#198 This is a temporary workaround for the problem in the 0.19.0 release; please pull in the upstream version when ready (see #17010). Tree-SHA512: ea8c4e895f5414cd307a9d809d2ec35fa8de6a733d8bf66080b67634d27cfb8b8f6256ca583a73e3ad899eebb42e6fc256ea693ae735624f968b34469c626586 --- build-aux/m4/ax_boost_base.m4 | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/build-aux/m4/ax_boost_base.m4 b/build-aux/m4/ax_boost_base.m4 index 16fa69b41f..74537dc40f 100644 --- a/build-aux/m4/ax_boost_base.m4 +++ b/build-aux/m4/ax_boost_base.m4 @@ -33,7 +33,7 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 47 +#serial 49 # example boost program (need to pass version) m4_define([_AX_BOOST_BASE_PROGRAM], @@ -126,8 +126,14 @@ AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ [multiarch_libsubdir="lib/${host_cpu}-${host_os}"] ) + dnl some arches may advertise a cpu type that doesn't line up with their + dnl prefix's cpu type. For example, uname may report armv7l while libs are + dnl installed to /usr/lib/arm-linux-gnueabihf. Try getting the compiler's + dnl value for an extra chance of finding the correct path. + libsubdirs="lib/`$CXX -dumpmachine 2>/dev/null` $libsubdirs" + dnl first we check the system location for boost libraries - dnl this location ist chosen if boost libraries are installed with the --layout=system option + dnl this location is chosen if boost libraries are installed with the --layout=system option dnl or if you install boost with RPM AS_IF([test "x$_AX_BOOST_BASE_boost_path" != "x"],[ AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) includes in "$_AX_BOOST_BASE_boost_path/include"]) From bd22dea6331ddb7b2d43913764ea5d8d5077f839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Barbosa?= Date: Wed, 2 Oct 2019 21:55:52 +0100 Subject: [PATCH 006/388] Prevent processing duplicate payment requests Github-Pull: #17031 Rebased-From: 3f89e1eb237efcbd6415ca2cd0acddb6596153d7 Tree-SHA512: da428b0d70c06a99c948d7d4af0827e517b6d93be11a7462a73cca2b829cc3e40e74eadca5c3148e80be56a7a64213507243a5d7d7e67d5d74317f3c07f2ef16 --- src/qt/paymentserver.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index 00d83d23dd..806cc3c41e 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -82,7 +82,7 @@ static QString ipcServerName() // the main GUI window is up and ready to ask the user // to send payment. -static QList savedPaymentRequests; +static QSet savedPaymentRequests; // // Sending to the server is done synchronously, at startup. @@ -107,7 +107,8 @@ void PaymentServer::ipcParseCommandLine(interfaces::Node& node, int argc, char* // will start a mainnet instance and throw a "wrong network" error. if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // bitcoin: URI { - savedPaymentRequests.append(arg); + if (savedPaymentRequests.contains(arg)) continue; + savedPaymentRequests.insert(arg); SendCoinsRecipient r; if (GUIUtil::parseBitcoinURI(arg, &r) && !r.address.isEmpty()) @@ -127,7 +128,8 @@ void PaymentServer::ipcParseCommandLine(interfaces::Node& node, int argc, char* #ifdef ENABLE_BIP70 else if (QFile::exists(arg)) // Filename { - savedPaymentRequests.append(arg); + if (savedPaymentRequests.contains(arg)) continue; + savedPaymentRequests.insert(arg); PaymentRequestPlus request; if (readPaymentRequestFromFile(arg, request)) @@ -280,7 +282,7 @@ void PaymentServer::handleURIOrFile(const QString& s) { if (saveURIs) { - savedPaymentRequests.append(s); + savedPaymentRequests.insert(s); return; } From 913972944b4f436a8afc1894352338db6b0f9561 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 4 Oct 2019 15:17:00 +0200 Subject: [PATCH 007/388] doc: Update manpages Tree-SHA512: c8fa2ce869402f5c8e5e8fd8c835cce5d1ba482cb784613ea074a98e7a1035ab64f832f4232d745fc7c79966e5201be4c843af45f36284653e793965bb415e0e --- doc/man/bitcoin-cli.1 | 15 ++++-- doc/man/bitcoin-qt.1 | 101 ++++++++++++++++++++++++++++---------- doc/man/bitcoin-tx.1 | 15 ++++-- doc/man/bitcoin-wallet.1 | 15 ++++-- doc/man/bitcoind.1 | 102 +++++++++++++++++++++++++++++---------- 5 files changed, 183 insertions(+), 65 deletions(-) diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1 index 95c1d24dff..5ff6e5e2cb 100644 --- a/doc/man/bitcoin-cli.1 +++ b/doc/man/bitcoin-cli.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-CLI "1" "February 2019" "bitcoin-cli v0.17.99.0" "User Commands" +.TH BITCOIN-CLI "1" "October 2019" "bitcoin-cli v0.19.0.0" "User Commands" .SH NAME -bitcoin-cli \- manual page for bitcoin-cli v0.17.99.0 +bitcoin-cli \- manual page for bitcoin-cli v0.19.0.0 .SH SYNOPSIS .B bitcoin-cli [\fI\,options\/\fR] \fI\, \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR @@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v0.17.99.0 .B bitcoin-cli [\fI\,options\/\fR] \fI\,help Get help for a command\/\fR .SH DESCRIPTION -Bitcoin Core RPC client version v0.17.99.0 +Bitcoin Core RPC client version v0.19.0.0 .SH OPTIONS .HP \-? @@ -98,11 +98,18 @@ RPC password. .IP Print version and exit .PP +Debugging/Testing options: +.PP Chain selection options: .HP +\fB\-chain=\fR +.IP +Use the chain (default: main). Allowed values: main, test, +regtest +.HP \fB\-testnet\fR .IP -Use the test chain +Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. .SH COPYRIGHT Copyright (C) 2009-2019 The Bitcoin Core developers diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1 index 1e8443b1d3..12238d2aa5 100644 --- a/doc/man/bitcoin-qt.1 +++ b/doc/man/bitcoin-qt.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-QT "1" "February 2019" "bitcoin-qt v0.17.99.0" "User Commands" +.TH BITCOIN-QT "1" "October 2019" "bitcoin-qt v0.19.0.0" "User Commands" .SH NAME -bitcoin-qt \- manual page for bitcoin-qt v0.17.99.0 +bitcoin-qt \- manual page for bitcoin-qt v0.19.0.0 .SH SYNOPSIS .B bitcoin-qt [\fI\,command-line options\/\fR] .SH DESCRIPTION -Bitcoin Core version v0.17.99.0 (64\-bit) +Bitcoin Core version v0.19.0.0 (64\-bit) .SH OPTIONS .HP \-? @@ -23,9 +23,15 @@ long fork (%s in cmd is replaced by message) If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: -0000000000000000002e63058c023a9a1de233554f28c7b21380b6c9003f36a8, +00000000000000000005f8920febd3925f8272a6a71237563d78c2edfdd09ddf, testnet: -0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75) +00000000000000b7ab6ce61eb6d571003fbe5fe892da4c9b740c49a07542462d) +.HP +\fB\-blockfilterindex=\fR +.IP +Maintain an index of compact filters by block (default: 0, values: +basic). If is not supplied or if = 1, indexes for +all known types are enabled. .HP \fB\-blocknotify=\fR .IP @@ -39,7 +45,14 @@ Extra transactions to keep in memory for compact block reconstructions .HP \fB\-blocksdir=\fR .IP -Specify blocks directory (default: /blocks) +Specify directory to hold blocks subdirectory for *.dat files (default: +) +.HP +\fB\-blocksonly\fR +.IP +Whether to reject transactions from network peers. Transactions from the +wallet, RPC and relay whitelisted inbound peers are not affected. +(default: 0) .HP \fB\-conf=\fR .IP @@ -56,7 +69,9 @@ Specify data directory .HP \fB\-dbcache=\fR .IP -Set database cache size in MiB (4 to 16384, default: 450) +Maximum database cache size MiB (4 to 16384, default: 450). In +addition, unused mempool memory is shared for this cache (see +\fB\-maxmempool\fR). .HP \fB\-debuglogfile=\fR .IP @@ -88,7 +103,7 @@ Do not keep transactions in the mempool longer than hours (default: .HP \fB\-par=\fR .IP -Set the number of script verification threads (\fB\-8\fR to 16, 0 = auto, <0 = +Set the number of script verification threads (\fB\-6\fR to 16, 0 = auto, <0 = leave that many cores free, default: 0) .HP \fB\-persistmempool\fR @@ -237,7 +252,7 @@ networks. \fB\-peerbloomfilters\fR .IP Support filtering of blocks and transaction with bloom filters (default: -1) +0) .HP \fB\-permitbaremultisig\fR .IP @@ -281,18 +296,22 @@ Tor control port password (default: empty) .IP Use UPnP to map the listening port (default: 0) .HP -\fB\-whitebind=\fR +\fB\-whitebind=\fR<[permissions@]addr> .IP Bind to given address and whitelist peers connecting to it. Use -[host]:port notation for IPv6 +[host]:port notation for IPv6. Allowed permissions are +bloomfilter (allow requesting BIP37 filtered blocks and +transactions), noban (do not ban for misbehavior), forcerelay +(relay even non\-standard transactions), relay (relay even in +\fB\-blocksonly\fR mode), and mempool (allow requesting BIP35 mempool +contents). Specify multiple permissions separated by commas +(default: noban,mempool,relay). Can be specified multiple times. .HP -\fB\-whitelist=\fR +\fB\-whitelist=\fR<[permissions@]IP address or network> .IP Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or -CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple -times. Whitelisted peers cannot be DoS banned and their -transactions are always relayed, even if they are already in the -mempool, useful e.g. for a gateway +CIDR notated network(e.g. 1.2.3.0/24). Uses same permissions as +\fB\-whitebind\fR. Can be specified multiple times. .PP Wallet options: .HP @@ -307,7 +326,8 @@ Group outputs by address, selecting all or none, instead of selecting on a per\-output basis. Privacy is improved as an address is only used once (unless someone sends to it after spending from it), but may result in slightly higher fees as suboptimal coin -selection may result due to the added limitation (default: 0) +selection may result due to the added limitation (default: 0 +(always enabled for wallets with "avoid_reuse" enabled)) .HP \fB\-changetype\fR .IP @@ -406,17 +426,35 @@ ZeroMQ notification options: .IP Enable publish hash block in
.HP +\fB\-zmqpubhashblockhwm=\fR +.IP +Set publish hash block outbound message high water mark (default: 1000) +.HP \fB\-zmqpubhashtx=\fR
.IP Enable publish hash transaction in
.HP +\fB\-zmqpubhashtxhwm=\fR +.IP +Set publish hash transaction outbound message high water mark (default: +1000) +.HP \fB\-zmqpubrawblock=\fR
.IP Enable publish raw block in
.HP +\fB\-zmqpubrawblockhwm=\fR +.IP +Set publish raw block outbound message high water mark (default: 1000) +.HP \fB\-zmqpubrawtx=\fR
.IP Enable publish raw transaction in
+.HP +\fB\-zmqpubrawtxhwm=\fR +.IP +Set publish raw transaction outbound message high water mark (default: +1000) .PP Debugging/Testing options: .HP @@ -443,15 +481,19 @@ Print help message with debugging options and exit .IP Include IP addresses in debug output (default: 0) .HP +\fB\-logthreadnames\fR +.IP +Prepend debug output with name of the originating thread (only available +on platforms supporting thread_local) (default: 0) +.HP \fB\-logtimestamps\fR .IP Prepend debug output with timestamp (default: 1) .HP \fB\-maxtxfee=\fR .IP -Maximum total fees (in BTC) to use in a single wallet transaction or raw -transaction; setting this too low may abort large transactions -(default: 0.10) +Maximum total fees (in BTC) to use in a single wallet transaction; +setting this too low may abort large transactions (default: 0.10) .HP \fB\-printtoconsole\fR .IP @@ -468,9 +510,14 @@ Append comment to the user agent string .PP Chain selection options: .HP +\fB\-chain=\fR +.IP +Use the chain (default: main). Allowed values: main, test, +regtest +.HP \fB\-testnet\fR .IP -Use the test chain +Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. .PP Node relay options: .HP @@ -488,7 +535,6 @@ Relay and mine data carrier transactions (default: 1) Maximum size of data in data carrier transactions we relay and mine (default: 83) .HP -.HP \fB\-minrelaytxfee=\fR .IP Fees (in BTC/kB) smaller than this are considered zero fee for relaying, @@ -496,13 +542,16 @@ mining and transaction creation (default: 0.00001) .HP \fB\-whitelistforcerelay\fR .IP -Force relay of transactions from whitelisted peers even if they violate -local relay policy (default: 0) +Add 'forcerelay' permission to whitelisted inbound peers with default +permissions. This will relay transactions even if the +transactions were already in the mempool or violate local relay +policy. (default: 0) .HP \fB\-whitelistrelay\fR .IP -Accept relayed transactions received from whitelisted peers even when -not relaying transactions (default: 1) +Add 'relay' permission to whitelisted inbound peers with default +permissions. The will accept relayed transactions even when not +relaying transactions (default: 1) .PP Block creation options: .HP diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1 index 6b6071d9b7..9023d1ace4 100644 --- a/doc/man/bitcoin-tx.1 +++ b/doc/man/bitcoin-tx.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-TX "1" "February 2019" "bitcoin-tx v0.17.99.0" "User Commands" +.TH BITCOIN-TX "1" "October 2019" "bitcoin-tx v0.19.0.0" "User Commands" .SH NAME -bitcoin-tx \- manual page for bitcoin-tx v0.17.99.0 +bitcoin-tx \- manual page for bitcoin-tx v0.19.0.0 .SH SYNOPSIS .B bitcoin-tx [\fI\,options\/\fR] \fI\, \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR @@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v0.17.99.0 .B bitcoin-tx [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded bitcoin transaction\/\fR .SH DESCRIPTION -Bitcoin Core bitcoin\-tx utility version v0.17.99.0 +Bitcoin Core bitcoin\-tx utility version v0.19.0.0 .SH OPTIONS .HP \-? @@ -28,11 +28,18 @@ Select JSON output .IP Output only the hex\-encoded transaction id of the resultant transaction. .PP +Debugging/Testing options: +.PP Chain selection options: .HP +\fB\-chain=\fR +.IP +Use the chain (default: main). Allowed values: main, test, +regtest +.HP \fB\-testnet\fR .IP -Use the test chain +Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. .PP Commands: .IP diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1 index 1cb8cdebcd..f671e29843 100644 --- a/doc/man/bitcoin-wallet.1 +++ b/doc/man/bitcoin-wallet.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-WALLET "1" "February 2019" "bitcoin-wallet v0.17.99.0" "User Commands" +.TH BITCOIN-WALLET "1" "October 2019" "bitcoin-wallet v0.19.0.0" "User Commands" .SH NAME -bitcoin-wallet \- manual page for bitcoin-wallet v0.17.99.0 +bitcoin-wallet \- manual page for bitcoin-wallet v0.19.0.0 .SH DESCRIPTION -Bitcoin Core bitcoin\-wallet version v0.17.99.0 +Bitcoin Core bitcoin\-wallet version v0.19.0.0 .PP wallet\-tool is an offline tool for creating and interacting with Bitcoin Core wallet files. By default wallet\-tool will act on wallets in the default mainnet wallet directory in the datadir. @@ -34,13 +34,18 @@ Output debugging information (default: 0). \fB\-printtoconsole\fR .IP Send trace/debug info to console (default: 1 when no \fB\-debug\fR is true, 0 -otherwise. +otherwise). .PP Chain selection options: .HP +\fB\-chain=\fR +.IP +Use the chain (default: main). Allowed values: main, test, +regtest +.HP \fB\-testnet\fR .IP -Use the test chain +Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. .PP Commands: .IP diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1 index 2a79b6cb46..f79fd3a0e0 100644 --- a/doc/man/bitcoind.1 +++ b/doc/man/bitcoind.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIND "1" "February 2019" "bitcoind v0.17.99.0" "User Commands" +.TH BITCOIND "1" "October 2019" "bitcoind v0.19.0.0" "User Commands" .SH NAME -bitcoind \- manual page for bitcoind v0.17.99.0 +bitcoind \- manual page for bitcoind v0.19.0.0 .SH SYNOPSIS .B bitcoind -[\fI\,options\/\fR] \fI\,Start Bitcoin Core Daemon\/\fR +[\fI\,options\/\fR] \fI\,Start Bitcoin Core\/\fR .SH DESCRIPTION -Bitcoin Core Daemon version v0.17.99.0 +Bitcoin Core version v0.19.0.0 .SH OPTIONS .HP \-? @@ -23,9 +23,15 @@ long fork (%s in cmd is replaced by message) If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: -0000000000000000002e63058c023a9a1de233554f28c7b21380b6c9003f36a8, +00000000000000000005f8920febd3925f8272a6a71237563d78c2edfdd09ddf, testnet: -0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75) +00000000000000b7ab6ce61eb6d571003fbe5fe892da4c9b740c49a07542462d) +.HP +\fB\-blockfilterindex=\fR +.IP +Maintain an index of compact filters by block (default: 0, values: +basic). If is not supplied or if = 1, indexes for +all known types are enabled. .HP \fB\-blocknotify=\fR .IP @@ -39,7 +45,14 @@ Extra transactions to keep in memory for compact block reconstructions .HP \fB\-blocksdir=\fR .IP -Specify blocks directory (default: /blocks) +Specify directory to hold blocks subdirectory for *.dat files (default: +) +.HP +\fB\-blocksonly\fR +.IP +Whether to reject transactions from network peers. Transactions from the +wallet, RPC and relay whitelisted inbound peers are not affected. +(default: 0) .HP \fB\-conf=\fR .IP @@ -56,7 +69,9 @@ Specify data directory .HP \fB\-dbcache=\fR .IP -Set database cache size in MiB (4 to 16384, default: 450) +Maximum database cache size MiB (4 to 16384, default: 450). In +addition, unused mempool memory is shared for this cache (see +\fB\-maxmempool\fR). .HP \fB\-debuglogfile=\fR .IP @@ -88,7 +103,7 @@ Do not keep transactions in the mempool longer than hours (default: .HP \fB\-par=\fR .IP -Set the number of script verification threads (\fB\-8\fR to 16, 0 = auto, <0 = +Set the number of script verification threads (\fB\-6\fR to 16, 0 = auto, <0 = leave that many cores free, default: 0) .HP \fB\-persistmempool\fR @@ -237,7 +252,7 @@ networks. \fB\-peerbloomfilters\fR .IP Support filtering of blocks and transaction with bloom filters (default: -1) +0) .HP \fB\-permitbaremultisig\fR .IP @@ -281,18 +296,22 @@ Tor control port password (default: empty) .IP Use UPnP to map the listening port (default: 0) .HP -\fB\-whitebind=\fR +\fB\-whitebind=\fR<[permissions@]addr> .IP Bind to given address and whitelist peers connecting to it. Use -[host]:port notation for IPv6 +[host]:port notation for IPv6. Allowed permissions are +bloomfilter (allow requesting BIP37 filtered blocks and +transactions), noban (do not ban for misbehavior), forcerelay +(relay even non\-standard transactions), relay (relay even in +\fB\-blocksonly\fR mode), and mempool (allow requesting BIP35 mempool +contents). Specify multiple permissions separated by commas +(default: noban,mempool,relay). Can be specified multiple times. .HP -\fB\-whitelist=\fR +\fB\-whitelist=\fR<[permissions@]IP address or network> .IP Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or -CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple -times. Whitelisted peers cannot be DoS banned and their -transactions are always relayed, even if they are already in the -mempool, useful e.g. for a gateway +CIDR notated network(e.g. 1.2.3.0/24). Uses same permissions as +\fB\-whitebind\fR. Can be specified multiple times. .PP Wallet options: .HP @@ -307,7 +326,8 @@ Group outputs by address, selecting all or none, instead of selecting on a per\-output basis. Privacy is improved as an address is only used once (unless someone sends to it after spending from it), but may result in slightly higher fees as suboptimal coin -selection may result due to the added limitation (default: 0) +selection may result due to the added limitation (default: 0 +(always enabled for wallets with "avoid_reuse" enabled)) .HP \fB\-changetype\fR .IP @@ -406,17 +426,35 @@ ZeroMQ notification options: .IP Enable publish hash block in
.HP +\fB\-zmqpubhashblockhwm=\fR +.IP +Set publish hash block outbound message high water mark (default: 1000) +.HP \fB\-zmqpubhashtx=\fR
.IP Enable publish hash transaction in
.HP +\fB\-zmqpubhashtxhwm=\fR +.IP +Set publish hash transaction outbound message high water mark (default: +1000) +.HP \fB\-zmqpubrawblock=\fR
.IP Enable publish raw block in
.HP +\fB\-zmqpubrawblockhwm=\fR +.IP +Set publish raw block outbound message high water mark (default: 1000) +.HP \fB\-zmqpubrawtx=\fR
.IP Enable publish raw transaction in
+.HP +\fB\-zmqpubrawtxhwm=\fR +.IP +Set publish raw transaction outbound message high water mark (default: +1000) .PP Debugging/Testing options: .HP @@ -443,15 +481,19 @@ Print help message with debugging options and exit .IP Include IP addresses in debug output (default: 0) .HP +\fB\-logthreadnames\fR +.IP +Prepend debug output with name of the originating thread (only available +on platforms supporting thread_local) (default: 0) +.HP \fB\-logtimestamps\fR .IP Prepend debug output with timestamp (default: 1) .HP \fB\-maxtxfee=\fR .IP -Maximum total fees (in BTC) to use in a single wallet transaction or raw -transaction; setting this too low may abort large transactions -(default: 0.10) +Maximum total fees (in BTC) to use in a single wallet transaction; +setting this too low may abort large transactions (default: 0.10) .HP \fB\-printtoconsole\fR .IP @@ -468,9 +510,14 @@ Append comment to the user agent string .PP Chain selection options: .HP +\fB\-chain=\fR +.IP +Use the chain (default: main). Allowed values: main, test, +regtest +.HP \fB\-testnet\fR .IP -Use the test chain +Use the test chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. .PP Node relay options: .HP @@ -495,13 +542,16 @@ mining and transaction creation (default: 0.00001) .HP \fB\-whitelistforcerelay\fR .IP -Force relay of transactions from whitelisted peers even if they violate -local relay policy (default: 0) +Add 'forcerelay' permission to whitelisted inbound peers with default +permissions. This will relay transactions even if the +transactions were already in the mempool or violate local relay +policy. (default: 0) .HP \fB\-whitelistrelay\fR .IP -Accept relayed transactions received from whitelisted peers even when -not relaying transactions (default: 1) +Add 'relay' permission to whitelisted inbound peers with default +permissions. The will accept relayed transactions even when not +relaying transactions (default: 1) .PP Block creation options: .HP From 3a7b2a15e3ddcb26361f9bfc0de35dd6071f77eb Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sun, 6 Oct 2019 10:53:53 +0200 Subject: [PATCH 008/388] qt: Periodic translations update Remove stale translations. Closes #17061. Tree-SHA512: c1540a5ccd63944c069b58fc6e3ec50e10e380c5de01a09a75b8971d4ffeedf3d09fbb33fed0e1a773a9258b370d97885dc4e8e6c0eff36ef68f2cf1e7c9d103 --- src/Makefile.qt_locale.include | 24 - src/qt/bitcoin_locale.qrc | 24 - src/qt/locale/bitcoin_be_BY.ts | 1321 ------------ src/qt/locale/bitcoin_cs_CZ.ts | 691 ------ src/qt/locale/bitcoin_de.ts | 2 +- src/qt/locale/bitcoin_de_DE.ts | 929 -------- src/qt/locale/bitcoin_el_GR.ts | 2095 ------------------ src/qt/locale/bitcoin_en_AU.ts | 187 -- src/qt/locale/bitcoin_es_ES.ts | 3185 --------------------------- src/qt/locale/bitcoin_et_EE.ts | 779 ------- src/qt/locale/bitcoin_fr_CA.ts | 183 -- src/qt/locale/bitcoin_fr_FR.ts | 2314 -------------------- src/qt/locale/bitcoin_he_IL.ts | 235 -- src/qt/locale/bitcoin_hu_HU.ts | 2685 ----------------------- src/qt/locale/bitcoin_id_ID.ts | 2137 ------------------- src/qt/locale/bitcoin_it_IT.ts | 1081 ---------- src/qt/locale/bitcoin_lt.ts | 4 + src/qt/locale/bitcoin_lv_LV.ts | 1279 ----------- src/qt/locale/bitcoin_ms_MY.ts | 632 ------ src/qt/locale/bitcoin_nl_NL.ts | 1029 --------- src/qt/locale/bitcoin_pt_PT.ts | 3502 ------------------------------ src/qt/locale/bitcoin_ro_RO.ts | 3659 -------------------------------- src/qt/locale/bitcoin_ru_RU.ts | 2407 --------------------- src/qt/locale/bitcoin_sk_SK.ts | 3651 ------------------------------- src/qt/locale/bitcoin_sl.ts | 20 + src/qt/locale/bitcoin_sl_SI.ts | 1913 ----------------- src/qt/locale/bitcoin_tr_TR.ts | 1518 ------------- src/qt/locale/bitcoin_uk_UA.ts | 239 --- src/qt/locale/bitcoin_vi_VN.ts | 1250 ----------- 29 files changed, 25 insertions(+), 38950 deletions(-) delete mode 100644 src/qt/locale/bitcoin_be_BY.ts delete mode 100644 src/qt/locale/bitcoin_cs_CZ.ts delete mode 100644 src/qt/locale/bitcoin_de_DE.ts delete mode 100644 src/qt/locale/bitcoin_el_GR.ts delete mode 100644 src/qt/locale/bitcoin_en_AU.ts delete mode 100644 src/qt/locale/bitcoin_es_ES.ts delete mode 100644 src/qt/locale/bitcoin_et_EE.ts delete mode 100644 src/qt/locale/bitcoin_fr_CA.ts delete mode 100644 src/qt/locale/bitcoin_fr_FR.ts delete mode 100644 src/qt/locale/bitcoin_he_IL.ts delete mode 100644 src/qt/locale/bitcoin_hu_HU.ts delete mode 100644 src/qt/locale/bitcoin_id_ID.ts delete mode 100644 src/qt/locale/bitcoin_it_IT.ts delete mode 100644 src/qt/locale/bitcoin_lv_LV.ts delete mode 100644 src/qt/locale/bitcoin_ms_MY.ts delete mode 100644 src/qt/locale/bitcoin_nl_NL.ts delete mode 100644 src/qt/locale/bitcoin_pt_PT.ts delete mode 100644 src/qt/locale/bitcoin_ro_RO.ts delete mode 100644 src/qt/locale/bitcoin_ru_RU.ts delete mode 100644 src/qt/locale/bitcoin_sk_SK.ts delete mode 100644 src/qt/locale/bitcoin_sl_SI.ts delete mode 100644 src/qt/locale/bitcoin_tr_TR.ts delete mode 100644 src/qt/locale/bitcoin_uk_UA.ts delete mode 100644 src/qt/locale/bitcoin_vi_VN.ts diff --git a/src/Makefile.qt_locale.include b/src/Makefile.qt_locale.include index fad4873545..873e1a3c27 100644 --- a/src/Makefile.qt_locale.include +++ b/src/Makefile.qt_locale.include @@ -1,46 +1,33 @@ QT_TS = \ qt/locale/bitcoin_ar.ts \ - qt/locale/bitcoin_be_BY.ts \ qt/locale/bitcoin_ca.ts \ qt/locale/bitcoin_cs.ts \ - qt/locale/bitcoin_cs_CZ.ts \ qt/locale/bitcoin_cy.ts \ qt/locale/bitcoin_da.ts \ qt/locale/bitcoin_de.ts \ - qt/locale/bitcoin_de_DE.ts \ qt/locale/bitcoin_el.ts \ - qt/locale/bitcoin_el_GR.ts \ - qt/locale/bitcoin_en_AU.ts \ qt/locale/bitcoin_en_GB.ts \ qt/locale/bitcoin_eo.ts \ qt/locale/bitcoin_es.ts \ qt/locale/bitcoin_es_CL.ts \ qt/locale/bitcoin_es_CO.ts \ qt/locale/bitcoin_es_DO.ts \ - qt/locale/bitcoin_es_ES.ts \ qt/locale/bitcoin_es_MX.ts \ qt/locale/bitcoin_es_VE.ts \ qt/locale/bitcoin_et.ts \ - qt/locale/bitcoin_et_EE.ts \ qt/locale/bitcoin_eu.ts \ qt/locale/bitcoin_fa.ts \ qt/locale/bitcoin_fi.ts \ qt/locale/bitcoin_fil.ts \ qt/locale/bitcoin_fr.ts \ - qt/locale/bitcoin_fr_CA.ts \ - qt/locale/bitcoin_fr_FR.ts \ qt/locale/bitcoin_gl.ts \ qt/locale/bitcoin_he.ts \ - qt/locale/bitcoin_he_IL.ts \ qt/locale/bitcoin_hi.ts \ qt/locale/bitcoin_hr.ts \ qt/locale/bitcoin_hu.ts \ - qt/locale/bitcoin_hu_HU.ts \ qt/locale/bitcoin_id.ts \ - qt/locale/bitcoin_id_ID.ts \ qt/locale/bitcoin_is.ts \ qt/locale/bitcoin_it.ts \ - qt/locale/bitcoin_it_IT.ts \ qt/locale/bitcoin_ja.ts \ qt/locale/bitcoin_ka.ts \ qt/locale/bitcoin_kk.ts \ @@ -51,31 +38,23 @@ QT_TS = \ qt/locale/bitcoin_la.ts \ qt/locale/bitcoin_lt.ts \ qt/locale/bitcoin_lv.ts \ - qt/locale/bitcoin_lv_LV.ts \ qt/locale/bitcoin_mk.ts \ qt/locale/bitcoin_ml.ts \ qt/locale/bitcoin_mn.ts \ qt/locale/bitcoin_mr_IN.ts \ qt/locale/bitcoin_ms.ts \ - qt/locale/bitcoin_ms_MY.ts \ qt/locale/bitcoin_nb.ts \ qt/locale/bitcoin_ne.ts \ qt/locale/bitcoin_nl.ts \ - qt/locale/bitcoin_nl_NL.ts \ qt/locale/bitcoin_pam.ts \ qt/locale/bitcoin_pl.ts \ qt/locale/bitcoin_pt.ts \ qt/locale/bitcoin_pt_BR.ts \ - qt/locale/bitcoin_pt_PT.ts \ qt/locale/bitcoin_ro.ts \ - qt/locale/bitcoin_ro_RO.ts \ qt/locale/bitcoin_ru.ts \ - qt/locale/bitcoin_ru_RU.ts \ qt/locale/bitcoin_si.ts \ qt/locale/bitcoin_sk.ts \ - qt/locale/bitcoin_sk_SK.ts \ qt/locale/bitcoin_sl.ts \ - qt/locale/bitcoin_sl_SI.ts \ qt/locale/bitcoin_sn.ts \ qt/locale/bitcoin_sr.ts \ qt/locale/bitcoin_sr@latin.ts \ @@ -85,13 +64,10 @@ QT_TS = \ qt/locale/bitcoin_te.ts \ qt/locale/bitcoin_th.ts \ qt/locale/bitcoin_tr.ts \ - qt/locale/bitcoin_tr_TR.ts \ qt/locale/bitcoin_uk.ts \ - qt/locale/bitcoin_uk_UA.ts \ qt/locale/bitcoin_ur.ts \ qt/locale/bitcoin_uz@Cyrl.ts \ qt/locale/bitcoin_vi.ts \ - qt/locale/bitcoin_vi_VN.ts \ qt/locale/bitcoin_yo.ts \ qt/locale/bitcoin_zh-Hans.ts \ qt/locale/bitcoin_zh_CN.ts \ diff --git a/src/qt/bitcoin_locale.qrc b/src/qt/bitcoin_locale.qrc index dec3670536..2c0230a10e 100644 --- a/src/qt/bitcoin_locale.qrc +++ b/src/qt/bitcoin_locale.qrc @@ -1,47 +1,34 @@ locale/bitcoin_ar.qm - locale/bitcoin_be_BY.qm locale/bitcoin_ca.qm locale/bitcoin_cs.qm - locale/bitcoin_cs_CZ.qm locale/bitcoin_cy.qm locale/bitcoin_da.qm locale/bitcoin_de.qm - locale/bitcoin_de_DE.qm locale/bitcoin_el.qm - locale/bitcoin_el_GR.qm - locale/bitcoin_en_AU.qm locale/bitcoin_en_GB.qm locale/bitcoin_eo.qm locale/bitcoin_es.qm locale/bitcoin_es_CL.qm locale/bitcoin_es_CO.qm locale/bitcoin_es_DO.qm - locale/bitcoin_es_ES.qm locale/bitcoin_es_MX.qm locale/bitcoin_es_VE.qm locale/bitcoin_et.qm - locale/bitcoin_et_EE.qm locale/bitcoin_eu.qm locale/bitcoin_fa.qm locale/bitcoin_fi.qm locale/bitcoin_fil.qm locale/bitcoin_fr.qm - locale/bitcoin_fr_CA.qm - locale/bitcoin_fr_FR.qm locale/bitcoin_gl.qm locale/bitcoin_he.qm - locale/bitcoin_he_IL.qm locale/bitcoin_hi.qm locale/bitcoin_hr.qm locale/bitcoin_hu.qm - locale/bitcoin_hu_HU.qm locale/bitcoin_id.qm - locale/bitcoin_id_ID.qm locale/bitcoin_is.qm locale/bitcoin_it.qm - locale/bitcoin_it_IT.qm locale/bitcoin_ja.qm locale/bitcoin_ka.qm locale/bitcoin_kk.qm @@ -52,31 +39,23 @@ locale/bitcoin_la.qm locale/bitcoin_lt.qm locale/bitcoin_lv.qm - locale/bitcoin_lv_LV.qm locale/bitcoin_mk.qm locale/bitcoin_ml.qm locale/bitcoin_mn.qm locale/bitcoin_mr_IN.qm locale/bitcoin_ms.qm - locale/bitcoin_ms_MY.qm locale/bitcoin_nb.qm locale/bitcoin_ne.qm locale/bitcoin_nl.qm - locale/bitcoin_nl_NL.qm locale/bitcoin_pam.qm locale/bitcoin_pl.qm locale/bitcoin_pt.qm locale/bitcoin_pt_BR.qm - locale/bitcoin_pt_PT.qm locale/bitcoin_ro.qm - locale/bitcoin_ro_RO.qm locale/bitcoin_ru.qm - locale/bitcoin_ru_RU.qm locale/bitcoin_si.qm locale/bitcoin_sk.qm - locale/bitcoin_sk_SK.qm locale/bitcoin_sl.qm - locale/bitcoin_sl_SI.qm locale/bitcoin_sn.qm locale/bitcoin_sr.qm locale/bitcoin_sr@latin.qm @@ -86,13 +65,10 @@ locale/bitcoin_te.qm locale/bitcoin_th.qm locale/bitcoin_tr.qm - locale/bitcoin_tr_TR.qm locale/bitcoin_uk.qm - locale/bitcoin_uk_UA.qm locale/bitcoin_ur.qm locale/bitcoin_uz@Cyrl.qm locale/bitcoin_vi.qm - locale/bitcoin_vi_VN.qm locale/bitcoin_yo.qm locale/bitcoin_zh-Hans.qm locale/bitcoin_zh_CN.qm diff --git a/src/qt/locale/bitcoin_be_BY.ts b/src/qt/locale/bitcoin_be_BY.ts deleted file mode 100644 index ab80936a59..0000000000 --- a/src/qt/locale/bitcoin_be_BY.ts +++ /dev/null @@ -1,1321 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Правы клік, каб рэдагаваць адрас ці метку - - - Create a new address - Стварыць новы адрас - - - &New - Новы - - - Copy the currently selected address to the system clipboard - Капіяваць пазначаны адрас у сістэмны буфер абмену - - - &Copy - Капіяваць - - - C&lose - Зачыніць - - - Delete the currently selected address from the list - Выдаліць абраны адрас са спісу - - - Enter address or label to search - Увядзіце адрас ці пазнаку для пошуку - - - Export the data in the current tab to a file - Экспартаваць гэтыя звесткі у файл - - - &Export - Экспарт - - - &Delete - Выдаліць - - - Choose the address to send coins to - Выбраць адрас, куды выслаць сродкі - - - Choose the address to receive coins with - Выбраць адрас, на які атрымаць сродкі - - - C&hoose - Выбраць - - - Sending addresses - адрасы Адпраўкі - - - Receiving addresses - адрасы Прымання - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Тут знаходзяцца Біткойн-адрасы для высылання плацяжоў. Заўсёды спраўджвайце колькасць і адрас прызначэння перад здзяйсненнем транзакцыі. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Тут знаходзяцца Біткойн-адрасы для прымання плацяжоў. Пажадана выкарыстоўваць новы адрас для кожнай транзакцыі. - - - &Copy Address - Капіяваць адрас - - - Copy &Label - Капіяваць Метку - - - &Edit - Рэдагаваць - - - Export Address List - Экспартаваць Спіс Адрасоў - - - Comma separated file (*.csv) - Коскамі падзелены файл (*.csv) - - - Exporting Failed - Экспартаванне няўдалае - - - There was an error trying to save the address list to %1. Please try again. - Адбылася памылка падчас спробы захаваць адрас у %1. Паспрабуйце зноў. - - - - AddressTableModel - - Label - Метка - - - Address - Адрас - - - (no label) - непазначаны - - - - AskPassphraseDialog - - Passphrase Dialog - Дыялог сакрэтнай фразы - - - Enter passphrase - Увядзіце кодавую фразу - - - New passphrase - Новая кодавая фраза - - - Repeat new passphrase - Паўтарыце новую кодавую фразу - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Увядзіце новы пароль для гаманца.<br/>Парольная фраза павинна складацца<b> не меньш чым з дзесяці сімвалаў</b>, ці <b>больш чым з васьмі слоў</b>. - - - Encrypt wallet - Зашыфраваць гаманец. - - - This operation needs your wallet passphrase to unlock the wallet. - Гэтая аперацыя патрабуе кодавую фразу, каб рзблакаваць гаманец. - - - Unlock wallet - Разблакаваць гаманец - - - This operation needs your wallet passphrase to decrypt the wallet. - Гэтая аперацыя патрабуе пароль каб расшыфраваць гаманец. - - - Decrypt wallet - Рачшыфраваць гаманец - - - Change passphrase - Змяніць пароль - - - Enter the old passphrase and new passphrase to the wallet. - Увядзіце стары пароль і новы пароль для гаманца. - - - Confirm wallet encryption - Пацвердзіце шыфраванне гаманца - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Увага: калі вы зашыфруеце свой гаманец і страціце парольную фразу, то <b>СТРАЦІЦЕ ЎСЕ СВАЕ БІТКОЙНЫ</b>! - - - Are you sure you wish to encrypt your wallet? - Ці ўпэўненыя вы, што жадаеце зашыфраваць свой гаманец? - - - Wallet encrypted - Гаманец зашыфраваны - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - ВАЖНА: Усе папярэднія копіі гаманца варта замяніць новым зашыфраваным файлам. У мэтах бяспекі папярэднія копіі незашыфраванага файла-гаманца стануць неўжывальнымі, калі вы станеце карыстацца новым зашыфраваным гаманцом. - - - Wallet encryption failed - Шыфраванне гаманца няўдалае - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Шыфраванне гаманца не адбылося з-за ўнутранай памылкі. Гаманец незашыфраваны. - - - The supplied passphrases do not match. - Уведдзеныя паролі не супадаюць - - - Wallet unlock failed - Разблакаванне гаманца няўдалае - - - The passphrase entered for the wallet decryption was incorrect. - Уведзены пароль для расшыфравання гаманца памылковы - - - Wallet decryption failed - Расшыфраванне гаманца няўдалае - - - Wallet passphrase was successfully changed. - Парольная фраза гаманца паспяхова зменена. - - - Warning: The Caps Lock key is on! - Увага: Caps Lock уключаны! - - - - BanTableModel - - - BitcoinGUI - - Sign &message... - Падпісаць паведамленне... - - - Synchronizing with network... - Сінхранізацыя з сецівам... - - - &Overview - Агляд - - - Node - Вузел - - - Show general overview of wallet - Паказвае агульныя звесткі аб гаманцы - - - &Transactions - Транзакцыі - - - Browse transaction history - Праглядзець гісторыю транзакцый - - - E&xit - Выйсці - - - Quit application - Выйсці з праграмы - - - About &Qt - Аб Qt - - - Show information about Qt - Паказаць інфармацыю аб Qt - - - &Options... - Опцыі... - - - &Encrypt Wallet... - Зашыфраваць Гаманец... - - - &Backup Wallet... - Стварыць копію гаманца... - - - &Change Passphrase... - &Change Passphrase... - - - &Sending addresses... - Адрасы дасылання... - - - &Receiving addresses... - Адрасы прымання... - - - Open &URI... - Адчыниць &URI... - - - Reindexing blocks on disk... - Пераіндэксацыя блокаў на дыску... - - - Send coins to a Bitcoin address - Даслаць манеты на Біткойн-адрас - - - Backup wallet to another location - Зрабіце копію гаманца ў іншае месца - - - Change the passphrase used for wallet encryption - Змяніць пароль шыфравання гаманца - - - &Debug window - Вакно адладкі - - - Open debugging and diagnostic console - Адкрыць кансоль дыягностыкі і адладкі - - - &Verify message... - Праверыць паведамленне... - - - Bitcoin - Біткойн - - - Wallet - Гаманец - - - &Send - Даслаць - - - &Receive - Атрымаць - - - &Show / Hide - &Паказаць / Схаваць - - - Show or hide the main Window - Паказаць альбо схаваць галоўнае вакно - - - Encrypt the private keys that belong to your wallet - Зашыфраваць прыватныя ключы, якия належаць вашаму гаманцу - - - Sign messages with your Bitcoin addresses to prove you own them - Падпісаць паведамленне з дапамогай Біткойн-адраса каб даказаць, што яно належыць вам - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Спраўдзіць паведамленне з дапамогай Біткойн-адраса каб даказаць, што яно належыць вам - - - &File - Ф&айл - - - &Settings - Наладкі - - - &Help - Дапамога - - - Request payments (generates QR codes and bitcoin: URIs) - Запатрабаваць плацёж (генеруецца QR-код для біткойн URI) - - - Show the list of used sending addresses and labels - Паказаць спіс адрасоў і метак для дасылання - - - Show the list of used receiving addresses and labels - Паказаць спіс адрасоў і метак для прымання - - - Open a bitcoin: URI or payment request - Адкрыць біткойн: URI ці запыт плацяжу - - - &Command-line options - Опцыі каманднага радка - - - %1 behind - %1 таму - - - Last received block was generated %1 ago. - Апошні прыняты блок генераваны %1 таму. - - - Transactions after this will not yet be visible. - Транзакцыи пасля гэтай не будуць бачныя. - - - Error - Памылка - - - Warning - Увага - - - Information - Інфармацыя - - - Up to date - Сінхранізавана - - - Catching up... - Наганяем... - - - Date: %1 - - Дата: %1 - - - - Amount: %1 - - Колькасць: %1 - - - - Type: %1 - - Тып: %1 - - - - Label: %1 - - Метка: %1 - - - - Address: %1 - - Адрас: %1 - - - - Sent transaction - Дасланыя транзакцыі - - - Incoming transaction - Прынятыя транзакцыі - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Гаманец <b>зашыфраваны</b> і зараз <b>разблакаваны</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Гаманец <b>зашыфраваны</b> і зараз <b>заблакаваны</b> - - - - CoinControlDialog - - Quantity: - Колькасць: - - - Bytes: - Байтаў: - - - Amount: - Колькасць: - - - Fee: - Камісія: - - - Dust: - Пыл: - - - After Fee: - Пасля камісіі: - - - (un)select all - (не)выбраць ўсё - - - Tree mode - Рэжым дрэва - - - List mode - Рэжым спіса - - - Amount - Колькасць - - - Received with label - Прыняць праз метку - - - Received with address - Прыняць праз адрас - - - Date - Дата - - - Confirmations - Пацверджанняў - - - Confirmed - Пацверджана - - - Copy address - Капіяваць адрас - - - Copy label - Капіяваць пазнаку - - - Copy amount - Капіяваць колькасць - - - Copy transaction ID - Капіяваць ID транзакцыі - - - Lock unspent - Замкнуць непатрачанае - - - Unlock unspent - Адамкнуць непатрачанае - - - Copy quantity - Капіяваць колькасць - - - Copy fee - Капіяваць камісію - - - Copy after fee - Капіяваць з выняткам камісіі - - - Copy bytes - Капіяваць байты - - - Copy dust - Капіяваць пыл - - - yes - так - - - no - не - - - (no label) - непазначаны - - - - EditAddressDialog - - Edit Address - Рэдагаваць Адрас - - - &Label - Метка - - - &Address - Адрас - - - New sending address - Новы адрас для дасылання - - - Edit receiving address - Рэдагаваць адрас прымання - - - Edit sending address - Рэдагаваць адрас дасылання - - - Could not unlock wallet. - Немагчыма разблакаваць гаманец - - - New key generation failed. - Генерацыя новага ключа няўдалая - - - - FreespaceChecker - - A new data directory will be created. - Будзе створаны новы каталог з данымі. - - - name - імя - - - Directory already exists. Add %1 if you intend to create a new directory here. - Каталог ужо існуе. Дадайце %1 калі вы збіраецеся стварыць тут новы каталог. - - - - HelpMessageDialog - - (%1-bit) - (%1-біт) - - - Command-line options - Опцыі каманднага радка - - - - Intro - - Welcome - Вітаем - - - Bitcoin - Біткойн - - - Error - Памылка - - - - ModalOverlay - - Form - Форма - - - - OpenURIDialog - - Open URI - Адкрыць URI - - - - OptionsDialog - - Options - Опцыі - - - MB - Мб - - - W&allet - Гаманец - - - Error - Памылка - - - - OverviewPage - - Form - Форма - - - - PaymentServer - - - PeerTableModel - - - QObject - - Amount - Колькасць - - - %1 and %2 - %1 і %2 - - - unknown - невядома - - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - &Information - Інфармацыя - - - Debug window - Вакно адладкі - - - - ReceiveCoinsDialog - - &Amount: - &Колькасць: - - - &Label: - Метка: - - - Copy label - Капіяваць пазнаку - - - Copy amount - Капіяваць колькасць - - - - ReceiveRequestDialog - - Copy &Address - Капіяваць адрас - - - Address - Адрас - - - Amount - Колькасць - - - Label - Метка - - - Message - Паведамленне - - - Wallet - Гаманец - - - - RecentRequestsTableModel - - Date - Дата - - - Label - Метка - - - Message - Паведамленне - - - (no label) - непазначаны - - - - SendCoinsDialog - - Send Coins - Даслаць Манеты - - - Insufficient funds! - Недастаткова сродкаў - - - Quantity: - Колькасць: - - - Bytes: - Байтаў: - - - Amount: - Колькасць: - - - Fee: - Камісія: - - - After Fee: - Пасля камісіі: - - - Send to multiple recipients at once - Даслаць адразу некалькім атрымальнікам - - - Dust: - Пыл: - - - Balance: - Баланс: - - - Confirm the send action - Пацвердзіць дасыланне - - - Copy quantity - Капіяваць колькасць - - - Copy amount - Капіяваць колькасць - - - Copy fee - Капіяваць камісію - - - Copy after fee - Капіяваць з выняткам камісіі - - - Copy bytes - Капіяваць байты - - - Copy dust - Капіяваць пыл - - - Confirm send coins - Пацвердзіць дасыланне манет - - - The amount to pay must be larger than 0. - Велічыня плацяжу мае быць больш за 0. - - - (no label) - непазначаны - - - - SendCoinsEntry - - A&mount: - Колькасць: - - - Pay &To: - Заплаціць да: - - - &Label: - Метка: - - - Alt+A - Alt+A - - - Paste address from clipboard - Уставіць адрас з буферу абмена - - - Alt+P - Alt+P - - - Message: - Паведамленне: - - - Pay To: - Заплаціць да: - - - Memo: - Памятка: - - - Enter a label for this address to add it to your address book - Увядзіце пазнаку гэтаму адрасу, каб дадаць яго ў адрасную кнігу - - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - Alt+A - Alt+A - - - Paste address from clipboard - Уставіць адрас з буферу абмена - - - Alt+P - Alt+P - - - - SplashScreen - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - Кб/с - - - - TransactionDesc - - %1/unconfirmed - %1/непацверджана - - - %1 confirmations - %1 пацверджанняў - - - Status - Статус - - - Date - Дата - - - unknown - невядома - - - Message - Паведамленне - - - Comment - Каментар - - - Transaction ID - ID - - - Amount - Колькасць - - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Гэтая панэль паказвае дэтальнае апісанне транзакцыі - - - - TransactionTableModel - - Date - Дата - - - Type - Тып - - - Label - Метка - - - Confirmed (%1 confirmations) - Пацверджана (%1 пацверджанняў) - - - Generated but not accepted - Згенеравана, але не прынята - - - Received with - Прынята з - - - Received from - Прынята ад - - - Sent to - Даслана да - - - Payment to yourself - Плацёж самому сабе - - - Mined - Здабыта - - - (n/a) - (n/a) - - - (no label) - непазначаны - - - Transaction status. Hover over this field to show number of confirmations. - Статус транзакцыі. Навядзіце курсар на гэтае поле, каб паказаць колькасць пацверджанняў. - - - Date and time that the transaction was received. - Дата і час, калі транзакцыя была прынята. - - - Type of transaction. - Тып транзакцыі - - - Amount removed from or added to balance. - Колькасць аднятая ці даданая да балансу. - - - - TransactionView - - All - Усё - - - Today - Сёння - - - This week - Гэты тыдзень - - - This month - Гэты месяц - - - Last month - Мінулы месяц - - - This year - Гэты год - - - Range... - Прамежак... - - - Received with - Прынята з - - - Sent to - Даслана да - - - To yourself - Да сябе - - - Mined - Здабыта - - - Other - Іншыя - - - Min amount - Мін. колькасць - - - Copy address - Капіяваць адрас - - - Copy label - Капіяваць пазнаку - - - Copy amount - Капіяваць колькасць - - - Copy transaction ID - Капіяваць ID транзакцыі - - - Edit label - Рэдагаваць пазнаку - - - Comma separated file (*.csv) - Коскамі падзелены файл (*.csv) - - - Confirmed - Пацверджана - - - Date - Дата - - - Type - Тып - - - Label - Метка - - - Address - Адрас - - - ID - ID - - - Exporting Failed - Экспартаванне няўдалае - - - Range: - Прамежак: - - - to - да - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - Send Coins - Даслаць Манеты - - - - WalletView - - &Export - Экспарт - - - Export the data in the current tab to a file - Экспартаваць гэтыя звесткі у файл - - - - bitcoin-core - - Bitcoin Core - Bitcoin Core - - - Do you want to rebuild the block database now? - Ці жадаеце вы перабудаваць зараз базу звестак блокаў? - - - Error initializing block database - Памылка ініцыялізацыі базвы звестак блокаў - - - Error initializing wallet database environment %s! - Памалка ініцыялізацыі асяроддзя базы звестак гаманца %s! - - - Error loading block database - Памылка загрузкі базвы звестак блокаў - - - Error opening block database - Памылка адчынення базы звестак блокаў - - - Error: Disk space is low! - Памылка: Замала вольнага месца на дыску! - - - Importing... - Імпартаванне... - - - Not enough file descriptors available. - Не хапае файлавых дэскрыптараў. - - - Verifying blocks... - Праверка блокаў... - - - Information - Інфармацыя - - - Signing transaction failed - Памылка подпісу транзакцыі - - - This is experimental software. - Гэта эксперыментальная праграма. - - - Transaction amount too small - Транзакцыя занадта малая - - - Transaction too large - Транзакцыя занадта вялікая - - - Warning - Увага - - - Insufficient funds - Недастаткова сродкаў - - - Loading block index... - Загружаем індэкс блокаў... - - - Loading wallet... - Загружаем гаманец... - - - Cannot downgrade wallet - Немагчыма рэгрэсаваць гаманец - - - Rescanning... - Перасканаванне... - - - Done loading - Загрузка выканана - - - Error - Памылка - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_cs_CZ.ts b/src/qt/locale/bitcoin_cs_CZ.ts deleted file mode 100644 index f53e12bd11..0000000000 --- a/src/qt/locale/bitcoin_cs_CZ.ts +++ /dev/null @@ -1,691 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Pravým klikem editujte adresu nebo popisek - - - Create a new address - Vytvořit novou adresu - - - &New - &Nový - - - Copy the currently selected address to the system clipboard - Kopírovat aktuálně vybrané adresy do schránky - - - &Copy - &Kopírovat - - - C&lose - Z&avřít - - - Delete the currently selected address from the list - Odstraní aktuálně vybrané adresy ze seznamu - - - Export the data in the current tab to a file - Exportovat aktuální pohled do souboru - - - &Export - &Exportovat - - - &Delete - &Odstranit - - - C&hoose - V&ybrat - - - &Copy Address - &Kopírovat adresu - - - &Edit - &Upravit - - - Comma separated file (*.csv) - Textový soubor oddělený středníkem (*.csv) - - - - AddressTableModel - - Label - Popis - - - Address - Adresa - - - (no label) - (bez popisu) - - - - AskPassphraseDialog - - Enter passphrase - Zadej heslo - - - New passphrase - Nové heslo - - - Repeat new passphrase - Zopakujte nové heslo - - - Show password - Zobrazit heslo - - - Encrypt wallet - Zašifrovat peněženku - - - This operation needs your wallet passphrase to unlock the wallet. - Tato operace vyžaduje heslo k odemknutí peněženky. - - - Unlock wallet - Odemknout peněženku - - - This operation needs your wallet passphrase to decrypt the wallet. - Tato operace vyžaduje heslo k dešifrování peněženky. - - - Decrypt wallet - Dešifrovat peněženku - - - Change passphrase - Změnit heslo - - - Confirm wallet encryption - Potvrďte zašifrování peněženky - - - Wallet encrypted - Peněženka zašifrována - - - Wallet encryption failed - Zašifrování peněženky selhalo - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Šifrování peněženky selhalo vinou vnitřní chyby. Vaše peněženka nebyla zašifrována. - - - The supplied passphrases do not match. - Zadaná hesla nejsou shodná. - - - Wallet unlock failed - Odemčení peněženky selhalo - - - The passphrase entered for the wallet decryption was incorrect. - Heslo zadané k dešifrování peněženky nebylo správné - - - Wallet decryption failed - Deěifrování peněženky selhalo - - - - BanTableModel - - - BitcoinGUI - - Synchronizing with network... - Synchronizuji se sítí... - - - &Overview - &Přehled - - - Node - Uzel - - - Show general overview of wallet - Zobrazit základní přehled o peněžence - - - &Transactions - &Transakce - - - Browse transaction history - Procházení historií transakcí - - - Quit application - Ukončit aplikaci - - - &Options... - &Možnosti... - - - Change the passphrase used for wallet encryption - Změnit heslo k šifrování peněženky - - - Bitcoin - Bitcoin - - - Wallet - Peněženka - - - &File - &Soubor - - - &Settings - &Nastavení - - - &Help - Nápo&věda - - - Tabs toolbar - Panely - - - Up to date - Aktuální - - - Catching up... - Zachytávám... - - - Sent transaction - Odeslané transakce - - - Incoming transaction - Příchozí transakce - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Peněženka je <b>zašifrována</b> a momentálně <b>odemčená</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Peněženka je <b>zašifrována</b> a momentálně <b>uzamčená</b> - - - - CoinControlDialog - - Amount: - Množství: - - - Amount - Množství - - - Date - Datum - - - Confirmed - Potvrzeno - - - Copy address - Kopírovat sdresu - - - Copy label - Kopírovat popis - - - (no label) - (bez popisu) - - - - EditAddressDialog - - Edit Address - Upravit adresu - - - &Label - &Popisek - - - &Address - &Adresa - - - New sending address - Nová adresa k odeslání - - - Edit receiving address - Upravit adresu pro příjem - - - Edit sending address - Upravit adresu k odeslání - - - Could not unlock wallet. - Nemohu odemknout peněženku - - - New key generation failed. - Generování nového klíče selhalo. - - - - FreespaceChecker - - - HelpMessageDialog - - - Intro - - Bitcoin - Bitcoin - - - - ModalOverlay - - - OpenURIDialog - - - OptionsDialog - - Options - Možnosti - - - Map port using &UPnP - Mapovat port pomocí &UPnP - - - &Minimize to the tray instead of the taskbar - &Minimalizovat do systémové lišty (tray) namísto do hlavního panelu - - - M&inimize on close - M&inimalizovat při zavření - - - - OverviewPage - - - PaymentServer - - - PeerTableModel - - - QObject - - Amount - Množství - - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - Name - Jméno - - - - ReceiveCoinsDialog - - &Label: - &Popisek: - - - &Message: - Zpráva: - - - Copy label - Kopírovat popis - - - - ReceiveRequestDialog - - Address - Adresa - - - Amount - Množství - - - Label - Popis - - - Message - Zpráva - - - Wallet - Peněženka - - - - RecentRequestsTableModel - - Date - Datum - - - Label - Popis - - - Message - Zpráva - - - (no label) - (bez popisu) - - - - SendCoinsDialog - - Amount: - Množství: - - - Balance: - Zůstatek: - - - The amount to pay must be larger than 0. - Částka k zaplacení musí být větší než 0. - - - (no label) - (bez popisu) - - - - SendCoinsEntry - - &Label: - &Popisek: - - - Message: - Zpráva: - - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - - SplashScreen - - [testnet] - [testnet] - - - - TrafficGraphWidget - - - TransactionDesc - - %1/unconfirmed - %1 potvrzeno - - - %1 confirmations - %1 potvrzení - - - Status - Stav - - - Date - Datum - - - Message - Zpráva - - - Transaction - Transakce - - - Amount - Množství - - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Toto podokno zobrazuje detailní popis transakce - - - - TransactionTableModel - - Date - Datum - - - Type - Typ - - - Label - Popis - - - Confirmed (%1 confirmations) - Potvrzeno (%1 potvrzení) - - - Received with - Přijato s - - - Sent to - Odesláno na - - - Payment to yourself - Platba sobě samému - - - Mined - Vytěženo - - - (no label) - (bez popisu) - - - Type of transaction. - Typ transakce. - - - - TransactionView - - All - Vše - - - Today - Dnes - - - This week - Tento týden - - - This month - Tento měsíc - - - Last month - Minulý měsíc - - - This year - Tento rok - - - Range... - Rozsah... - - - Received with - Přijato s - - - Sent to - Odesláno na - - - To yourself - Sobě samému - - - Mined - Vytěženo - - - Other - Ostatní - - - Min amount - Min. množství - - - Copy address - Kopírovat sdresu - - - Copy label - Kopírovat popis - - - Edit label - Upravit popis - - - Comma separated file (*.csv) - Textový soubor oddělený středníkem (*.csv) - - - Confirmed - Potvrzeno - - - Date - Datum - - - Type - Typ - - - Label - Popis - - - Address - Adresa - - - ID - ID - - - Range: - Rozsah: - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - &Export - &Exportovat - - - Export the data in the current tab to a file - Exportovat aktuální pohled do souboru - - - - bitcoin-core - - Loading wallet... - Načítání peněženky... - - - Done loading - Načítání dokončeno - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index 7156409b64..1900bd74b5 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -189,7 +189,7 @@ Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Beachten Sie, dass das Verschlüsseln Ihrer Brieftasche nicht komplett vor Diebstahl Ihrer Bitcoins durch Malware schützt, die Ihren Computer infiziert hat. + Beachten Sie, dass das Verschlüsseln Ihrer Wallet nicht komplett vor Diebstahl Ihrer Bitcoins durch Malware schützt, die Ihren Computer infiziert hat. Wallet to be encrypted diff --git a/src/qt/locale/bitcoin_de_DE.ts b/src/qt/locale/bitcoin_de_DE.ts deleted file mode 100644 index 8813c796fe..0000000000 --- a/src/qt/locale/bitcoin_de_DE.ts +++ /dev/null @@ -1,929 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Rechtsklick um Adresse oder Etikett zu bearbeiten - - - Create a new address - Eine neue Adresse erstellen - - - &New - &Neu - - - Copy the currently selected address to the system clipboard - Aktive Adresse in die Zwischenablage kopieren - - - &Copy - &Kopieren - - - C&lose - Schliessen - - - Delete the currently selected address from the list - Ausgewählte Adresse aus der Liste löschen - - - Export the data in the current tab to a file - Daten des aktiven Fensters exportieren - - - &Export - &Exportieren - - - &Delete - &Löschen - - - Choose the address to send coins to - Wähle die Empfängeradresse - - - Choose the address to receive coins with - Wähle die Empfangsadresse - - - C&hoose - Auswählen - - - Sending addresses - Sendeadressen - - - Receiving addresses - Empfangsadressen - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Dies sind Ihre Bitcoin-Adressen zum Senden von Zahlungen. Überprüfen Sie immer die Menge und die Empfangsadresse, bevor Sie Bitcoins senden. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Dies sind Ihre Bitcoin-Adressen für den Empfang von Zahlungen. Es wird empfohlen, für jede Transaktion eine neue Empfangsadresse zu verwenden. - - - &Copy Address - &Kopiere Adresse - - - Copy &Label - Kopiere &Etikett - - - &Edit - &Bearbeiten - - - Export Address List - Export Adressliste - - - Comma separated file (*.csv) - Komma getrenntes Dokument (*.csv) - - - Exporting Failed - Export fehlgeschlagen - - - - AddressTableModel - - Label - Etikett - - - Address - Adresse - - - (no label) - (kein Etikett) - - - - AskPassphraseDialog - - Passphrase Dialog - Passwort Dialog - - - Enter passphrase - Passwort eingeben - - - New passphrase - Neues Passwort - - - Repeat new passphrase - Neues Passwort wiederholen - - - Show password - Passwort anzeigen - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Geben Sie das neue Passwort Ihrer digitalen Geldbörse ein.<br/>Verwenden Sie bitte ein Passwort bestehend aus <b>zehn oder mehr zufälligen Zeichen</b>, oder aus <b>acht oder mehr Wörtern</b>. - - - Encrypt wallet - Brieftasche verschlüsseln - - - This operation needs your wallet passphrase to unlock the wallet. - Diese Aktion benötigt ihr Passwort zum entsperren der Wallet. - - - Unlock wallet - Brieftasche entschlüsseln - - - This operation needs your wallet passphrase to decrypt the wallet. - Diese Operation benötigt Ihr Wallet-Passwort zum entschlüsseln der Wallet. - - - Decrypt wallet - Brieftasche entschlüsseln - - - Change passphrase - Passwort ändern - - - Enter the old passphrase and new passphrase to the wallet. - Geben Sie das alte und neue Passwort Ihrer Wallet ein. - - - Confirm wallet encryption - Brieftaschenverschlüsselung bestätigen - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Achtung: Wenn Sie Ihre Wallet verschlüsseln und das Passwort verlieren, gehen <b>alle Ihre Bitcoins verloren</b>! - - - Are you sure you wish to encrypt your wallet? - Möchten Sie Ihre Wallet wirklich verschlüsseln? - - - Wallet encrypted - Brieftasche verschlüsselt - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - WICHTIG: Alle früheren Sicherungen, die Sie von Ihrer Wallet-Datei gemacht haben, sollten durch die neu erzeugte, verschlüsselte Wallet-Datei ersetzt werden. Sobald Sie die neue, verschlüsselte Wallet verwenden, werden frühere Sicherungen der unverschlüsselten Wallet-Datei aus Sicherheitsgründen nutzlos. - - - Wallet encryption failed - Brieftaschenverschlüsselung fehlgeschlagen - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Die Wallet-Verschlüsselung ist aufgrund eines internen Fehlers fehlgeschlagen. Ihre Wallet wurde nicht verschlüsselt. - - - The supplied passphrases do not match. - Die eingegebenen Passwörter stimmen nicht überein. - - - Wallet unlock failed - Brieftasche öffnen fehlgeschlagen - - - The passphrase entered for the wallet decryption was incorrect. - Inkorrektes Passwort um die Brieftasche zu entschlüsseln - - - Wallet decryption failed - Brieftasche entschlüsseln fehlgeschlagen - - - Wallet passphrase was successfully changed. - Brieftaschen Passwort erfolgreich geändert - - - Warning: The Caps Lock key is on! - Achtung: Die Umschalttaste ist eingeschaltet! - - - - BanTableModel - - IP/Netmask - IP/Netzmaske - - - Banned Until - Gesperrt bis - - - - BitcoinGUI - - Synchronizing with network... - Über das Netzwerk abgleichen - - - &Overview - &Übersicht - - - Node - Knoten - - - Show general overview of wallet - Generelle Übersicht der Brieftasche - - - &Transactions - &Transaktionen - - - Browse transaction history - Zeige Transaktionsverlauf - - - E&xit - Beenden - - - Quit application - Programm beenden - - - &About %1 - &Über %1 - - - Show information about %1 - Zeige Informationen zu %1 - - - About &Qt - Über &Qt - - - Show information about Qt - Informationen über Qt anzeigen - - - &Options... - &Einstellungen... - - - Modify configuration options for %1 - Ändern Sie die Konfigurationsoptionen für %1 - - - &Encrypt Wallet... - &Brieftasche verschlüsseln... - - - &Backup Wallet... - Sicherungskopie der Brieftasche... - - - &Change Passphrase... - &Passwort ändern... - - - &Sending addresses... - &Adressen senden... - - - &Receiving addresses... - &Adressen empfangen... - - - Open &URI... - Öffne &URI... - - - Click to disable network activity. - Klicken Sie, um die Netzwerkaktivität zu deaktivieren. - - - Network activity disabled. - Netzwerkaktivität wurde deaktiviert. - - - Click to enable network activity again. - Klicken Sie, um die Netzwerkaktivität wieder zu aktivieren. - - - Syncing Headers (%1%)... - Synchronisiere Header (%1%)... - - - Reindexing blocks on disk... - Reindexiere Blöcke auf dem Datenträger... - - - Send coins to a Bitcoin address - Coins an eine Bitcoin-Adresse senden - - - Backup wallet to another location - Wallet an einen anderen Ort sichern - - - Change the passphrase used for wallet encryption - Ändern Sie das Passwort, das für die Wallet-Verschlüsselung verwendet wird - - - &Debug window - &Debug Fenster - - - Open debugging and diagnostic console - Die Debugging- und Diagnosekonsole öffnen - - - &Verify message... - Nachricht &bestätigen - - - Bitcoin - Bitcoin - - - Wallet - Brieftasche - - - &Send - &Senden - - - &Receive - &Empfangen - - - &Show / Hide - &anzeigen / verstecken - - - Show or hide the main Window - Das Hauptfenster ein- oder ausblenden - - - Encrypt the private keys that belong to your wallet - Verschlüssele die Private Keys, die zu deiner Brieftasche gehören - - - Sign messages with your Bitcoin addresses to prove you own them - Nachrichten mit Ihrer Bitcoin-Adresse signieren, um zu beweisen, dass sie Ihnen gehören - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Überprüfen Sie Nachrichten, um sicherzustellen, dass sie mit den angegebenen Bitcoin-Adressen signiert wurden - - - &File - &Datei - - - &Settings - &Einstellungen - - - &Help - &Hilfe - - - Tabs toolbar - Registerkarten-Symbolleiste - - - Show the list of used sending addresses and labels - Liste der benutzten Sendeadressen und -etiketten - - - Show the list of used receiving addresses and labels - Zeige Liste der benutzten Empfangsadressen und -etiketten - - - Indexing blocks on disk... - Indexiere Blöcke auf dem Datenträger... - - - Processing blocks on disk... - Verarbeite Blöcke auf dem Datenträger... - - - %1 behind - %1 im Rückstand - - - Transactions after this will not yet be visible. - Transaktionen danach sind noch nicht sichtbar. - - - Error - Fehler - - - Warning - Achtung - - - Information - Information - - - Up to date - Auf dem neuesten Stand - - - Catching up... - Aufholen... - - - Date: %1 - - Datum: %1 - - - Amount: %1 - - Menge: %1 - - - Sent transaction - Überweisung gesendet - - - Incoming transaction - Überweisung empfangen - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Ein schwerwiegender Fehler ist aufgetreten. Bitcoin kann nicht mehr sicher fortfahren und beendet sich. - - - - CoinControlDialog - - Quantity: - Anzahl: - - - Bytes: - Byte: - - - Amount: - Betrag: - - - Fee: - Gebühr: - - - Dust: - Dust: - - - After Fee: - Nach Gebühr: - - - Amount - Betrag - - - Date - Datum - - - Confirmations - Bestätigungen - - - Confirmed - Bestätigt - - - Copy address - Adresse kopieren - - - Copy label - Etikett kopieren - - - Copy amount - Betrag kopieren - - - Copy transaction ID - Transaktions ID kopieren - - - Copy quantity - Menge kopieren - - - yes - Ja - - - no - Nein - - - (no label) - (kein Etikett) - - - - EditAddressDialog - - Edit Address - Adresse bearbeiten - - - &Label - &Etikett - - - &Address - &Adresse - - - New sending address - Neue Sendeadresse - - - Edit receiving address - Empfangsadresse bearbeiten - - - Edit sending address - Sendeadresse bearbeiten - - - - FreespaceChecker - - name - Name - - - - HelpMessageDialog - - version - Version - - - - Intro - - Welcome - Willkommen - - - Bitcoin - Bitcoin - - - Error - Fehler - - - - ModalOverlay - - Form - Formular - - - Unknown... - Unbekannt... - - - - OpenURIDialog - - - OptionsDialog - - Error - Fehler - - - - OverviewPage - - Form - Formular - - - - PaymentServer - - - PeerTableModel - - Ping - Ping - - - - QObject - - Amount - Betrag - - - Enter a Bitcoin address (e.g. %1) - Bitcoin Adresse eingeben (z.B. %1) - - - N/A - N/A - - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - N/A - N/A - - - - ReceiveCoinsDialog - - Copy label - Etikett kopieren - - - Copy amount - Betrag kopieren - - - - ReceiveRequestDialog - - Address - Adresse - - - Amount - Betrag - - - Label - Etikett - - - Wallet - Brieftasche - - - - RecentRequestsTableModel - - Date - Datum - - - Label - Etikett - - - (no label) - (kein Etikett) - - - - SendCoinsDialog - - Quantity: - Anzahl: - - - Bytes: - Byte: - - - Amount: - Betrag: - - - Fee: - Gebühr: - - - After Fee: - Nach Gebühr: - - - Dust: - Dust: - - - Copy quantity - Menge kopieren - - - Copy amount - Betrag kopieren - - - (no label) - (kein Etikett) - - - - SendCoinsEntry - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - Date - Datum - - - Amount - Betrag - - - - TransactionDescDialog - - - TransactionTableModel - - Date - Datum - - - Label - Etikett - - - (no label) - (kein Etikett) - - - - TransactionView - - Copy address - Adresse kopieren - - - Copy label - Etikett kopieren - - - Copy amount - Betrag kopieren - - - Copy transaction ID - Transaktions ID kopieren - - - Comma separated file (*.csv) - Komma getrenntes Dokument (*.csv) - - - Confirmed - Bestätigt - - - Date - Datum - - - Label - Etikett - - - Address - Adresse - - - Exporting Failed - Export fehlgeschlagen - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - &Export - &Exportieren - - - Export the data in the current tab to a file - Daten des aktiven Fensters exportieren - - - Backup Failed - Sicherung fehlgeschlagen - - - Backup Successful - Sicherung erfolgreich - - - - bitcoin-core - - Information - Information - - - Warning - Achtung - - - Starting network threads... - Starte Netzwerk-Threads... - - - This is the minimum transaction fee you pay on every transaction. - Das ist die Mindestgebühr für jede Transaktion - - - This is the transaction fee you will pay if you send a transaction. - Das ist die Gebühr für die Überweisung - - - Transaction amounts must not be negative - Überweisungsbetrag kann nicht negativ sein - - - Transaction must have at least one recipient - Überweisung muss mindestens einen Empfänger haben - - - Insufficient funds - Ungenügendes Guthaben - - - Loading block index... - Block Verzeichnis laden... - - - Loading wallet... - Brieftasche laden... - - - Rescanning... - Neuscannen... - - - Done loading - Laden abgeschlossen - - - Error - Fehler - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_el_GR.ts b/src/qt/locale/bitcoin_el_GR.ts deleted file mode 100644 index 85d5c62c91..0000000000 --- a/src/qt/locale/bitcoin_el_GR.ts +++ /dev/null @@ -1,2095 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Δεξί-κλικ για επεξεργασία της διεύθυνσης ή της ετικέτας - - - Create a new address - Δημιουργία νέας διεύθυνσης - - - &New - &Νέo - - - Copy the currently selected address to the system clipboard - Αντέγραψε την επιλεγμένη διεύθυνση στο πρόχειρο του συστήματος - - - &Copy - &Αντιγραφή - - - C&lose - Κ&λείσιμο - - - Delete the currently selected address from the list - Διαγραφή της επιλεγμένης διεύθυνσης από τη λίστα - - - Enter address or label to search - Αναζήτηση με βάση τη διεύθυνση ή την επιγραφή - - - Export the data in the current tab to a file - Εξαγωγή δεδομένων καρτέλας σε αρχείο - - - &Export - &Εξαγωγή - - - &Delete - &Διαγραφή - - - Choose the address to send coins to - Επιλέξτε διεύθυνση αποστολής των νομισμάτων σας - - - Choose the address to receive coins with - Επιλέξτε διεύθυνση παραλαβής νομισμάτων - - - C&hoose - Ε&πιλογή - - - Sending addresses - Διευθύνσεις αποστολής - - - Receiving addresses - Διευθύνσεις λήψης - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Αυτές είναι οι Bitcoin διευθύνσεις σας για να στέλνετε πληρωμές. Να ελέγχετε πάντα το ποσό, καθώς και τη διεύθυνση παραλήπτη πριν στείλετε νομίσματα. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Αυτές είναι οι Bitcoin διευθύνσεις σας για να λαμβάνετε πληρωμές. Προτείνετε να χρησιμοποιείτε μια νέα διεύθυνση παραλήπτη για κάθε συναλλαγή. - - - &Copy Address - &Αντιγραφή Διεύθυνσης - - - Copy &Label - Αντιγραφή&Ετικέτα - - - &Edit - &Διόρθωση - - - Export Address List - Εξαγωγή Λίστας Διευθύνσεων - - - Comma separated file (*.csv) - Αρχείο οριοθετημένο με κόμματα (*.csv) - - - Exporting Failed - Αποτυχία Εξαγωγής - - - There was an error trying to save the address list to %1. Please try again. - Σφάλμα κατά την προσπάθεια αποθήκευσης της λίστας διευθύνσεων στο %1. Παρακαλώ δοκιμάστε ξανά. - - - - AddressTableModel - - Label - Ετικέτα - - - Address - Διεύθυνση - - - (no label) - (χωρίς ετικέτα) - - - - AskPassphraseDialog - - Passphrase Dialog - Φράση πρόσβασης - - - Enter passphrase - Βάλτε κωδικό πρόσβασης - - - New passphrase - &Αλλαγή κωδικού - - - Repeat new passphrase - Επανέλαβε τον νέο κωδικό πρόσβασης - - - Show password - Προβολή κωδικού πρόσβασης - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Εισάγετε το νέο κωδικό πρόσβασης στο πορτοφόλι. <br/>Παρακαλώ χρησιμοποιείστε έναν κωδικό με <b>δέκα ή περισσότερους τυχαίους χαρακτήρες </b>, ή <b>οχτώ ή παραπάνω λέξεις </b>. - - - Encrypt wallet - &Κρυπτογράφηση πορτοφολιού - - - This operation needs your wallet passphrase to unlock the wallet. - Αυτή η ενέργεια χρειάζεται τον κωδικό του πορτοφολιού για να ξεκλειδώσει το πορτοφόλι. - - - Unlock wallet - Ξεκλείδωσε το πορτοφόλι - - - This operation needs your wallet passphrase to decrypt the wallet. - Αυτή η ενέργεια χρειάζεται τον κωδικό του πορτοφολιού για να αποκρυπτογραφήσει το πορτοφόλι. - - - Decrypt wallet - Αποκρυπτογράφησε το πορτοφόλι - - - Change passphrase - Αλλάξτε Φράση Πρόσβασης - - - Enter the old passphrase and new passphrase to the wallet. - Εισάγετε την παλιά φράση κλειδί και την νέα φράση κλειδί στο πορτοφόλι. - - - Confirm wallet encryption - Επιβεβαίωσε κρυπτογράφηση πορτοφολιού - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Προσόχη! Εάν κρυπτογραφήσεις το πορτοφόλι σου και χάσεις τη φράση αποκατάστασης, θα <b> ΧΑΣΕΙΣ ΟΛΑ ΣΟΥ ΤΑ BITCOIN </b>! - - - Are you sure you wish to encrypt your wallet? - Είστε σίγουρος/η ότι θέλετε να κρυπτογραφήσετε το πορτοφόλι σας; - - - Wallet encrypted - Πορτοφόλι κρυπτογραφήθηκε - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 θα κλείσει τώρα για να τελειώσει η διαδικασία κρυπτογράφησης. Να θυμάστε ότι κρυπτογραφόντας το πορτοφόλι σας δεν μπορείτε να προστατεύσετε πλήρως τα bitcoin σας απο κλοπή μέσω malware που μπορεί να προσβάλει τον υπολογιστή σας. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - ΣΗΜΑΝΤΙΚΟ: Τα προηγούμενα αντίγραφα ασφαλείας που έχετε κάνει από το αρχείο του πορτοφόλιου σας θα πρέπει να αντικατασταθουν με το νέο που δημιουργείται, κρυπτογραφημένο αρχείο πορτοφόλιου. Για λόγους ασφαλείας, τα προηγούμενα αντίγραφα ασφαλείας του μη κρυπτογραφημένου αρχείου πορτοφόλιου θα καταστουν άχρηστα μόλις αρχίσετε να χρησιμοποιείτε το νέο κρυπτογραφημένο πορτοφόλι. - - - Wallet encryption failed - Η κρυπτογράφηση του πορτοφολιού απέτυχε - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Η κρυπτογράφηση του πορτοφολιού απέτυχε λογω εσωτερικού σφάλματος. Το πορτοφολι δεν κρυπτογραφηθηκε. - - - The supplied passphrases do not match. - Οι εισαχθέντες κωδικοί δεν ταιριάζουν. - - - Wallet unlock failed - Το ξεκλείδωμα του πορτοφολιού απέτυχε - - - The passphrase entered for the wallet decryption was incorrect. - Ο κωδικος που εισήχθη για την αποκρυπτογραφηση του πορτοφολιού ήταν λαθος. - - - Wallet decryption failed - Η αποκρυπτογράφηση του πορτοφολιού απέτυχε - - - Wallet passphrase was successfully changed. - Η φράση πρόσβασης άλλαξε επιτυχώς - - - Warning: The Caps Lock key is on! - Προσοχη: το πλήκτρο Caps Lock είναι ενεργο. - - - - BanTableModel - - IP/Netmask - IP/Netmask - - - Banned Until - Απαγορευμένο έως - - - - BitcoinGUI - - Sign &message... - Υπογραφή &μηνύματος... - - - Synchronizing with network... - Συγχρονισμός με το δίκτυο... - - - &Overview - &Επισκόπηση - - - Node - Κόμβος - - - Show general overview of wallet - Εμφάνισε τη γενική εικόνα του πορτοφολιού - - - &Transactions - &Συναλλαγές - - - Browse transaction history - Περιήγηση στο ιστορικό συναλλαγών - - - E&xit - Έ&ξοδος - - - Quit application - Έξοδος από την εφαρμογή - - - &About %1 - &Περί %1 - - - Show information about %1 - Εμφάνισε πληροφορίες σχετικά με %1 - - - About &Qt - Σχετικά με &Qt - - - Show information about Qt - Εμφάνισε πληροφορίες σχετικά με Qt - - - &Options... - &Επιλογές... - - - Modify configuration options for %1 - Επεργασία ρυθμισεων επιλογών για το %1 - - - &Encrypt Wallet... - &Κρυπτογράφησε το πορτοφόλι - - - &Backup Wallet... - &Αντίγραφο ασφαλείας του πορτοφολιού - - - &Change Passphrase... - &Άλλαξε Φράση Πρόσβασης - - - &Sending addresses... - Διευθύνσεις αποστολής - - - &Receiving addresses... - Διευθύνσεις λήψης - - - Open &URI... - 'Ανοιγμα &URI - - - Wallet: - Πορτοφόλι - - - default wallet - Προεπιλεγμένο πορτοφόλι - - - Click to disable network activity. - Κάντε κλικ για να απενεργοποιήσετε το δίκτυο. - - - Network activity disabled. - Η δραστηριότητα δικτύου είναι απενεργοποιημένη. - - - Click to enable network activity again. - Κάντε κλικ για να ενεργοποιήσετε τo δίκτυο ξανά. - - - Syncing Headers (%1%)... - Συγχρονισμός Επικεφαλίδων (%1%)... - - - Reindexing blocks on disk... - Φόρτωση ευρετηρίου μπλοκ στον σκληρό δίσκο... - - - Send coins to a Bitcoin address - Στείλε νομίσματα σε μια διεύθυνση bitcoin - - - Backup wallet to another location - Δημιουργία αντιγράφου ασφαλείας πορτοφολιού σε άλλη τοποθεσία - - - Change the passphrase used for wallet encryption - Αλλαγή του κωδικού κρυπτογράφησης του πορτοφολιού - - - &Debug window - &Παράθυρο αποσφαλμάτωσης - - - Open debugging and diagnostic console - Άνοιγμα κονσόλας αποσφαλμάτωσης και διαγνωστικών - - - &Verify message... - &Επιβεβαίωση μηνύματος - - - Bitcoin - Bitcoin - - - Wallet - Πορτοφόλι - - - &Send - &Αποστολή - - - &Receive - &Παραλαβή - - - &Show / Hide - &Εμφάνισε/Κρύψε - - - Show or hide the main Window - Εμφάνιση ή απόκρυψη του κεντρικού παραθύρου - - - Encrypt the private keys that belong to your wallet - Κρυπτογραφήστε τα ιδιωτικά κλειδιά που ανήκουν στο πορτοφόλι σας - - - Sign messages with your Bitcoin addresses to prove you own them - Υπογράψτε ένα μήνυμα για να βεβαιώσετε πως είστε ο κάτοχος αυτής της διεύθυνσης - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Υπογράψτε ένα μήνυμα για ν' αποδείξετε πως ανήκει μια συγκεκριμένη διεύθυνση Bitcoin - - - &File - &Αρχείο - - - &Settings - &Ρυθμίσεις - - - &Help - &Βοήθεια - - - Tabs toolbar - Εργαλειοθήκη καρτελών - - - Request payments (generates QR codes and bitcoin: URIs) - Αίτηση πληρωμών (δημιουργεί QR codes και διευθύνσεις bitcoin: ) - - - Show the list of used sending addresses and labels - Προβολή της λίστας των χρησιμοποιημένων διευθύνσεων και ετικετών αποστολής - - - Show the list of used receiving addresses and labels - Προβολή της λίστας των χρησιμοποιημένων διευθύνσεων και ετικετών λήψεως - - - Open a bitcoin: URI or payment request - Άνοιγμα bitcoin: URI αίτησης πληρωμής - - - &Command-line options - &Επιλογές γραμμής εντολών - - - Indexing blocks on disk... - Φόρτωση ευρετηρίου μπλοκ στον σκληρο δισκο... - - - Processing blocks on disk... - Φόρτωση ευρετηρίου μπλοκ στον σκληρο δισκο... - - - %1 behind - %1 πίσω - - - Last received block was generated %1 ago. - Το τελευταίο μπλοκ που ελήφθη δημιουργήθηκε %1 πριν. - - - Transactions after this will not yet be visible. - Οι συναλλαγές μετά από αυτό δεν θα είναι ακόμη ορατές. - - - Error - Σφάλμα - - - Warning - Προειδοποίηση - - - Information - Πληροφορία - - - Up to date - Ενημερωμένο - - - Catching up... - Ενημέρωση... - - - Date: %1 - - Ημερομηνία: %1 - - - - Amount: %1 - - Ποσό: %1 - - - - Wallet: %1 - - Πορτοφόλι: %1 - - - - Type: %1 - - Τύπος: %1 - - - - Label: %1 - - Ετικέτα: %1 - - - - Address: %1 - - Διεύθυνση: %1 - - - - Sent transaction - Η συναλλαγή απεστάλη - - - Incoming transaction - Εισερχόμενη συναλλαγή - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Το πορτοφόλι είναι <b>κρυπτογραφημένο</b> και <b>ξεκλείδωτο</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Το πορτοφόλι είναι <b>κρυπτογραφημένο</b> και <b>κλειδωμένο</b> - - - - CoinControlDialog - - Coin Selection - Επιλογή κερμάτων - - - Quantity: - Ποσότητα: - - - Bytes: - Bytes: - - - Amount: - Ποσό: - - - Fee: - Ταρίφα: - - - Dust: - Σκόνη: - - - After Fee: - Ταρίφα αλλαγής: - - - Change: - Ρέστα: - - - (un)select all - (από)επιλογή όλων - - - Tree mode - Εμφάνιση τύπου δέντρο - - - List mode - Λίστα εντολών - - - Amount - Ποσό - - - Received with label - Παραλήφθηκε με επιγραφή - - - Received with address - Παραλείφθηκε με την εξής διεύθυνση - - - Date - Ημερομηνία - - - Confirmations - Επικυρώσεις - - - Confirmed - Επικυρωμένες - - - Copy address - Αντιγραφή διεύθυνσης - - - Copy label - Αντιγραφή ετικέτας - - - Copy amount - Αντιγραφή ποσού - - - Copy transaction ID - Αντιγραφή ταυτότητας συναλλαγής - - - Copy quantity - Αντιγραφή ποσότητας - - - Copy fee - Αντιγραφή τελών - - - yes - ναι - - - no - όχι - - - (no label) - (χωρίς ετικέτα) - - - (change) - (αλλαγή) - - - - EditAddressDialog - - Edit Address - Επεξεργασία Διεύθυνσης - - - &Label - &Επιγραφή - - - The label associated with this address list entry - Η ετικέτα που συνδέεται με αυτήν την καταχώρηση στο βιβλίο διευθύνσεων - - - The address associated with this address list entry. This can only be modified for sending addresses. - Η διεύθυνση σχετίζεται με αυτή την καταχώρηση του βιβλίου διευθύνσεων. Μπορεί να τροποποιηθεί μόνο για τις διευθύνσεις αποστολής. - - - &Address - &Διεύθυνση - - - New sending address - Νέα Διεύθυνση Αποστολής - - - Edit receiving address - Διόρθωση Διεύθυνσης Λήψης - - - Edit sending address - Επεξεργασία διεύθυνσης αποστολής - - - The entered address "%1" is not a valid Bitcoin address. - Η διεύθυνση "%1" δεν είναι έγκυρη Bitcoin διεύθυνση. - - - Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. - Η διεύθυνση "%1" υπάρχει ήδη ως διεύθυνσης λήψης με ετικέτα "%2" και γιαυτό τον λόγο δεν μπορεί να προστεθεί ως διεύθυνση αποστολής. - - - The entered address "%1" is already in the address book with label "%2". - Η διεύθυνση "%1" βρίσκεται ήδη στο βιβλίο διευθύνσεων με ετικέτα "%2". - - - Could not unlock wallet. - Δεν είναι δυνατό το ξεκλείδωμα του πορτοφολιού. - - - New key generation failed. - Η δημιουργία νέου κλειδιού απέτυχε. - - - - FreespaceChecker - - A new data directory will be created. - Θα δημιουργηθεί ένας νέος φάκελος δεδομένων. - - - name - όνομα - - - Directory already exists. Add %1 if you intend to create a new directory here. - Κατάλογος ήδη υπάρχει. Προσθήκη %1, αν σκοπεύετε να δημιουργήσετε έναν νέο κατάλογο εδώ. - - - Path already exists, and is not a directory. - Η διαδρομή υπάρχει ήδη αλλά δεν είναι φάκελος - - - Cannot create data directory here. - Δεν μπορεί να δημιουργηθεί φάκελος δεδομένων εδώ. - - - - HelpMessageDialog - - version - έκδοση - - - (%1-bit) - (%1-bit) - - - About %1 - Σχετικά %1 - - - Command-line options - Επιλογές γραμμής εντολών - - - - Intro - - Welcome - Καλώς ήρθατε - - - Use the default data directory - Χρήση του προεπιλεγμένου φακέλου δεδομένων - - - Use a custom data directory: - Προσαρμογή του φακέλου δεδομένων: - - - Bitcoin - Bitcoin - - - Error: Specified data directory "%1" cannot be created. - Σφάλμα: Ο καθορισμένος φάκελος δεδομένων "%1" δεν μπορεί να δημιουργηθεί. - - - Error - Σφάλμα - - - %n GB of free space available - %n GB ελεύθερου χώρου διαθέσιμα%n GB ελεύθερου χώρου διαθέσιμα - - - (of %n GB needed) - (από το %n GB που απαιτείται)(από τα %n GB που απαιτούνται) - - - - ModalOverlay - - Form - Φόρμα - - - Unknown... - Άγνωστο... - - - Last block time - Χρόνος τελευταίου μπλοκ - - - Hide - Απόκρυψη - - - - OpenURIDialog - - Open URI - Άνοιγμα &URI - - - Open payment request from URI or file - Ανοιχτό αίτημα πληρωμής από URI ή από αρχείο - - - URI: - URI: - - - Select payment request file - Επιλέξτε πληρωμή αρχείου αίτησης - - - - OptionsDialog - - Options - Ρυθμίσεις - - - &Main - &Κύριο - - - Size of &database cache - Μέγεθος κρυφής μνήμης βάσης δεδομένων. - - - MB - MB - - - Number of script &verification threads - Αριθμός script και γραμμές επαλήθευσης - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Διεύθυνση IP του διαμεσολαβητή (π.χ. 127.0.0.1 / IPv6: ::1) - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Ελαχιστοποίηση αντί για έξοδο κατά το κλείσιμο του παραθύρου. Όταν αυτή η επιλογή είναι ενεργοποιημένη, η εφαρμογή θα κλείνει μόνο αν επιλεχθεί η Έξοδος στο μενού. - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URLs από τρίτους (π.χ. ένας εξερευνητής μπλοκ) τα οποία εμφανίζονται στην καρτέλα συναλλαγών ως στοιχεία μενού. Το %s στα URL αντικαθίσταται από την τιμή της κατατεμαχισμένης συναλλαγής. - - - Active command-line options that override above options: - Ενεργές επιλογές γραμμής-εντολών που παρακάμπτουν τις παραπάνω επιλογές: - - - Open Configuration File - Άνοιγμα Αρχείου Ρυθμίσεων - - - Reset all client options to default. - Επαναφορά όλων των επιλογών του πελάτη στις αρχικές. - - - &Reset Options - Επαναφορά ρυθμίσεων - - - &Network - &Δίκτυο - - - GB - GB - - - (0 = auto, <0 = leave that many cores free) - (0 = αυτόματο, <0 = ελεύθεροι πυρήνες) - - - W&allet - Π&ορτοφόλι - - - Expert - Έμπειρος - - - Enable coin &control features - Ενεργοποίηση δυνατοτήτων ελέγχου κερμάτων - - - If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Εάν απενεργοποιήσετε το ξόδεμα μη επικυρωμένων ρέστων, τα ρέστα από μια συναλλαγή δεν μπορούν να χρησιμοποιηθούν έως ότου αυτή η συναλλαγή έχει έστω μια επικύρωση. Αυτό επίσης επηρεάζει το πως υπολογίζεται το υπόλοιπό σας. - - - &Spend unconfirmed change - &Ξόδεμα μη επικυρωμένων ρέστων - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Αυτόματο άνοιγμα των θυρών Bitcoin στον δρομολογητή. Λειτουργεί μόνο αν ο δρομολογητής σας υποστηρίζει τη λειτουργία UPnP. - - - Map port using &UPnP - Απόδοση θυρών με χρήστη &UPnP - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Σύνδεση στο δίκτυο Bitcoin μέσω διαμεσολαβητή SOCKS5 (π.χ. για σύνδεση μέσω Tor) - - - &Connect through SOCKS5 proxy (default proxy): - &Σύνδεση μέσω διαμεσολαβητή SOCKS5 (προεπιλεγμένος) - - - Proxy &IP: - &IP διαμεσολαβητή: - - - &Port: - &Θύρα: - - - Port of the proxy (e.g. 9050) - Θύρα διαμεσολαβητή - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - &Window - &Παράθυρο - - - Show only a tray icon after minimizing the window. - Εμφάνιση μόνο εικονιδίου στην περιοχή ειδοποιήσεων κατά την ελαχιστοποίηση. - - - &Minimize to the tray instead of the taskbar - &Ελαχιστοποίηση στην περιοχή ειδοποιήσεων αντί της γραμμής εργασιών - - - M&inimize on close - Ε&λαχιστοποίηση κατά το κλείσιμο - - - &Display - &Απεικόνιση - - - User Interface &language: - Γλώσσα περιβάλλοντος εργασίας: - - - &Unit to show amounts in: - &Μονάδα μέτρησης: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Διαλέξτε την προεπιλεγμένη υποδιαίρεση που θα εμφανίζεται όταν στέλνετε νομίσματα. - - - Whether to show coin control features or not. - Επιλογή κατά πόσο να αναδείχνονται οι δυνατότητες ελέγχου κερμάτων. - - - &OK - &ΟΚ - - - &Cancel - &Ακύρωση - - - default - προεπιλογή - - - none - κανένα - - - Confirm options reset - Επιβεβαίωση των επιλογών επαναφοράς - - - Client restart required to activate changes. - Χρειάζεται επανεκκίνηση του προγράμματος για να ενεργοποιηθούν οι αλλαγές. - - - Error - Σφάλμα - - - This change would require a client restart. - Η αλλαγή αυτή θα χρειαστεί επανεκκίνηση του προγράμματος - - - The supplied proxy address is invalid. - Δεν είναι έγκυρη η διεύθυνση διαμεσολαβητή - - - - OverviewPage - - Form - Φόρμα - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Οι πληροφορίες που εμφανίζονται μπορεί να είναι ξεπερασμένες. Το πορτοφόλι σας συγχρονίζεται αυτόματα με το δίκτυο Bitcoin μετά από μια σύνδεση, αλλά αυτή η διαδικασία δεν έχει ακόμη ολοκληρωθεί. - - - Watch-only: - Επίβλεψη μόνο: - - - Available: - Διαθέσιμο: - - - Your current spendable balance - Το τρέχον διαθέσιμο υπόλοιπο - - - Pending: - Εκκρεμούν: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Το άθροισμα των συναλλαγών που δεν έχουν ακόμα επιβεβαιωθεί και δεν προσμετρώνται στο τρέχον διαθέσιμο υπόλοιπό σας - - - Immature: - Ανώριμος - - - Mined balance that has not yet matured - Εξορυγμένο υπόλοιπο που δεν έχει ακόμα ωριμάσει - - - Balances - Υπόλοιπο: - - - Total: - Σύνολο: - - - Your current total balance - Το τρέχον συνολικό υπόλοιπο - - - Your current balance in watch-only addresses - Το τρέχον υπόλοιπο σας σε διευθύνσεις παρακολούθησης μόνο - - - Spendable: - Ξοδεμένα: - - - Recent transactions - Πρόσφατες συναλλαγές - - - Unconfirmed transactions to watch-only addresses - Μη επικυρωμένες συναλλαγές σε διευθύνσεις παρακολούθησης μόνο - - - Mined balance in watch-only addresses that has not yet matured - Εξορυγμένο υπόλοιπο σε διευθύνσεις παρακολούθησης μόνο που δεν έχει ωριμάσει ακόμα - - - Current total balance in watch-only addresses - Το τρέχον συνολικό υπόλοιπο σε διευθύνσεις παρακολούθησης μόνο - - - - PaymentServer - - Payment request error - Σφάλμα αίτησης πληρωμής - - - Cannot start bitcoin: click-to-pay handler - Δεν είναι δυνατή η εκκίνηση του bitcoin: χειριστής click-to-pay - - - URI handling - URI χειριστής - - - Payment request file handling - Επεξεργασία αρχείου αίτησης πληρωμής - - - Payment request rejected - Η αίτηση πληρωμής απορρίφθηκε - - - - PeerTableModel - - Sent - Αποστολή - - - Received - Παραλήφθησαν - - - - QObject - - Amount - Ποσό - - - Enter a Bitcoin address (e.g. %1) - Εισάγετε μια διεύθυνση Bitcoin (π.χ. %1) - - - %1 d - %1 d - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - None - Κανένα - - - N/A - Μη διαθέσιμο - - - %1 ms - %1 ms - - - %1 and %2 - %1 και %2 - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - unknown - Άγνωστο - - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - N/A - Μη διαθέσιμο - - - Client version - Έκδοση Πελάτη - - - &Information - &Πληροφορία - - - Debug window - Παράθυρο αποσφαλμάτωσης - - - General - Γενικά - - - Using BerkeleyDB version - Χρήση BerkeleyDB έκδοσης - - - Startup time - Χρόνος εκκίνησης - - - Network - Δίκτυο - - - Name - Όνομα - - - Number of connections - Αριθμός συνδέσεων - - - Block chain - Αλυσίδα μπλοκ - - - Current number of blocks - Τρέχον αριθμός μπλοκ - - - Memory usage - χρήση Μνήμης - - - Received - Παραλήφθησαν - - - Sent - Αποστολή - - - &Peers - &Χρήστες - - - Select a peer to view detailed information. - Επιλέξτε ένα χρήστη για να δείτε αναλυτικές πληροφορίες. - - - Version - Έκδοση - - - Decrease font size - Μείωση μεγέθους γραμματοσειράς - - - Increase font size - Αύξηση μεγέθους γραμματοσειράς - - - Services - Υπηρεσίες - - - Ban Score - Σκορ Aποκλεισμού - - - Connection Time - Χρόνος σύνδεσης - - - Last Send - Τελευταία αποστολή - - - Last Receive - Τελευταία λήψη - - - Ping Time - Χρόνος καθυστέρησης - - - Last block time - Χρόνος τελευταίου μπλοκ - - - &Open - &Άνοιγμα - - - &Console - &Κονσόλα - - - &Network Traffic - &Κίνηση δικτύου - - - Totals - Σύνολα - - - In: - Εισερχόμενα: - - - Out: - Εξερχόμενα: - - - Debug log file - Αρχείο καταγραφής εντοπισμού σφαλμάτων - - - Clear console - Καθαρισμός κονσόλας - - - 1 &hour - 1 &ώρα - - - 1 &day - 1 &μέρα - - - 1 &week - 1 &εβδομάδα - - - 1 &year - 1 &χρόνος - - - default wallet - Προεπιλεγμένο πορτοφόλι - - - via %1 - μέσω %1 - - - never - ποτέ - - - Inbound - Εισερχόμενα - - - Outbound - Εξερχόμενα - - - Yes - Ναι - - - No - Όχι - - - Unknown - Άγνωστο(α) - - - - ReceiveCoinsDialog - - &Amount: - &Ποσό: - - - &Label: - &Επιγραφή - - - &Message: - &Μήνυμα: - - - Clear all fields of the form. - Καθαρισμός όλων των πεδίων της φόρμας. - - - Clear - Καθαρισμός - - - &Request payment - &Αίτηση πληρωμής - - - Show - Εμφάνιση - - - Remove the selected entries from the list - Αφαίρεση επιλεγμένων καταχωρίσεων από τη λίστα - - - Remove - Αφαίρεση - - - Copy URI - Αντιγραφή της επιλεγμένης διεύθυνσης στο πρόχειρο του συστήματος - - - Copy label - Αντιγραφή ετικέτας - - - Copy message - Αντιγραφή μηνύματος - - - Copy amount - Αντιγραφή ποσού - - - - ReceiveRequestDialog - - QR Code - Κώδικας QR - - - Copy &URI - Αντιγραφή της επιλεγμένης διεύθυνσης στο πρόχειρο του συστήματος - - - Copy &Address - Αντιγραφή &Διεύθυνσης - - - &Save Image... - &Αποθήκευση εικόνας... - - - Payment information - Πληροφορίες πληρωμής - - - Address - Διεύθυνση - - - Amount - Ποσό - - - Label - Ετικέτα - - - Message - Μήνυμα - - - Wallet - Πορτοφόλι - - - - RecentRequestsTableModel - - Date - Ημερομηνία - - - Label - Ετικέτα - - - Message - Μήνυμα - - - (no label) - (χωρίς ετικέτα) - - - - SendCoinsDialog - - Send Coins - Αποστολή νομισμάτων - - - Coin Control Features - Χαρακτηριστικά επιλογής κερμάτων - - - Inputs... - Εισροές... - - - automatically selected - επιλεγμένο αυτόματα - - - Insufficient funds! - Ανεπαρκές κεφάλαιο! - - - Quantity: - Ποσότητα: - - - Bytes: - Bytes: - - - Amount: - Ποσό: - - - Fee: - Ταρίφα: - - - After Fee: - Ταρίφα αλλαγής: - - - Change: - Ρέστα: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Όταν ενεργό, αλλά η διεύθυνση ρέστων είναι κενή ή άκυρη, τα ρέστα θα σταλούν σε μία πρόσφατα δημιουργημένη διεύθυνση. - - - Custom change address - Προσαρμοσμένη διεύθυνση ρέστων - - - Transaction Fee: - Τέλος συναλλαγής: - - - Choose... - Επιλογή... - - - per kilobyte - ανά kilobyte - - - Hide - Απόκρυψη - - - Recommended: - Προτεινόμενο: - - - Custom: - Προσαρμογή: - - - Send to multiple recipients at once - Αποστολή σε πολλούς αποδέκτες ταυτόχρονα - - - Add &Recipient - &Προσθήκη αποδέκτη - - - Clear all fields of the form. - Καθαρισμός όλων των πεδίων της φόρμας. - - - Dust: - Σκόνη: - - - Clear &All - Καθαρισμός &Όλων - - - Balance: - Υπόλοιπο: - - - Confirm the send action - Επιβεβαίωση αποστολής - - - S&end - Αποστολή - - - Copy quantity - Αντιγραφή ποσότητας - - - Copy amount - Αντιγραφή ποσού - - - Copy fee - Αντιγραφή τελών - - - or - ή - - - Transaction fee - Κόστος συναλλαγής - - - (no label) - (χωρίς ετικέτα) - - - - SendCoinsEntry - - A&mount: - &Ποσό: - - - Pay &To: - Πληρωμή &σε: - - - &Label: - &Επιγραφή - - - Choose previously used address - Επιλογή διεύθυνσης που έχει ήδη χρησιμοποιηθεί - - - This is a normal payment. - Αυτή είναι μια απλή πληρωμή. - - - The Bitcoin address to send the payment to - Η διεύθυνση Bitcoin που θα σταλεί η πληρωμή - - - Alt+A - Alt+A - - - Paste address from clipboard - Επικόλληση διεύθυνσης από το βιβλίο διευθύνσεων - - - Alt+P - Alt+P - - - Remove this entry - Αφαίρεση αυτής της καταχώρησης - - - Message: - Μήνυμα: - - - Enter a label for this address to add it to the list of used addresses - Εισάγετε μία ετικέτα για αυτή την διεύθυνση για να προστεθεί στη λίστα με τις χρησιμοποιημένες διευθύνσεις - - - Pay To: - Πληρωμή σε: - - - Memo: - Σημείωση: - - - - SendConfirmationDialog - - Yes - Ναι - - - - ShutdownWindow - - Do not shut down the computer until this window disappears. - Μην απενεργοποιήσετε τον υπολογιστή μέχρι να κλείσει αυτό το παράθυρο. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Υπογραφές - Είσοδος / Επαλήθευση Mηνύματος - - - &Sign Message - &Υπογραφή Μηνύματος - - - The Bitcoin address to sign the message with - Διεύθυνση Bitcoin που θα σταλεί το μήνυμα - - - Choose previously used address - Επιλογή διεύθυνσης που έχει ήδη χρησιμοποιηθεί - - - Alt+A - Alt+A - - - Paste address from clipboard - Επικόλληση διεύθυνσης από το βιβλίο διευθύνσεων - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Εισάγετε εδώ το μήνυμα που θέλετε να υπογράψετε - - - Signature - Υπογραφή - - - Copy the current signature to the system clipboard - Αντιγραφή της επιλεγμένης υπογραφής στο πρόχειρο του συστήματος - - - Sign the message to prove you own this Bitcoin address - Υπογράψτε το μήνυμα για να αποδείξετε πως σας ανήκει η συγκεκριμένη διεύθυνση Bitcoin - - - Sign &Message - Υπογραφη μήνυματος - - - Reset all sign message fields - Επαναφορά όλων των πεδίων μήνυματος - - - Clear &All - Καθαρισμός &Όλων - - - &Verify Message - &Επιβεβαίωση Mηνύματος - - - The Bitcoin address the message was signed with - Διεύθυνση Bitcoin με την οποία έχει υπογραφεί το μήνυμα - - - Verify the message to ensure it was signed with the specified Bitcoin address - Επαληθεύστε το μήνυμα για να αποδείξετε πως υπογράφθηκε από τη συγκεκριμένη διεύθυνση Bitcoin - - - Verify &Message - Επιβεβαίωση Mηνύματος - - - Reset all verify message fields - Επαναφορά όλων των πεδίων επαλήθευσης μηνύματος - - - - SplashScreen - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open until %1 - Ανοιχτό μέχρι %1 - - - 0/unconfirmed, %1 - 0/ανεπιβεβαίωτο, %1 - - - Date - Ημερομηνία - - - Source - Πηγή - - - Generated - Παράχθηκε - - - From - Από - - - unknown - Άγνωστο - - - To - Προς - - - own address - δική σας διεύθυνση - - - watch-only - παρακολούθηση-μόνο - - - label - ετικέτα - - - Credit - Πίστωση - - - not accepted - μη έγκυρο - - - Total credit - Συνολική πίστωση - - - Transaction fee - Κόστος συναλλαγής - - - Message - Μήνυμα - - - Amount - Ποσό - - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Αυτό το παράθυρο δείχνει μια λεπτομερή περιγραφή της συναλλαγής - - - - TransactionTableModel - - Date - Ημερομηνία - - - Label - Ετικέτα - - - Open until %1 - Ανοιχτό μέχρι %1 - - - watch-only - παρακολούθηση-μόνο - - - (no label) - (χωρίς ετικέτα) - - - - TransactionView - - Copy address - Αντιγραφή διεύθυνσης - - - Copy label - Αντιγραφή ετικέτας - - - Copy amount - Αντιγραφή ποσού - - - Copy transaction ID - Αντιγραφή ταυτότητας συναλλαγής - - - Copy raw transaction - Αντιγραφή ανεπεξέργαστης συναλλαγής - - - Edit label - Επεξεργασία ετικέτας - - - Comma separated file (*.csv) - Αρχείο οριοθετημένο με κόμματα (*.csv) - - - Date - Ημερομηνία - - - Label - Ετικέτα - - - Address - Διεύθυνση - - - Exporting Failed - Αποτυχία Εξαγωγής - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Μονάδα μέτρησης προβολής ποσών. Κάντε κλικ για επιλογή άλλης μονάδας. - - - - WalletFrame - - - WalletModel - - Increase: - Αύξηση: - - - - WalletView - - Cancel - Ακύρωση - - - - bitcoin-core - - Bitcoin Core - Bitcoin Core - - - Corrupted block database detected - Εντοπίσθηκε διεφθαρμένη βάση δεδομένων των μπλοκ - - - Do you want to rebuild the block database now? - Θέλετε να δημιουργηθεί τώρα η βάση δεδομένων των μπλοκ; - - - Error initializing block database - Σφάλμα κατά την ενεργοποίηση της βάσης δεδομένων των μπλοκ - - - Error initializing wallet database environment %s! - Σφάλμα κατά την ενεργοποίηση της βάσης δεδομένων πορτοφολιού %s! - - - Error loading block database - Σφάλμα φόρτωσης της βάσης δεδομένων των μπλοκ - - - Error opening block database - Σφάλμα φόρτωσης της βάσης δεδομένων των μπλοκ - - - Error: Disk space is low! - Σφάλμα: Χαμηλός χώρος στο δίσκο! - - - Failed to listen on any port. Use -listen=0 if you want this. - Αποτυχία παρακολούθησης σε οποιαδήποτε θύρα. Χρησιμοποιήστε -listen=0 αν θέλετε αυτό. - - - Importing... - Εισαγωγή... - - - Not enough file descriptors available. - Δεν υπάρχουν αρκετοί περιγραφείς αρχείων διαθέσιμοι. - - - Verifying blocks... - Επαλήθευση των μπλοκ... - - - Error reading from database, shutting down. - Σφάλμα ανάγνωσης από τη βάση δεδομένων, γίνεται τερματισμός. - - - Information - Πληροφορία - - - Signing transaction failed - Η υπογραφή συναλλαγής απέτυχε - - - This is experimental software. - Η εφαρμογή είναι σε πειραματικό στάδιο. - - - Transaction amount too small - Το ποσό της συναλλαγής είναι πολύ μικρό - - - Transaction too large - Η συναλλαγή είναι πολύ μεγάλη - - - Warning - Προειδοποίηση - - - Zapping all transactions from wallet... - Μεταφορά όλων των συναλλαγών από το πορτοφόλι - - - Unknown network specified in -onlynet: '%s' - Έχει οριστεί άγνωστo δίκτυο στο -onlynet: '%s' - - - Insufficient funds - Ανεπαρκές κεφάλαιο - - - Loading block index... - Φόρτωση ευρετηρίου μπλοκ... - - - Loading wallet... - Φόρτωση πορτοφολιού... - - - Cannot downgrade wallet - Δεν μπορώ να υποβαθμίσω το πορτοφόλι - - - Rescanning... - Ανίχνευση... - - - Done loading - Η φόρτωση ολοκληρώθηκε - - - Error - Σφάλμα - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_en_AU.ts b/src/qt/locale/bitcoin_en_AU.ts deleted file mode 100644 index 4a63994b8a..0000000000 --- a/src/qt/locale/bitcoin_en_AU.ts +++ /dev/null @@ -1,187 +0,0 @@ - - - AddressBookPage - - Enter address or label to search - Enter address or label to search - - - - AddressTableModel - - - AskPassphraseDialog - - Passphrase Dialog - Passphrase Dialogue - - - - BanTableModel - - - BitcoinGUI - - Synchronizing with network... - Synchronising with network... - - - - CoinControlDialog - - - EditAddressDialog - - - FreespaceChecker - - - HelpMessageDialog - - - Intro - - - ModalOverlay - - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronising with the bitcoin network, as detailed below. - - - - OpenURIDialog - - - OptionsDialog - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Minimise instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - - - Show only a tray icon after minimizing the window. - Show only a tray icon after minimising the window. - - - &Minimize to the tray instead of the taskbar - &Minimise to the tray instead of the taskbar - - - M&inimize on close - M&inimise on close - - - - OverviewPage - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - The displayed information may be out of date. Your wallet automatically synchronises with the Bitcoin network after a connection is established, but this process has not completed yet. - - - - PaymentServer - - Payment request is not initialized. - Payment request is not initialised. - - - - PeerTableModel - - - QObject - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - - ReceiveCoinsDialog - - - ReceiveRequestDialog - - Wallet - Wallet - - - - RecentRequestsTableModel - - - SendCoinsDialog - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Smart fee not initialised yet. This usually takes a few blocks...) - - - Transaction fee - Transaction fee - - - - SendCoinsEntry - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - - TransactionDescDialog - - - TransactionTableModel - - - TransactionView - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - - bitcoin-core - - Error initializing block database - Error initialising block database - - - Error initializing wallet database environment %s! - Error initialising wallet database environment %s! - - - Failed to rescan the wallet during initialization - Failed to rescan the wallet during initialisation - - - Initialization sanity check failed. %s is shutting down. - Initialisation sanity check failed. %s is shutting down. - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_es_ES.ts b/src/qt/locale/bitcoin_es_ES.ts deleted file mode 100644 index 1b196cb13f..0000000000 --- a/src/qt/locale/bitcoin_es_ES.ts +++ /dev/null @@ -1,3185 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Haz clic derecho para editar la dirección o etiqueta - - - Create a new address - Crear una nueva dirección - - - &New - &Nuevo - - - Copy the currently selected address to the system clipboard - Copiar la dirección seleccionada al portapapeles del sistema - - - &Copy - &Copiar - - - C&lose - C&errar - - - Delete the currently selected address from the list - Eliminar la dirección seleccionada de la lista - - - Enter address or label to search - Introduzca una dirección o etiqueta que buscar - - - Export the data in the current tab to a file - Exportar los datos en la ficha actual a un archivo - - - &Export - &Exportar - - - &Delete - &Eliminar - - - Choose the address to send coins to - Seleccione la dirección a la que enviar monedas - - - Choose the address to receive coins with - Seleccione la dirección de la que recibir monedas - - - C&hoose - E&scoger - - - Sending addresses - Enviando direcciones - - - Receiving addresses - Recibiendo direcciones - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son sus direcciones Bitcoin para enviar pagos. Verifique siempre la cantidad y la dirección de recibimiento antes de enviar monedas. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Estas son sus direcciones Bitcoin para recibir pagos. Se recomienda utilizar una nueva dirección de recibimiento para cada transacción - - - &Copy Address - &Copiar Dirección - - - Copy &Label - Copiar &Etiqueta - - - &Edit - &Editar - - - Export Address List - Exportar lista de direcciones - - - Comma separated file (*.csv) - Archivo separado de coma (*.csv) - - - Exporting Failed - Falló la exportación - - - There was an error trying to save the address list to %1. Please try again. - Había un error intentando guardar la lista de direcciones en %1. Por favor inténtelo de nuevo. - - - - AddressTableModel - - Label - Etiqueta - - - Address - Dirección - - - (no label) - (sin etiqueta) - - - - AskPassphraseDialog - - Passphrase Dialog - Diálogo de contraseña - - - Enter passphrase - Introducir contraseña - - - New passphrase - Nueva contraseña - - - Repeat new passphrase - Repita la nueva contraseña - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Introduzca la nueva frase clave del monedero. <br/>Por favor utilice una frase clave de <b>diez o más carácteres aleatorios</b>, o <b>ocho o más palabras</b>. - - - Encrypt wallet - Cifrar cartera - - - This operation needs your wallet passphrase to unlock the wallet. - Esta operación necesita su frase clave de monedero para desbloquear el monedero. - - - Unlock wallet - Desbloquear monedero - - - This operation needs your wallet passphrase to decrypt the wallet. - Esta operación necesita su frase clave de cartera para desencriptar el monedero. - - - Decrypt wallet - Desencriptar monedero - - - Change passphrase - Cambiar frase clave - - - Enter the old passphrase and new passphrase to the wallet. - Introduzca la vieja frase clave y la nueva flase clave para el monedero. - - - Confirm wallet encryption - Confirmar encriptación del monedero - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Advertencia: Si encripta su monedero y pierde su frase clave <b>PERDERÁ TODOS SUS BITCOINS</b>! - - - Are you sure you wish to encrypt your wallet? - ¿Seguro que desea encriptar su monedero? - - - Wallet encrypted - Monedero encriptado - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 se cerrará ahora para terminar el proceso de encriptación. Recuerde que encriptar su monedero no puede proteger completamente su monedero de ser robado por malware que infecte su ordenador. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANTE: Cualquier copia de seguridad anterior que haya hecho en su archivo de monedero debería ser reemplazada con el archivo de monedero encriptado generado recientemente. Por razones de seguridad, las copias de seguridad anteriores del archivo de monedero desencriptado serán inútiles en cuanto empiece a utilizar el nuevo monedero encriptado. - - - Wallet encryption failed - Fracasó la encriptación de monedero - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Falló la encriptación del monedero debido a un error interno. Su monedero no fue encriptado. - - - The supplied passphrases do not match. - La frase clave introducida no coincide. - - - Wallet unlock failed - Fracasó el desbloqueo del monedero - - - The passphrase entered for the wallet decryption was incorrect. - La frase clave introducida para la encriptación del monedero es incorrecta. - - - Wallet decryption failed - Fracasó la encriptación del monedero - - - Wallet passphrase was successfully changed. - La frase clave del monedero se ha cambiado con éxito. - - - Warning: The Caps Lock key is on! - Alerta: ¡La clave de bloqueo Caps está activa! - - - - BanTableModel - - IP/Netmask - IP/Máscara - - - Banned Until - Bloqueado Hasta - - - - BitcoinGUI - - Sign &message... - Firmar &mensaje... - - - Synchronizing with network... - Sincronizando con la red… - - - &Overview - &Vista general - - - Node - Nodo - - - Show general overview of wallet - Mostrar vista general del monedero - - - &Transactions - &Transacciones - - - Browse transaction history - Examinar el historial de transacciones - - - E&xit - S&alir - - - Quit application - Salir de la aplicación - - - &About %1 - &Acerca de %1 - - - Show information about %1 - Mostrar información acerca de %1 - - - About &Qt - Acerca de &Qt - - - Show information about Qt - Mostrar información acerca de Qt - - - &Options... - &Opciones... - - - Modify configuration options for %1 - Modificar las opciones de configuración para %1 - - - &Encrypt Wallet... - &Cifrar monedero… - - - &Backup Wallet... - &Guardar copia del monedero... - - - &Change Passphrase... - &Cambiar la contraseña… - - - &Sending addresses... - Direcciones de &envío... - - - &Receiving addresses... - Direcciones de &recepción... - - - Open &URI... - Abrir &URI... - - - Click to disable network activity. - Haz click para desactivar la actividad de red. - - - Network activity disabled. - Actividad de red desactivada. - - - Click to enable network activity again. - Haz click para reactivar la actividad de red. - - - Syncing Headers (%1%)... - Sincronizando cabeceras (%1%)... - - - Reindexing blocks on disk... - Reindexando bloques en disco... - - - Send coins to a Bitcoin address - Enviar bitcoins a una dirección Bitcoin - - - Backup wallet to another location - Copia de seguridad del monedero en otra ubicación - - - Change the passphrase used for wallet encryption - Cambiar la contraseña utilizada para el cifrado del monedero - - - &Debug window - &Ventana de depuración - - - Open debugging and diagnostic console - Abrir la consola de depuración y diagnóstico - - - &Verify message... - &Verificar mensaje... - - - Bitcoin - Bitcoin - - - Wallet - Monedero - - - &Send - &Enviar - - - &Receive - &Recibir - - - &Show / Hide - &Mostrar / Ocultar - - - Show or hide the main Window - Mostrar u ocultar la ventana principal - - - Encrypt the private keys that belong to your wallet - Cifrar las claves privadas de su monedero - - - Sign messages with your Bitcoin addresses to prove you own them - Firmar mensajes con sus direcciones Bitcoin para demostrar la propiedad - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Verificar mensajes comprobando que están firmados con direcciones Bitcoin concretas - - - &File - &Archivo - - - &Settings - &Configuración - - - &Help - &Ayuda - - - Tabs toolbar - Barra de pestañas - - - Request payments (generates QR codes and bitcoin: URIs) - Solicitar pagos (generando códigos QR e identificadores URI "bitcoin:") - - - Show the list of used sending addresses and labels - Mostrar la lista de direcciones de envío y etiquetas - - - Show the list of used receiving addresses and labels - Muestra la lista de direcciones de recepción y etiquetas - - - Open a bitcoin: URI or payment request - Abrir un identificador URI "bitcoin:" o una petición de pago - - - &Command-line options - &Opciones de consola de comandos - - - %n active connection(s) to Bitcoin network - %n conexión activa hacia la red Bitcoin%n conexiones activas hacia la red Bitcoin - - - Indexing blocks on disk... - Indexando bloques en disco... - - - Processing blocks on disk... - Procesando bloques en disco... - - - Processed %n block(s) of transaction history. - %n bloque procesado del historial de transacciones.%n bloques procesados del historial de transacciones. - - - %1 behind - %1 atrás - - - Last received block was generated %1 ago. - El último bloque recibido fue generado hace %1. - - - Transactions after this will not yet be visible. - Las transacciones posteriores aún no están visibles. - - - Error - Error - - - Warning - Aviso - - - Information - Información - - - Up to date - Actualizado - - - Show the %1 help message to get a list with possible Bitcoin command-line options - Mostrar el mensaje de ayuda %1 para obtener una lista de los posibles comandos de linea de comandos de Bitcoin - - - %1 client - %1 cliente - - - Connecting to peers... - Conectando a pares... - - - Catching up... - Actualizando... - - - Date: %1 - - Fecha: %1 - - - - Amount: %1 - - Amount: %1 - - - - Type: %1 - - Tipo: %1 - - - - Label: %1 - - Etiqueta: %1 - - - - Address: %1 - - Dirección: %1 - - - - Sent transaction - Transacción enviada - - - Incoming transaction - Transacción entrante - - - HD key generation is <b>enabled</b> - La generación de claves HD está <b>activada</b> - - - HD key generation is <b>disabled</b> - La generación de claves HD está <b>desactivada</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - El monedero está <b>cifrado</b> y actualmente <b>desbloqueado</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - El monedero está <b>cifrado</b> y actualmente <b>bloqueado</b> - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Ha ocurrido un error fatal. Bitcoin no puede continuar de manera segura y se cerrará. - - - - CoinControlDialog - - Coin Selection - Selección de la moneda - - - Quantity: - Cantidad: - - - Bytes: - Bytes: - - - Amount: - Cuantía: - - - Fee: - Tasa: - - - Dust: - Polvo: - - - After Fee: - Después de aplicar la comisión: - - - Change: - Cambio: - - - (un)select all - (des)marcar todos - - - Tree mode - Modo árbol - - - List mode - Modo lista - - - Amount - Cantidad - - - Received with label - Recibido con etiqueta - - - Received with address - Recibido con dirección - - - Date - Fecha - - - Confirmations - Confirmaciones - - - Confirmed - Confirmado - - - Copy address - Copiar ubicación - - - Copy label - Copiar etiqueta - - - Copy amount - Copiar cantidad - - - Copy transaction ID - Copiar ID de transacción - - - Lock unspent - Bloquear lo no gastado - - - Unlock unspent - Desbloquear lo no gastado - - - Copy quantity - Copiar cantidad - - - Copy fee - Copiar cuota - - - Copy after fee - Copiar después de couta - - - Copy bytes - Copiar bytes - - - Copy dust - Copiar polvo - - - Copy change - Copiar cambio - - - (%1 locked) - (%1 bloqueado) - - - yes - - - - no - no - - - This label turns red if any recipient receives an amount smaller than the current dust threshold. - Esta etiqueta se vuelve roja si algún destinatario recibe una cantidad inferior a la actual puerta polvorienta. - - - Can vary +/- %1 satoshi(s) per input. - Puede variar +/- %1 satoshi(s) por entrada. - - - (no label) - (sin etiqueta) - - - change from %1 (%2) - cambia desde %1 (%2) - - - (change) - (cambio) - - - - EditAddressDialog - - Edit Address - Editar Dirección - - - &Label - &Etiqueta - - - The label associated with this address list entry - La etiqueta asociada con esta entrada de la lista de direcciones - - - The address associated with this address list entry. This can only be modified for sending addresses. - La dirección asociada con esta entrada de la lista de direcciones. Solo puede ser modificada para direcciones de envío. - - - &Address - &Dirección - - - New sending address - Nueva dirección de envío - - - Edit receiving address - Editar dirección de recivimiento - - - Edit sending address - Editar dirección de envío - - - The entered address "%1" is not a valid Bitcoin address. - La dirección introducida "%1" no es una dirección Bitcoin válida. - - - Could not unlock wallet. - Podría no desbloquear el monedero. - - - New key generation failed. - Falló la generación de la nueva clave. - - - - FreespaceChecker - - A new data directory will be created. - Se creará un nuevo directorio de datos. - - - name - nombre - - - Directory already exists. Add %1 if you intend to create a new directory here. - El directorio ya existe. Añada %1 si pretende crear aquí un directorio nuevo. - - - Path already exists, and is not a directory. - La ruta ya existe y no es un directorio. - - - Cannot create data directory here. - No se puede crear un directorio de datos aquí. - - - - HelpMessageDialog - - version - versión - - - (%1-bit) - (%1-bit) - - - About %1 - Acerda de %1 - - - Command-line options - Opciones de la línea de órdenes - - - - Intro - - Welcome - Bienvenido - - - Welcome to %1. - Bienvenido a %1 - - - As this is the first time the program is launched, you can choose where %1 will store its data. - Al ser la primera vez que se ejecuta el programa, puede elegir donde %1 almacenara sus datos - - - Use the default data directory - Utilizar el directorio de datos predeterminado - - - Use a custom data directory: - Utilizar un directorio de datos personalizado: - - - Bitcoin - Bitcoin - - - Error: Specified data directory "%1" cannot be created. - Error: no ha podido crearse el directorio de datos especificado "%1". - - - Error - Error - - - %n GB of free space available - %n GB de espacio libre%n GB de espacio disponible - - - (of %n GB needed) - (de %n GB necesitados)(de %n GB requeridos) - - - - ModalOverlay - - Form - Formulario - - - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Las transacciones recientes podrían no ser visibles todavía, por lo que el balance de la cartera podría ser incorrecto. Esta información será correcta una vez su cartera se haya terminado de sincronizar con la red bitcoin, como se detalla más abajo. - - - Number of blocks left - Número de bloques restantes - - - Unknown... - Desconocido... - - - Last block time - Hora del último bloque - - - Progress - Progreso - - - Progress increase per hour - Incremento del progreso por hora - - - calculating... - calculando... - - - Estimated time left until synced - Tiempo estimado restante hasta sincronización completa - - - Hide - Ocultar - - - Unknown. Syncing Headers (%1)... - Desconocido. Sincronizando cabeceras (%1)... - - - - OpenURIDialog - - Open URI - Abrir URI... - - - Open payment request from URI or file - Abrir solicitud de pago a partir de un identificador URI o de un archivo - - - URI: - URI: - - - Select payment request file - Seleccionar archivo de sulicitud de pago - - - Select payment request file to open - Seleccionar el archivo de solicitud de pago para abrir - - - - OptionsDialog - - Options - Opciones - - - &Main - &Principal - - - Automatically start %1 after logging in to the system. - Iniciar automaticamente %1 al encender el sistema. - - - &Start %1 on system login - &Iniciar %1 al iniciar el sistema - - - Size of &database cache - Tamaño de cache de la &base de datos - - - MB - MB - - - Number of script &verification threads - Número de hilos de &verificación de scripts - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Dirección IP del proxy (p. ej. IPv4: 127.0.0.1 / IPv6: ::1) - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Minimizar en lugar de salir de la aplicación cuando la ventana está cerrada. Cuando se activa esta opción, la aplicación sólo se cerrará después de seleccionar Salir en el menú. - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Identificadores URL de terceros (por ejemplo, un explorador de bloques) que aparecen en la pestaña de transacciones como elementos del menú contextual. El %s en la URL es reemplazado por el valor hash de la transacción. Se pueden separar URL múltiples por una barra vertical |. - - - Active command-line options that override above options: - Opciones activas de consola de comandos que tienen preferencia sobre las opciones anteriores: - - - Reset all client options to default. - Restablecer todas las opciones predeterminadas del cliente. - - - &Reset Options - &Restablecer opciones - - - &Network - &Red - - - (0 = auto, <0 = leave that many cores free) - (0 = automático, <0 = dejar libres ese número de núcleos) - - - W&allet - &Monedero - - - Expert - Experto - - - Enable coin &control features - Habilitar funcionalidad de &coin control - - - If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Si desactiva el gasto del cambio no confirmado, no se podrá usar el cambio de una transacción hasta que se alcance al menos una confirmación. Esto afecta también a cómo se calcula su saldo. - - - &Spend unconfirmed change - &Gastar cambio no confirmado - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir automáticamente el puerto del cliente Bitcoin en el router. Esta opción solo funciona si el router admite UPnP y está activado. - - - Map port using &UPnP - Mapear el puerto mediante &UPnP - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Conectarse a la red Bitcoin a través de un proxy SOCKS5. - - - &Connect through SOCKS5 proxy (default proxy): - &Conectarse a través de proxy SOCKS5 (proxy predeterminado): - - - Proxy &IP: - Dirección &IP del proxy: - - - &Port: - &Puerto: - - - Port of the proxy (e.g. 9050) - Puerto del servidor proxy (ej. 9050) - - - Used for reaching peers via: - Usado para alcanzar compañeros via: - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Conectar a la red Bitcoin mediante un proxy SOCKS5 por separado para los servicios ocultos de Tor. - - - &Window - &Ventana - - - Show only a tray icon after minimizing the window. - Minimizar la ventana a la bandeja de iconos del sistema. - - - &Minimize to the tray instead of the taskbar - &Minimizar a la bandeja en vez de a la barra de tareas - - - M&inimize on close - M&inimizar al cerrar - - - &Display - &Interfaz - - - User Interface &language: - I&dioma de la interfaz de usuario - - - The user interface language can be set here. This setting will take effect after restarting %1. - El idioma de la interfaz de usuario puede establecerse aquí. Esta configuración tendrá efecto tras reiniciar %1. - - - &Unit to show amounts in: - Mostrar las cantidades en la &unidad: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Elegir la subdivisión predeterminada para mostrar cantidades en la interfaz y cuando se envían bitcoins. - - - Whether to show coin control features or not. - Mostrar o no funcionalidad de Coin Control - - - &OK - &Aceptar - - - &Cancel - &Cancelar - - - default - predeterminado - - - none - ninguna - - - Confirm options reset - Confirme el restablecimiento de las opciones - - - Client restart required to activate changes. - Se necesita reiniciar el cliente para activar los cambios. - - - Client will be shut down. Do you want to proceed? - El cliente se cerrará. ¿Desea continuar? - - - Configuration options - Opciones de configuración - - - Error - Error - - - This change would require a client restart. - Este cambio exige el reinicio del cliente. - - - The supplied proxy address is invalid. - La dirección proxy indicada es inválida. - - - - OverviewPage - - Form - Formulario - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - La información mostrada puede estar desactualizada. Su monedero se sincroniza automáticamente con la red Bitcoin después de que se haya establecido una conexión, pero este proceso aún no se ha completado. - - - Watch-only: - De observación: - - - Available: - Disponible: - - - Your current spendable balance - Su saldo disponible actual - - - Pending: - Pendiente: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Total de transacciones pendientes de confirmar y que aún no contribuye al saldo disponible - - - Immature: - No madurado: - - - Mined balance that has not yet matured - Saldo recién minado que aún no ha madurado. - - - Balances - Saldos - - - Total: - Total: - - - Your current total balance - Su saldo actual total - - - Your current balance in watch-only addresses - Su saldo actual en direcciones watch-only - - - Spendable: - Gastable: - - - Recent transactions - Transacciones recientes - - - Unconfirmed transactions to watch-only addresses - Transacciones sin confirmar en direcciones watch-only - - - Mined balance in watch-only addresses that has not yet matured - Saldo minado en direcciones watch-only que aún no ha madurado - - - Current total balance in watch-only addresses - Saldo total en las direcciones watch-only - - - - PaymentServer - - Payment request error - Fallo en la solicitud de pago - - - Cannot start bitcoin: click-to-pay handler - No se puede iniciar bitcoin: encargado click-para-pagar - - - URI handling - Manejo de URI - - - Payment request fetch URL is invalid: %1 - La búsqueda de solicitud de pago URL es válida: %1 - - - Invalid payment address %1 - Dirección de pago inválida %1 - - - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI no puede ser analizado! Esto puede ser causado por una dirección Bitcoin inválida o parametros URI mal formados. - - - Payment request file handling - Manejo del archivo de solicitud de pago - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - ¡El archivo de solicitud de pago no puede ser leído! Esto puede ser causado por un archivo de solicitud de pago inválido. - - - Payment request rejected - Solicitud de pago rechazada - - - Payment request network doesn't match client network. - La red de solicitud de pago no cimbina la red cliente. - - - Payment request expired. - Solicitud de pago caducada. - - - Payment request is not initialized. - La solicitud de pago no se ha iniciado. - - - Unverified payment requests to custom payment scripts are unsupported. - Solicitudes de pago sin verificar a scripts de pago habitual no se soportan. - - - Invalid payment request. - Solicitud de pago inválida. - - - Requested payment amount of %1 is too small (considered dust). - Cantidad de pago solicitada de %1 es demasiado pequeña (considerado polvo). - - - Refund from %1 - Reembolsar desde %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Solicitud de pago de %1 es demasiado grande (%2 bytes, permitidos %3 bytes). - - - Error communicating with %1: %2 - Fallo al comunicar con %1: %2 - - - Payment request cannot be parsed! - ¡La solicitud de pago no puede ser analizada! - - - Bad response from server %1 - Mala respuesta desde el servidor %1 - - - Network request error - Fallo de solicitud de red - - - Payment acknowledged - Pago declarado - - - - PeerTableModel - - User Agent - User Agent - - - Node/Service - Nodo/Servicio - - - NodeId - NodeId - - - Ping - Ping - - - Sent - Enviado - - - Received - Recibido - - - - QObject - - Amount - Cantidad - - - Enter a Bitcoin address (e.g. %1) - Introducir una dirección Bitcoin (p. ej. %1) - - - %1 d - %1 d - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - None - Ninguno - - - N/A - N/D - - - %1 ms - %1 ms - - - %1 and %2 - %1 y %2 - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - %1 didn't yet exit safely... - %1 aún no ha salido de manera segura... - - - unknown - desconocido - - - - QObject::QObject - - Error: Specified data directory "%1" does not exist. - Error: directorio especificado "%1" no existe. - - - Error: %1 - Error: %1 - - - - QRImageWidget - - &Save Image... - &Guardar imagen... - - - &Copy Image - &Copiar imagen - - - Save QR Code - Guardar código QR - - - PNG Image (*.png) - Imagen PNG (*.png) - - - - RPCConsole - - N/A - N/D - - - Client version - Versión del cliente - - - &Information - &Información - - - Debug window - Ventana de depuración - - - General - General - - - Using BerkeleyDB version - Utilizando la versión de BerkeleyDB - - - Datadir - Datadir - - - Startup time - Hora de inicio - - - Network - Red - - - Name - Nombre - - - Number of connections - Número de conexiones - - - Block chain - Cadena de bloques - - - Current number of blocks - Número actual de bloques - - - Memory Pool - Piscina de Memoria - - - Current number of transactions - Número actual de transacciones - - - Memory usage - Uso de memoria - - - Received - Recibido - - - Sent - Enviado - - - &Peers - &Pares - - - Banned peers - Peers Bloqueados - - - Select a peer to view detailed information. - Seleccionar un par para ver su información detallada. - - - Whitelisted - En la lista blanca - - - Direction - Dirección - - - Version - Versión - - - Starting Block - Importando bloques... - - - Synced Headers - Sincronizar Cabeceras - - - Synced Blocks - Bloques Sincronizados - - - User Agent - User Agent - - - Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. - Abrir el archivo de depuración %1 desde el directorio de datos actual. Puede tardar unos segundos para ficheros de gran tamaño. - - - Decrease font size - Disminuir tamaño de letra - - - Increase font size - Aumentar tamaño de letra - - - Services - Servicios - - - Ban Score - Puntuación de bloqueo - - - Connection Time - Duración de la conexión - - - Last Send - Ultimo envío - - - Last Receive - Ultima recepción - - - Ping Time - Ping - - - The duration of a currently outstanding ping. - La duración de un ping actualmente en proceso. - - - Ping Wait - Espera de Ping - - - Min Ping - Ping mín. - - - Time Offset - Desplazamiento de tiempo - - - Last block time - Hora del último bloque - - - &Open - &Abrir - - - &Console - &Consola - - - &Network Traffic - &Tráfico de Red - - - Totals - Total: - - - In: - Entrante: - - - Out: - Saliente: - - - Debug log file - Archivo de registro de depuración - - - Clear console - Borrar consola - - - 1 &hour - 1 &hora - - - 1 &day - 1 &día - - - 1 &week - 1 &semana - - - 1 &year - 1 &año - - - &Disconnect - &Desconectar - - - Ban for - Bloqueado por - - - &Unban - &Desbanear - - - Welcome to the %1 RPC console. - Bienvenido a la consola RPC %1. - - - Network activity disabled - Actividad de red desactivada - - - (node id: %1) - (nodo: %1) - - - via %1 - via %1 - - - never - nunca - - - Inbound - Entrante - - - Outbound - Saliente - - - Yes - - - - No - No - - - Unknown - Desconocido - - - - ReceiveCoinsDialog - - &Amount: - Cantidad - - - &Label: - &Etiqueta: - - - &Message: - Mensaje: - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Un mensaje opcional para adjuntar a la solicitud de pago, que se muestra cuando se abre la solicitud. Nota: El mensaje no se enviará con el pago por la red Bitcoin. - - - An optional label to associate with the new receiving address. - Etiqueta opcional para asociar con la nueva dirección de recepción. - - - Use this form to request payments. All fields are <b>optional</b>. - Utilice este formulario para solicitar pagos. Todos los campos son <b>opcionales</b>. - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Para solicitar una cantidad opcional. Deje este vacío o cero para no solicitar una cantidad específica. - - - Clear all fields of the form. - Vaciar todos los campos del formulario. - - - Clear - Vaciar - - - Requested payments history - Historial de pagos solicitados - - - &Request payment - &Solicitar pago - - - Show the selected request (does the same as double clicking an entry) - Muestra la petición seleccionada (También doble clic) - - - Show - Mostrar - - - Remove the selected entries from the list - Borrar de la lista las direcciónes actualmente seleccionadas - - - Remove - Eliminar - - - Copy URI - Copiar URL - - - Copy label - Copiar capa - - - Copy message - Copiar imagen - - - Copy amount - Copiar cantidad - - - - ReceiveRequestDialog - - QR Code - Código QR - - - Copy &URI - Copiar &URI - - - Copy &Address - Copiar &Dirección - - - &Save Image... - Guardar Imagen... - - - Request payment to %1 - Solicitar pago a %1 - - - Payment information - Información de pago - - - URI - URI - - - Address - Dirección - - - Amount - Cantidad - - - Label - Etiqueta - - - Message - Mensaje - - - Wallet - Monedero - - - Resulting URI too long, try to reduce the text for label / message. - URI resultante demasiado grande, trate de reducir el texto de etiqueta / mensaje. - - - Error encoding URI into QR Code. - Fallo al codificar URI en código QR. - - - - RecentRequestsTableModel - - Date - Fecha - - - Label - Etiqueta - - - Message - Mensaje - - - (no label) - (sin etiqueta) - - - (no message) - (no hay mensaje) - - - (no amount requested) - (no hay solicitud de cantidad) - - - Requested - Solicitado - - - - SendCoinsDialog - - Send Coins - Enviar bitcoins - - - Coin Control Features - Características de Coin Control - - - Inputs... - Entradas... - - - automatically selected - Seleccionado automáticamente - - - Insufficient funds! - Fondos insuficientes! - - - Quantity: - Cantidad: - - - Bytes: - Bytes: - - - Amount: - Cuantía: - - - Fee: - Tasa: - - - After Fee: - Después de tasas: - - - Change: - Cambio: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Si se marca esta opción pero la dirección de cambio está vacía o es inválida, el cambio se enviará a una nueva dirección recién generada. - - - Custom change address - Dirección propia - - - Transaction Fee: - Comisión de Transacción: - - - Choose... - Elija... - - - collapse fee-settings - Colapsar ajustes de cuota - - - per kilobyte - por kilobyte - - - Hide - Ocultar - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Pagando solamente la cuota mínima es correcto, siempre y cuando haya menos volumen de transacciones que el espacio en los bloques. Pero tenga en cuenta que esto puede terminar en una transacción nunca confirmada, una vez que haya más demanda para transacciones Bitcoin que la red pueda procesar. - - - (read the tooltip) - (leer la sugerencia) - - - Recommended: - Recomendado: - - - Custom: - Personalizado: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Tarifa inteligente no inicializado aún. Esto generalmente lleva a pocos bloques...) - - - Send to multiple recipients at once - Enviar a múltiples destinatarios de una vez - - - Add &Recipient - Añadir &destinatario - - - Clear all fields of the form. - Vaciar todos los campos del formulario - - - Dust: - Polvo: - - - Confirmation time target: - Tiempo objetivo de confirmación: - - - Clear &All - Vaciar &todo - - - Balance: - Saldo: - - - Confirm the send action - Confirmar el envío - - - S&end - &Enviar - - - Copy quantity - Copiar cantidad - - - Copy amount - Copiar cantidad - - - Copy fee - Copiar cuota - - - Copy after fee - Copiar después de couta - - - Copy bytes - Copiar bytes - - - Copy dust - Copiar polvo - - - Copy change - Copiar cambio - - - %1 to %2 - %1 a %2 - - - Are you sure you want to send? - ¿Seguro que quiere enviar? - - - or - o - - - Transaction fee - Comisión de transacción - - - Confirm send coins - Confirmar enviar monedas - - - The recipient address is not valid. Please recheck. - La dirección de destinatario no es válida. Por favor revísela. - - - The amount to pay must be larger than 0. - La cantidad a pagar debe de ser mayor que 0. - - - The amount exceeds your balance. - La cantidad excede su saldo. - - - The total exceeds your balance when the %1 transaction fee is included. - El total excede su saldo cuando la cuota de transacción de %1 es incluida. - - - Duplicate address found: addresses should only be used once each. - Dirección duplicada encontrada: la dirección sólo debería ser utilizada una vez por cada uso. - - - Transaction creation failed! - ¡Falló la creación de transacción! - - - The transaction was rejected with the following reason: %1 - Esta transacción fue rechazada por la siguiente razón: %1 - - - A fee higher than %1 is considered an absurdly high fee. - Una couta mayor que %1 se considera una cuota irracionalmente alta. - - - Payment request expired. - Solicitud de pago caducada. - - - Pay only the required fee of %1 - Pagar únicamente la cuota solicitada de %1 - - - Warning: Invalid Bitcoin address - Alerta: dirección Bitcoin inválida - - - Warning: Unknown change address - Alerta: dirección cambiada desconocida - - - Confirm custom change address - Confirmar dirección de cambio personalizada - - - The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? - La dirección que seleccionó para el cambio no es parte de esta cartera. Parte o la totalidad de los fondos de su cartera podrían ser enviados a esta dirección. ¿Está seguro? - - - (no label) - (sin etiqueta) - - - - SendCoinsEntry - - A&mount: - Ca&ntidad: - - - Pay &To: - &Pagar a: - - - &Label: - &Etiqueta: - - - Choose previously used address - Escoger direcciones previamente usadas - - - This is a normal payment. - Esto es un pago ordinario. - - - The Bitcoin address to send the payment to - Dirección Bitcoin a la que enviar el pago - - - Alt+A - Alt+A - - - Paste address from clipboard - Pegar dirección desde portapapeles - - - Alt+P - Alt+P - - - Remove this entry - Eliminar esta transacción - - - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - La cuota será deducida de la cantidad que sea mandada. El destinatario recibirá menos bitcoins de los que entres en el - - - S&ubtract fee from amount - Restar comisiones a la cantidad - - - Message: - Mensaje: - - - This is an unauthenticated payment request. - Esta es una petición de pago no autentificada. - - - This is an authenticated payment request. - Esta es una petición de pago autentificada. - - - Enter a label for this address to add it to the list of used addresses - Introduce una etiqueta para esta dirección para añadirla a la lista de direcciones utilizadas - - - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Un mensaje que se adjuntó a la bitcoin: URL que será almacenada con la transacción para su referencia. Nota: Este mensaje no se envía a través de la red Bitcoin. - - - Pay To: - Paga a: - - - Memo: - Memo: - - - Enter a label for this address to add it to your address book - Introduzca una etiqueta para esta dirección para añadirla a su agenda - - - - SendConfirmationDialog - - Yes - - - - - ShutdownWindow - - %1 is shutting down... - %1 se esta cerrando... - - - Do not shut down the computer until this window disappears. - No apague el equipo hasta que desaparezca esta ventana. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Firmas - Firmar / verificar un mensaje - - - &Sign Message - &Firmar mensaje - - - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Puede firmar los mensajes con sus direcciones para demostrar que las posee. Tenga cuidado de no firmar cualquier cosa de manera vaga o aleatoria, pues los ataques de phishing pueden tratar de engañarle firmando su identidad a través de ellos. Sólo firme declaraciones totalmente detalladas con las que usted esté de acuerdo. - - - The Bitcoin address to sign the message with - Dirección Bitcoin con la que firmar el mensaje - - - Choose previously used address - Escoger dirección previamente usada - - - Alt+A - Alt+A - - - Paste address from clipboard - Pegar dirección desde portapapeles - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Introduzca el mensaje que desea firmar aquí - - - Signature - Firma - - - Copy the current signature to the system clipboard - Copiar la firma actual al portapapeles del sistema - - - Sign the message to prove you own this Bitcoin address - Firmar el mensaje para demostrar que se posee esta dirección Bitcoin - - - Sign &Message - Firmar &mensaje - - - Reset all sign message fields - Vaciar todos los campos de la firma de mensaje - - - Clear &All - Vaciar &todo - - - &Verify Message - &Verificar mensaje - - - Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! - Introduzca la dirección para la firma, el mensaje (asegurándose de copiar tal cual los saltos de línea, espacios, tabulaciones, etc.) y la firma a continuación para verificar el mensaje. Tenga cuidado de no asumir más información de lo que dice el propio mensaje firmado para evitar fraudes basados en ataques de tipo man-in-the-middle. - - - The Bitcoin address the message was signed with - La dirección Bitcoin con la que se firmó el mensaje - - - Verify the message to ensure it was signed with the specified Bitcoin address - Verificar el mensaje para comprobar que fue firmado con la dirección Bitcoin indicada - - - Verify &Message - Verificar &mensaje - - - Reset all verify message fields - Vaciar todos los campos de la verificación de mensaje - - - Click "Sign Message" to generate signature - Click en "Fírmar mensaje" para generar una firma - - - The entered address is invalid. - La dirección introducida no es válida. - - - Please check the address and try again. - Por favor revise la dirección e inténtelo de nuevo. - - - The entered address does not refer to a key. - La dirección introducida no remite a una clave. - - - Wallet unlock was cancelled. - El desbloqueo del monedero fue cancelado. - - - Private key for the entered address is not available. - La clave privada de la dirección introducida no está disponible. - - - Message signing failed. - Falló la firma del mensaje. - - - Message signed. - Mensaje firmado. - - - The signature could not be decoded. - La firma no pudo descodificarse. - - - Please check the signature and try again. - Por favor compruebe la firma y pruebe de nuevo. - - - The signature did not match the message digest. - La firma no se combinó con el mensaje. - - - Message verification failed. - Falló la verificación del mensaje. - - - Message verified. - Mensaje verificado. - - - - SplashScreen - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open until %1 - Abierto hasta %1 - - - conflicted with a transaction with %1 confirmations - Hay un conflicto con la traducción de las confirmaciones %1 - - - 0/unconfirmed, %1 - 0/no confirmado, %1 - - - in memory pool - en el equipo de memoria - - - not in memory pool - no en el equipo de memoria - - - abandoned - abandonado - - - %1/unconfirmed - %1/no confirmado - - - %1 confirmations - confirmaciones %1 - - - Status - Estado - - - Date - Fecha - - - Source - Fuente - - - Generated - Generado - - - From - Desde - - - unknown - desconocido - - - To - Para - - - own address - dirección propia - - - watch-only - de observación - - - label - etiqueta - - - Credit - Credito - - - not accepted - no aceptada - - - Debit - Enviado - - - Total debit - Total enviado - - - Total credit - Total recibido - - - Transaction fee - Comisión de transacción - - - Net amount - Cantidad neta - - - Message - Mensaje - - - Comment - Comentario - - - Transaction ID - Identificador de transacción (ID) - - - Transaction total size - Tamaño total de la transacción - - - Output index - Indice de salida - - - Merchant - Vendedor - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Los bitcoins generados deben madurar %1 bloques antes de que puedan gastarse. Cuando generó este bloque, se transmitió a la red para que se añadiera a la cadena de bloques. Si no consigue entrar en la cadena, su estado cambiará a "no aceptado" y ya no se podrá gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque a pocos segundos del suyo. - - - Debug information - Información de depuración - - - Transaction - Transacción - - - Inputs - entradas - - - Amount - Cantidad - - - true - verdadero - - - false - falso - - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Esta ventana muestra información detallada sobre la transacción - - - Details for %1 - Detalles para %1 - - - - TransactionTableModel - - Date - Fecha - - - Type - Tipo - - - Label - Etiqueta - - - Open until %1 - Abierto hasta %1 - - - Unconfirmed - Sin confirmar - - - Abandoned - Abandonado - - - Confirming (%1 of %2 recommended confirmations) - Confirmando (%1 de %2 confirmaciones recomendadas) - - - Confirmed (%1 confirmations) - Confirmado (%1 confirmaciones) - - - Conflicted - En conflicto - - - Immature (%1 confirmations, will be available after %2) - No disponible (%1 confirmaciones. Estarán disponibles al cabo de %2) - - - Generated but not accepted - Generado pero no aceptado - - - Received with - Recibido con - - - Received from - Recibidos de - - - Sent to - Enviado a - - - Payment to yourself - Pago proprio - - - Mined - Minado - - - watch-only - de observación - - - (n/a) - (nd) - - - (no label) - (sin etiqueta) - - - Transaction status. Hover over this field to show number of confirmations. - Estado de transacción. Pasa el ratón sobre este campo para ver el número de confirmaciones. - - - Date and time that the transaction was received. - Fecha y hora en que se recibió la transacción. - - - Type of transaction. - Tipo de transacción. - - - Whether or not a watch-only address is involved in this transaction. - Si una dirección watch-only está involucrada en esta transacción o no. - - - User-defined intent/purpose of the transaction. - Descripción de la transacción definido por el usuario. - - - Amount removed from or added to balance. - Cantidad retirada o añadida al saldo. - - - - TransactionView - - All - Todo - - - Today - Hoy - - - This week - Esta semana - - - This month - Este mes - - - Last month - Mes pasado - - - This year - Este año - - - Range... - Rango... - - - Received with - Recibido con - - - Sent to - Enviado a - - - To yourself - A usted mismo - - - Mined - Minado - - - Other - Otra - - - Min amount - Cantidad mínima - - - Abandon transaction - Transacción abandonada - - - Copy address - Copiar ubicación - - - Copy label - Copiar capa - - - Copy amount - Copiar cantidad - - - Copy transaction ID - Copiar ID de transacción - - - Copy raw transaction - Copiar transacción raw - - - Copy full transaction details - Copiar todos los detalles de la transacción - - - Edit label - Editar etiqueta - - - Show transaction details - Mostrar detalles de la transacción - - - Export Transaction History - Exportar historial de transacciones - - - Comma separated file (*.csv) - Archivo separado de coma (*.csv) - - - Confirmed - Confirmado - - - Watch-only - De observación - - - Date - Fecha - - - Type - Tipo - - - Label - Etiqueta - - - Address - Dirección - - - ID - ID - - - Exporting Failed - Falló la exportación - - - There was an error trying to save the transaction history to %1. - Ha habido un error al intentar guardar la transacción con %1. - - - Exporting Successful - Exportación finalizada - - - The transaction history was successfully saved to %1. - La transacción ha sido guardada en %1. - - - Range: - Rango: - - - to - para - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Unidad en la que se muestran las cantidades. Haga clic para seleccionar otra unidad. - - - - WalletFrame - - No wallet has been loaded. - No se ha cargado ningún monedero - - - - WalletModel - - Send Coins - Enviar - - - - WalletView - - &Export - &Exportar - - - Export the data in the current tab to a file - Exportar a un archivo los datos de esta pestaña - - - Backup Wallet - Copia de seguridad del monedero - - - Wallet Data (*.dat) - Datos de monedero (*.dat) - - - Backup Failed - La copia de seguridad ha fallado - - - There was an error trying to save the wallet data to %1. - Ha habido un error al intentar guardar los datos del monedero en %1. - - - Backup Successful - Se ha completado con éxito la copia de respaldo - - - The wallet data was successfully saved to %1. - Los datos del monedero se han guardado con éxito en %1. - - - - bitcoin-core - - Prune configured below the minimum of %d MiB. Please use a higher number. - La Poda se ha configurado por debajo del minimo de %d MiB. Por favor utiliza un valor mas alto. - - - Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) - Poda: la ultima sincronizacion de la cartera sobrepasa los datos podados. Necesitas reindexar con -reindex (o descargar la cadena de bloques de nuevo en el caso de un nodo podado) - - - Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. - Nos es posible re-escanear en modo podado.Necesitas utilizar -reindex el cual descargara la cadena de bloques al completo de nuevo. - - - Error: A fatal internal error occurred, see debug.log for details - Un error interno fatal ocurrió, ver debug.log para detalles - - - Pruning blockstore... - Poda blockstore ... - - - Unable to start HTTP server. See debug log for details. - No se ha podido comenzar el servidor HTTP. Ver debug log para detalles. - - - Bitcoin Core - Bitcoin Core - - - The %s developers - Los %s desarrolladores - - - Cannot obtain a lock on data directory %s. %s is probably already running. - No se puede bloquear el directorio %s. %s ya se está ejecutando. - - - Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Error leyendo %s!. Todas las claves se han leido correctamente, pero los datos de transacciones o la libreta de direcciones pueden faltar o ser incorrectos. - - - Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. - Por favor, compruebe si la fecha y hora en su computadora son correctas! Si su reloj esta mal, %s no trabajara correctamente. - - - Please contribute if you find %s useful. Visit %s for further information about the software. - Contribuya si encuentra %s de utilidad. Visite %s para mas información acerca del programa. - - - The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct - La base de datos de bloques contiene un bloque que parece ser del futuro. Esto puede ser porque la fecha y hora de tu ordenador están mal ajustados. Reconstruye la base de datos de bloques solo si estas seguro de que la fecha y hora de tu ordenador estan ajustados correctamente. - - - Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain - No es posible reconstruir la base de datos a un estado anterior. Debe descargar de nuevo la cadena de bloques. - - - %s corrupt, salvage failed - %s corrupto. Fracasó la recuperacion - - - -maxmempool must be at least %d MB - -maxmempool debe ser por lo menos de %d MB - - - Cannot resolve -%s address: '%s' - No se puede resolver -%s direccion: '%s' - - - Change index out of range - Cambio de indice fuera de rango - - - Copyright (C) %i-%i - Copyright (C) %i-%i - - - Corrupted block database detected - Corrupción de base de datos de bloques detectada. - - - Do you want to rebuild the block database now? - ¿Quieres reconstruir la base de datos de bloques ahora? - - - Error initializing block database - Error al inicializar la base de datos de bloques - - - Error initializing wallet database environment %s! - Error al inicializar el entorno de la base de datos del monedero %s - - - Error loading %s - Error cargando %s - - - Error loading %s: Wallet corrupted - Error cargando %s: Monedero dañado - - - Error loading %s: Wallet requires newer version of %s - Error cargando %s: Monedero requiere un versión mas reciente de %s - - - Error loading block database - Error cargando base de datos de bloques - - - Error opening block database - Error al abrir base de datos de bloques. - - - Error: Disk space is low! - Error: ¡Espacio en disco bajo! - - - Failed to listen on any port. Use -listen=0 if you want this. - Ha fallado la escucha en todos los puertos. Use -listen=0 si desea esto. - - - Importing... - Importando... - - - Incorrect or no genesis block found. Wrong datadir for network? - Incorrecto o bloque de génesis no encontrado. Datadir equivocada para la red? - - - Initialization sanity check failed. %s is shutting down. - La inicialización de la verificación de validez falló. Se está apagando %s. - - - Invalid amount for -%s=<amount>: '%s' - Cantidad no valida para -%s=<amount>: '%s' - - - Invalid amount for -fallbackfee=<amount>: '%s' - Cantidad inválida para -fallbackfee=<amount>: '%s' - - - Loading banlist... - Cargando banlist... - - - Not enough file descriptors available. - No hay suficientes descriptores de archivo disponibles. - - - Prune cannot be configured with a negative value. - Pode no se puede configurar con un valor negativo. - - - Prune mode is incompatible with -txindex. - El modo recorte es incompatible con -txindex. - - - Rewinding blocks... - Verificando bloques... - - - The source code is available from %s. - El código fuente esta disponible desde %s. - - - Unable to bind to %s on this computer. %s is probably already running. - No se ha podido conectar con %s en este equipo. %s es posible que este todavia en ejecución. - - - Unsupported argument -benchmark ignored, use -debug=bench. - El argumento -benchmark no es soportado y ha sido ignorado, utiliza -debug=bench - - - Unsupported argument -debugnet ignored, use -debug=net. - Parámetros no compatibles -debugnet ignorados , use -debug = red. - - - Unsupported argument -tor found, use -onion. - Parámetros no compatibles -tor encontrados, use -onion . - - - User Agent comment (%s) contains unsafe characters. - El comentario del Agente de Usuario (%s) contiene caracteres inseguros. - - - Verifying blocks... - Verificando bloques... - - - Wallet needed to be rewritten: restart %s to complete - Es necesario reescribir el monedero: reiniciar %s para completar - - - Error: Listening for incoming connections failed (listen returned error %s) - Error: la escucha para conexiones entrantes falló (la escucha regresó el error %s) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Cantidad no válida para -maxtxfee=<amount>: '%s' (debe ser por lo menos la cuota de comisión mínima de %s para prevenir transacciones atascadas) - - - The transaction amount is too small to send after the fee has been deducted - Monto de transacción muy pequeña luego de la deducción por comisión - - - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain - Necesitas reconstruir la base de datos utilizando -reindex para volver al modo sin recorte. Esto volverá a descargar toda la cadena de bloques - - - Error reading from database, shutting down. - Error al leer la base de datos, cerrando. - - - Information - Información - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Cantidad inválida para -paytxfee=<amount>: '%s' (debe ser por lo menos %s) - - - Invalid netmask specified in -whitelist: '%s' - Máscara de red inválida especificada en -whitelist: '%s' - - - Need to specify a port with -whitebind: '%s' - Necesita especificar un puerto con -whitebind: '%s' - - - Reducing -maxconnections from %d to %d, because of system limitations. - Reduciendo -maxconnections de %d a %d, debido a limitaciones del sistema. - - - Signing transaction failed - Transacción falló - - - The transaction amount is too small to pay the fee - Cantidad de la transacción demasiado pequeña para pagar la comisión - - - This is experimental software. - Este software es experimental. - - - Transaction amount too small - Cantidad de la transacción demasiado pequeña - - - Transaction too large for fee policy - Operación demasiado grande para la política de tasas - - - Transaction too large - Transacción demasiado grande, intenta dividirla en varias. - - - Unable to bind to %s on this computer (bind returned error %s) - No es posible conectar con %s en este sistema (bind ha dado el error %s) - - - Warning - Aviso - - - Warning: unknown new rules activated (versionbit %i) - Advertencia: nuevas reglas desconocidas activadas (versionbit %i) - - - Zapping all transactions from wallet... - Eliminando todas las transacciones del monedero... - - - -maxtxfee is set very high! Fees this large could be paid on a single transaction. - -maxtxfee tiene un ajuste muy elevado! Comisiones muy grandes podrían ser pagadas en una única transaccion. - - - This is the transaction fee you may pay when fee estimates are not available. - Esta es la comisión que debe pagar cuando la estimación de comisión no esta disponible. - - - Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. - La longitud total de la cadena de versión de red ( %i ) supera la longitud máxima ( %i ) . Reducir el número o tamaño de uacomments . - - - Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Error: argumento -socks encontrado. El ajuste de la versión SOCKS ya no es posible, sólo proxies SOCKS5 son compatibles. - - - Unsupported argument -whitelistalwaysrelay ignored, use -whitelistrelay and/or -whitelistforcerelay. - El argumento no soportado -whitelistalwaysrelay ha sido ignorado, utiliza -whitelistrelay y/o -whitelistforcerelay. - - - Warning: Unknown block versions being mined! It's possible unknown rules are in effect - Advertencia: Se están minando versiones de bloques desconocidas! Es posible que normas desconocidas estén activas - - - Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. - Aviso: fichero de monedero corrupto, datos recuperados! Original %s guardado como %s en %s; si su balance de transacciones es incorrecto, debe restaurar desde una copia de seguridad. - - - %s is set very high! - %s es demasiado alto! - - - Starting network threads... - Iniciando funciones de red... - - - This is the minimum transaction fee you pay on every transaction. - Esta es la comisión minima que paga en cada transacción. - - - This is the transaction fee you will pay if you send a transaction. - Esta es la comisión que pagará si envia la transacción. - - - Transaction amounts must not be negative - Las cantidades de las transacciones no pueden ser negativas. - - - Transaction must have at least one recipient - La transacción debe tener al menos un beneficiario - - - Unknown network specified in -onlynet: '%s' - La red especificada en -onlynet '%s' es desconocida - - - Insufficient funds - Fondos insuficientes - - - Loading block index... - Cargando el índice de bloques... - - - Loading wallet... - Cargando monedero... - - - Cannot downgrade wallet - No se puede cambiar a una versión mas antigua el monedero - - - Rescanning... - Reexplorando... - - - Done loading - Se terminó de cargar - - - Error - Error - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_et_EE.ts b/src/qt/locale/bitcoin_et_EE.ts deleted file mode 100644 index 4778e9492b..0000000000 --- a/src/qt/locale/bitcoin_et_EE.ts +++ /dev/null @@ -1,779 +0,0 @@ - - - AddressBookPage - - Create a new address - Loo uus aadress - - - &New - &Uus - - - &Copy - &Kopeeri - - - Delete the currently selected address from the list - Kustuta valitud aadress nimekirjast - - - &Delete - &Kustuta - - - &Edit - &Muuda - - - - AddressTableModel - - Label - Silt - - - Address - Aadress - - - (no label) - (silt puudub) - - - - AskPassphraseDialog - - Enter passphrase - Sisesta parool - - - New passphrase - Uus parool - - - Repeat new passphrase - Korda uut parooli - - - Encrypt wallet - Krüpteeri rahakott - - - Decrypt wallet - Dekrüpteeri rahakott - - - Change passphrase - Muuda parooli - - - Are you sure you wish to encrypt your wallet? - Kas oled kindel, et soovid rahakoti krüpteerida? - - - Wallet encrypted - Rahakott krüpteeritud - - - Wallet encryption failed - Rahakoti krüpteerimine ebaõnnestus - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Rahakoti krüpteerimine ebaõnnestus sisemise vea tõttu. Sinu rahakotti ei krüpteeritud. - - - The supplied passphrases do not match. - Sisestatud paroolid ei kattu. - - - Wallet unlock failed - Rahakoti lahtilukustamine ebaõnnestus - - - Wallet decryption failed - Rahakoti dekrüpteerimine ebaõnnestus - - - Wallet passphrase was successfully changed. - Rahakoti parooli vahetus õnnestus. - - - - BanTableModel - - - BitcoinGUI - - Synchronizing with network... - Võrguga sünkroniseerimine... - - - &Overview - &Ülevaade - - - Quit application - Välju rakendusest - - - &Options... - &Valikud... - - - Open &URI... - Ava &URI... - - - Reindexing blocks on disk... - Kõvakettal olevate plokkide reindekseerimine... - - - Bitcoin - Bitcoin - - - Wallet - Rahakott - - - &Send - &Saada - - - &Show / Hide - &Näita / Peida - - - &File - &Fail - - - &Settings - &Seaded - - - &Help - &Abi - - - &Command-line options - &Käsurea valikud - - - %1 behind - %1 ajast maas - - - Transactions after this will not yet be visible. - Hilisemad transaktsioonid ei ole veel nähtavad. - - - Error - Viga - - - Warning - Hoiatus - - - Information - Informatsioon - - - - CoinControlDialog - - Amount: - Kogus - - - Amount - Kogus - - - Date - Kuupäev - - - Confirmations - Kinnitused - - - Confirmed - Kinnitatud - - - Copy address - Kopeeri aadress - - - Copy amount - Kopeeri kogus - - - Copy transaction ID - Kopeeri transaktsiooni ID - - - yes - jah - - - no - ei - - - (no label) - (silt puudub) - - - - EditAddressDialog - - &Address - &Aadress - - - New key generation failed. - Uue võtme genereerimine ebaõnnestus. - - - - FreespaceChecker - - name - nimi - - - - HelpMessageDialog - - version - versioon - - - Command-line options - Käsurea valikud - - - - Intro - - Welcome - Tere tulemast - - - Bitcoin - Bitcoin - - - Error - Viga - - - - ModalOverlay - - - OpenURIDialog - - - OptionsDialog - - Options - Valikud - - - MB - MB - - - &Network - &Võrk - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - &OK - &OK - - - Error - Viga - - - - OverviewPage - - Pending: - Ootel: - - - Total: - Kokku: - - - Recent transactions - Hiljutised transaktsioonid - - - - PaymentServer - - - PeerTableModel - - Sent - Saadetud - - - Received - Vastu võetud - - - - QObject - - Amount - Kogus - - - - QObject::QObject - - - QRImageWidget - - &Save Image... - &Salvesta Pilt... - - - &Copy Image - &Kopeeri Pilt - - - Save QR Code - Salvesta QR Kood - - - - RPCConsole - - &Information - &Informatsioon - - - General - Üldine - - - Network - Võrk - - - Name - Nimi - - - Number of connections - Ühenduste arv - - - Block chain - Blokiahel - - - Memory usage - Mälu kasutus - - - Received - Vastu võetud - - - Sent - Saadetud - - - Direction - Suund - - - Version - Versioon - - - Services - Teenused - - - Ping Time - Pingi Aeg - - - &Network Traffic - &Võrgu Liiklus - - - Clear console - Puhasta konsool - - - never - mitte kunagi - - - Inbound - Sisenev - - - Outbound - Väljuv - - - Yes - Jah - - - No - Ei - - - - ReceiveCoinsDialog - - &Amount: - &Kogus: - - - &Message: - &Sõnum: - - - Remove - Eemalda - - - Copy message - Kopeeri sõnum - - - Copy amount - Kopeeri kogus - - - - ReceiveRequestDialog - - QR Code - QR Kood - - - &Save Image... - &Salvesta Pilt... - - - Address - Aadress - - - Amount - Kogus - - - Label - Silt - - - Message - Sõnum - - - Wallet - Rahakott - - - - RecentRequestsTableModel - - Date - Kuupäev - - - Label - Silt - - - Message - Sõnum - - - (no label) - (silt puudub) - - - - SendCoinsDialog - - Amount: - Kogus - - - Choose... - Vali... - - - Copy amount - Kopeeri kogus - - - (no label) - (silt puudub) - - - - SendCoinsEntry - - Alt+A - Alt+A - - - Alt+P - Alt+P - - - - SendConfirmationDialog - - Yes - Jah - - - - ShutdownWindow - - - SignVerifyMessageDialog - - Alt+A - Alt+A - - - Alt+P - Alt+P - - - Signature - Allkiri - - - Please check the address and try again. - Palun kontrolli aadressi ja proovi uuesti. - - - Message signed. - Sõnum allkirjastatud. - - - The signature could not be decoded. - Allkirja ei õnnestunud dekodeerida. - - - Please check the signature and try again. - Palun kontrolli allkirja ja proovi uuesti. - - - Message verification failed. - Sõnumi verifitseerimine ebaõnnestus. - - - Message verified. - Sõnum verifitseeritud. - - - - SplashScreen - - [testnet] - [test võrk] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Status - Olek - - - Date - Kuupäev - - - Message - Sõnum - - - Comment - Kommentaar - - - Transaction ID - Transaktsiooni ID - - - Amount - Kogus - - - - TransactionDescDialog - - - TransactionTableModel - - Date - Kuupäev - - - Type - Tüüp - - - Label - Silt - - - (no label) - (silt puudub) - - - - TransactionView - - All - Kõik - - - Today - Täna - - - This month - Käimasolev kuu - - - Last month - Eelmine kuu - - - This year - Käimasolev aasta - - - Range... - Vahemik... - - - Copy address - Kopeeri aadress - - - Copy amount - Kopeeri summa - - - Copy transaction ID - Kopeeri transaktsiooni ID - - - Confirmed - Kinnitatud - - - Date - Kuupäev - - - Type - Tüüp - - - Label - Silt - - - Address - Aadress - - - ID - ID - - - Range: - Vahemik: - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - Backup Wallet - Varunda Rahakott - - - Wallet Data (*.dat) - Rahakoti Andmed (*.dat) - - - Backup Failed - Varundamine Ebaõnnestus - - - - bitcoin-core - - Bitcoin Core - Bitcoin Core - - - Information - Informatsioon - - - Warning - Hoiatus - - - Error - Viga - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_fr_CA.ts b/src/qt/locale/bitcoin_fr_CA.ts deleted file mode 100644 index 235af7b3ae..0000000000 --- a/src/qt/locale/bitcoin_fr_CA.ts +++ /dev/null @@ -1,183 +0,0 @@ - - - AddressBookPage - - Create a new address - Créer une nouvelle adresse - - - Copy the currently selected address to the system clipboard - Copier l'adresse surligné a votre presse-papier - - - &Delete - &Supprimer - - - - AddressTableModel - - - AskPassphraseDialog - - Enter passphrase - Entrer Mot de Passe - - - New passphrase - Nouveau Mot de passe - - - Repeat new passphrase - Répéter Mot de Passe - - - - BanTableModel - - - BitcoinGUI - - - CoinControlDialog - - (un)select all - Toute sélectionner - - - - EditAddressDialog - - &Label - Record - - - &Address - Addresse - - - - FreespaceChecker - - - HelpMessageDialog - - - Intro - - Welcome - Bienvenue - - - - ModalOverlay - - - OpenURIDialog - - - OptionsDialog - - - OverviewPage - - - PaymentServer - - - PeerTableModel - - - QObject - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - - ReceiveCoinsDialog - - - ReceiveRequestDialog - - - RecentRequestsTableModel - - - SendCoinsDialog - - - SendCoinsEntry - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - - TransactionDescDialog - - - TransactionTableModel - - Label - Record - - - (no label) - (pas de record) - - - - TransactionView - - Copy address - copier l'adresse - - - Comma separated file (*.csv) - Fichier séparé par une virgule (*.csv) - - - Label - Record - - - Address - Addresse - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - - bitcoin-core - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_fr_FR.ts b/src/qt/locale/bitcoin_fr_FR.ts deleted file mode 100644 index 10582127c4..0000000000 --- a/src/qt/locale/bitcoin_fr_FR.ts +++ /dev/null @@ -1,2314 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Faîtes un clique droit afin de modifier l'adresse ou l'étiquette - - - Create a new address - Créer une nouvelle adresse - - - &New - &Nouveau - - - Copy the currently selected address to the system clipboard - Copier l'adresse sélectionnée dans le presse-papiers - - - &Copy - &Copie - - - C&lose - F&ermer - - - Delete the currently selected address from the list - Supprimer l'adresse sélectionnée de la liste - - - Enter address or label to search - Entrez une adresse ou une étiquette à rechercher - - - Export the data in the current tab to a file - Exporter les données de l'onglet courant vers un fichier - - - &Export - &Exporter... - - - &Delete - &Supprimer - - - Choose the address to send coins to - Choisissez une adresse où envoyer les bitcoins - - - Choose the address to receive coins with - Choisissez une adresse où recevoir les bitcoins - - - C&hoose - C&hoisir - - - Sending addresses - Adresses d'envoi - - - Receiving addresses - Adresses de réception - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Ceci sont vos addresses Bitcoin pour envoyer vos paiements. Il faut toujours verifier les montants et l'addresse de reception avant de valider la transaction. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Ceci sont vos addresses Bitcoin pour recevoir vos paiements. Il est recommandé d'utiliser une nouvelle adresse de recepetion pour chaque transaction - - - &Copy Address - &Copie Adresse - - - Copy &Label - Copier &Étiquette - - - &Edit - &Éditer - - - Export Address List - Exporter la liste d'adresses - - - Comma separated file (*.csv) - Valeurs séparées par des virgules (*.csv) - - - Exporting Failed - Échec de l'export - - - There was an error trying to save the address list to %1. Please try again. - Une erreur s'est produite en enregistrant la list d'adresses à %1. Merci de reéssayer. - - - - AddressTableModel - - Label - Étiquette - - - Address - Adresse - - - (no label) - (aucune étiquette) - - - - AskPassphraseDialog - - Passphrase Dialog - Dialogue mot de passe - - - Enter passphrase - Entrez la phrase de passe - - - New passphrase - Nouvelle phrase de passe - - - Repeat new passphrase - Répétez la phrase de passe - - - Show password - Montrer le mot de passe - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Entrez une nouvelle phrase de passe pour le porte-monnaie.<br/>Veuillez utiliser une phrase de <b>10 caractères aléatoire ou plus</b> ou bien de <b>huit mots ou plus</b>. - - - Encrypt wallet - Chiffrer le porte-monnaie - - - This operation needs your wallet passphrase to unlock the wallet. - Cette operation nécessite la phrase clé de votre porte-monnaie pour le déverouiller - - - Unlock wallet - Déverrouiller le porte-monnaie - - - This operation needs your wallet passphrase to decrypt the wallet. - Cette opération nécessite la phrase clé de votre porte-monnaie pour le décrypter. - - - Decrypt wallet - Décrypter le porte-monnaie - - - Change passphrase - Changer la phrase de passe - - - Enter the old passphrase and new passphrase to the wallet. - Entrez l'ancien mot de passe et le nouveau mot de passe pour le portefeuille - - - Confirm wallet encryption - Confirmer le chiffrement du porte-monnaie - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Attention : Si vous chiffrez votre portefeuille et que vous perdez votre mot de passe vous <b> PERDREZ TOUS VOS BITCOINS</b> ! - - - Are you sure you wish to encrypt your wallet? - Êtes-vous sûr de de vouloir crypter votre portefeuille ? - - - Wallet encrypted - Portefeuille chiffré - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 va à présent se fermer pour terminer la procédure de cryptage. N'oubliez pas que le chiffrement de votre porte-monnaie ne peut pas fournir une protection totale contre le vol par des logiciels malveillants qui infecteraient votre ordinateur. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANT: Toute sauvegarde préalable de votre porte-monnais devrait être emplacée par le fichier nouvellement généré et encrypté. - - - Wallet encryption failed - Le chiffrement du porte-monnaie a échoué - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Le chiffrement du porte-monnaie a échoué en raison d'une erreur interne. Votre porte-monnaie n'a pas été chiffré. - - - The supplied passphrases do not match. - Les phrases de passe entrées ne correspondent pas. - - - Wallet unlock failed - Le déverrouillage du porte-monnaie a échoué - - - The passphrase entered for the wallet decryption was incorrect. - La phrase de passe entrée pour décrypter le porte-monnaie était incorrecte. - - - Wallet decryption failed - Le décryptage du porte-monnaie a échoué - - - Wallet passphrase was successfully changed. - Le changement du mot de passe du portefeuille à été effectué avec succès. - - - Warning: The Caps Lock key is on! - Attention : La touche majuscule est enfoncé. - - - - BanTableModel - - IP/Netmask - IP/Masque de sous réseau - - - Banned Until - Banni jusque - - - - BitcoinGUI - - Sign &message... - Signer un &message... - - - Synchronizing with network... - Synchronisation avec le réseau... - - - &Overview - &Vue d'ensemble - - - Node - Nœud - - - Show general overview of wallet - Affiche une vue d'ensemble du porte-monnaie - - - &Transactions - &Transactions - - - Browse transaction history - Permet de parcourir l'historique des transactions - - - E&xit - Qui&tter - - - Quit application - Quitter l'application - - - &About %1 - &À propos de %1 - - - Show information about %1 - Afficher les informations sur %1 - - - About &Qt - À propos de &Qt - - - Show information about Qt - Afficher des informations sur Qt - - - &Options... - &Options... - - - Modify configuration options for %1 - Modifier les options de configuration pour %1 - - - &Encrypt Wallet... - &Chiffrer le portefeuille - - - &Backup Wallet... - &Sauvegarder le portefeuille - - - &Change Passphrase... - &Modifier le mot de passe - - - &Sending addresses... - &Adresses d'envoi - - - &Receiving addresses... - &Adresses de réception - - - Open &URI... - Ouvrir &URI - - - Click to disable network activity. - Cliquez pour désactiver l'activité du réseau. - - - Network activity disabled. - Activité réseau désactivée - - - Click to enable network activity again. - Cliquez pour réactiver l'activité réseau - - - Syncing Headers (%1%)... - Synchronisation des entêtes (%1%)... - - - Reindexing blocks on disk... - Réindexer les blocs sur le disque... - - - Send coins to a Bitcoin address - Envoyer des pièces à une adresse Bitcoin - - - Backup wallet to another location - Sauvegarder le porte-monnaie à un autre emplacement - - - Change the passphrase used for wallet encryption - Modifier la phrase de passe utilisée pour le cryptage du porte-monnaie - - - &Debug window - &Fenêtre de débogage - - - Open debugging and diagnostic console - Ouvrir la console de débogage et de diagnostic - - - &Verify message... - &Vérification du message - - - Bitcoin - Bitcoin - - - Wallet - Portefeuille - - - &Send - &Envoyer - - - &Receive - &Réception - - - &Show / Hide - &Montrer / Cacher - - - Show or hide the main Window - Montrer ou cacher la fenêtre principale - - - Encrypt the private keys that belong to your wallet - Crypter les clé privées qui appartiennent votre portefeuille - - - Sign messages with your Bitcoin addresses to prove you own them - Signer vos messages avec vos adresses Bitcoin pour prouver que vous les détenez - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Vérifier les messages pour s'assurer qu'ils soient signés avec les adresses Bitcoin spécifiées - - - &File - &Fichier - - - &Settings - &Réglages - - - &Help - &Aide - - - Tabs toolbar - Barre d'outils des onglets - - - Request payments (generates QR codes and bitcoin: URIs) - Demander des paiements (générer QR codes et bitcoin: URIs) - - - Show the list of used sending addresses and labels - Montrer la liste des adresses d'envois utilisées et les étiquettes - - - Show the list of used receiving addresses and labels - Afficher la liste des labels et adresses de réception utilisées - - - Open a bitcoin: URI or payment request - Ouvrir un bitcoin: URI ou demande de paiement - - - &Command-line options - &Options de ligne de commande - - - %n active connection(s) to Bitcoin network - %n connexion active avec le réseau Bitcoin%n connexions actives avec le réseau Bitcoin - - - Indexing blocks on disk... - Indexation des blocs sur le disque... - - - Processing blocks on disk... - Traitement des blocs sur le disque - - - %1 behind - en retard de %1 - - - Last received block was generated %1 ago. - Le dernier bloc reçu a été généré %1. - - - Transactions after this will not yet be visible. - Les transactions ne seront plus visible après ceci. - - - Error - Erreur - - - Warning - Attention - - - Information - Information - - - Up to date - À jour - - - Show the %1 help message to get a list with possible Bitcoin command-line options - Afficher le %1 message d'aide pour récupérer une liste des options de ligne de commande Bitcoin - - - %1 client - %1 client - - - Connecting to peers... - Connexion au pairs... - - - Catching up... - Rattrapage... - - - Date: %1 - - Date: %1 - - - - Amount: %1 - - Montant:%1 - - - - Type: %1 - - Type: %1 - - - - Label: %1 - - Étiquette: %1 - - - - Address: %1 - - Adresse: %1 - - - - Sent transaction - Transaction envoyée - - - Incoming transaction - Transaction entrante - - - HD key generation is <b>enabled</b> - Génération de clé HD <b>activée</b> - - - HD key generation is <b>disabled</b> - Génération de clé HD <b>désactivée</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Le porte-monnaie est <b>chiffré</b> et est actuellement <b>déverrouillé</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Le porte-monnaie est <b>chiffré</b> et est actuellement <b>verrouillé</b> - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Une erreur fatale a eu lieu. Bitcoin ne peut plus continuer en toute sécurité et va s'éteindre - - - - CoinControlDialog - - Coin Selection - Sélection de pièce - - - Quantity: - Quantité: - - - Bytes: - Octets: - - - Amount: - Montant : - - - Fee: - Frais: - - - Dust: - Poussière: - - - After Fee: - Après frais: - - - Change: - Change: - - - (un)select all - (dé)sélectionné tout: - - - Tree mode - Mode arbre - - - List mode - Mode list - - - Amount - Montant - - - Received with label - Reçu avec : - - - Received with address - Reçue avec l'adresse - - - Date - Date - - - Confirmations - Confirmations - - - Confirmed - Confirmée - - - Copy address - Copier l'adresse - - - Copy label - Copier l'étiquette - - - Copy amount - Copier le montant - - - Copy transaction ID - Copier l'ID de transaction - - - Lock unspent - Verrouiller les non dépensés - - - Unlock unspent - Déverrouiller les non dépensés - - - Copy quantity - Copier la quantité - - - Copy fee - Copier les frais - - - Copy after fee - Copier après les frais - - - Copy bytes - Copier les octets - - - Copy dust - Copier la poussière - - - Copy change - Copier changement - - - (%1 locked) - (%1 verrouillé) - - - yes - oui - - - no - non - - - This label turns red if any recipient receives an amount smaller than the current dust threshold. - Cette étiquette devient rouge si un bénéficiaire reçoit une somme plus basse que la limite actuelle de poussière. - - - Can vary +/- %1 satoshi(s) per input. - Peut varier de +/- %1 satoshi(s) par entrée. - - - (no label) - (aucune étiquette) - - - change from %1 (%2) - changement de %1 (%2) - - - (change) - (changement) - - - - EditAddressDialog - - Edit Address - Éditer l'adresse - - - &Label - &Étiquette - - - The label associated with this address list entry - L'étiquette associée à cette entrée du carnet d'adresses - - - The address associated with this address list entry. This can only be modified for sending addresses. - L'adresse associée avec cette entrée du carnet d'adresses. Ne peut être modifiée que pour les adresses d'envoi. - - - &Address - &Adresse - - - New sending address - Nouvelle adresse d'envoi - - - Edit receiving address - Éditer l'adresse de réception - - - Edit sending address - Éditer l'adresse d'envoi - - - The entered address "%1" is not a valid Bitcoin address. - L'adresse entrée "%1" n'est pas une adresse Bitcoin valide. - - - Could not unlock wallet. - Impossible de déverrouiller le porte-monnaie. - - - New key generation failed. - Échec de la génération de la nouvelle clef. - - - - FreespaceChecker - - A new data directory will be created. - Un nouveau répertoire de données sera créé. - - - name - nom - - - Directory already exists. Add %1 if you intend to create a new directory here. - Le répertoire existe déjà. Ajouter %1 si vous voulez créer un nouveau répertoire ici. - - - Path already exists, and is not a directory. - Le chemin existe déjà et ce n'est pas un répertoire. - - - Cannot create data directory here. - Impossible de créer un répertoire ici. - - - - HelpMessageDialog - - version - version - - - (%1-bit) - (%1-bit) - - - About %1 - A propos %1 - - - Command-line options - Options de ligne de commande - - - - Intro - - Welcome - Bienvenue - - - Welcome to %1. - Bienvenue sur %1. - - - Use the default data directory - Utiliser le répertoire par défaut - - - Use a custom data directory: - Utiliser votre propre répertoire - - - Bitcoin - Bitcoin - - - At least %1 GB of data will be stored in this directory, and it will grow over time. - Environ %1 GB de données seront stockées dans ce répertoire, et cela augmentera au cours du temps. - - - Approximately %1 GB of data will be stored in this directory. - Environ %1 GB de données seront stockées dans ce répertoire. - - - The wallet will also be stored in this directory. - Le porte-monnaie sera aussi stocké dans ce répertoire. - - - Error: Specified data directory "%1" cannot be created. - Erreur: Le répertoire de données "%1" n'a pas pu être créé. - - - Error - Erreur - - - - ModalOverlay - - Form - Formulaire - - - Hide - Cacher - - - - OpenURIDialog - - Open URI - Ouvrir URI - - - Open payment request from URI or file - Ouvrir une demande de paiement depuis une URI ou un fichier - - - URI: - URI: - - - Select payment request file - Sélectionner un fichier de demande de paiement - - - Select payment request file to open - Sélectionnez le fichier de demande de paiement à ouvrir - - - - OptionsDialog - - Options - Options - - - &Main - &Principal - - - Size of &database cache - Taille du cache de la base de données. - - - MB - MO - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Adresse IP du proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - - - Reset all client options to default. - Réinitialiser toutes les options du client par défaut. - - - &Reset Options - &Options de réinitialisation - - - &Network - &Réseau - - - Expert - Expert - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Ouvrir le port du client Bitcoin automatiquement sur le routeur. Cela ne fonctionne que si votre routeur supporte l'UPnP et si la fonctionnalité est activée. - - - Map port using &UPnP - Ouvrir le port avec l'&UPnP - - - Proxy &IP: - Proxy &IP: - - - &Port: - &Port: - - - Port of the proxy (e.g. 9050) - Port du proxy (e.g. 9050) - - - Used for reaching peers via: - Utilisé pour contacter des pairs via: - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - &Window - &Fenêtre - - - &Minimize to the tray instead of the taskbar - &Minimiser dans la barre système au lieu de la barre des tâches - - - M&inimize on close - Mi&nimiser lors de la fermeture - - - &Display - &Afficher - - - User Interface &language: - Interface utilisateur &langage: - - - &OK - &OK - - - &Cancel - &Annuler - - - default - defaut - - - none - aucun - - - Confirm options reset - Confirmer les options de réinitialisation - - - Client restart required to activate changes. - Redémarrage du client nécessaire pour activer les changements. - - - Error - Erreur - - - This change would require a client restart. - Ce changement nécessiterait un redémarrage du client. - - - The supplied proxy address is invalid. - L'adresse du proxy est invalide. - - - - OverviewPage - - Form - Formulaire - - - Watch-only: - Regarder seulement: - - - Available: - Disponible: - - - Pending: - En attente: - - - Immature: - Immature: - - - Balances - Balances - - - Total: - Total: - - - Your current total balance - Votre balance totale courante - - - Spendable: - Dépensable: - - - Recent transactions - Transactions récentes - - - - PaymentServer - - Payment request error - Erreur lors de la requête de paiement - - - Invalid payment address %1 - Adresse de paiement invalide %1 - - - Payment request rejected - Requête de paiement rejetée - - - Payment request expired. - Demande de paiement expirée. - - - Payment request is not initialized. - La demande de paiement n'a pas été initialisée. - - - Invalid payment request. - Demande de paiement invalide. - - - Refund from %1 - Remboursement de %1 - - - Bad response from server %1 - Mauvaise réponse du serveur %1 - - - Network request error - Erreur de demande de réseau - - - - PeerTableModel - - User Agent - Agent Utilisateur - - - Node/Service - Nœud/Service - - - Sent - Envoyé - - - Received - Reçu - - - - QObject - - Amount - Montant - - - Enter a Bitcoin address (e.g. %1) - Entrer une adresse Bitcoin (e.g. %1) - - - %1 d - %1 j - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - None - Aucun - - - N/A - N/A - - - %1 ms - %1 ms - - - %1 and %2 - %1 et %2 - - - %1 B - %1 O - - - %1 KB - %1 KO - - - %1 MB - %1 MO - - - %1 GB - %1 GO - - - unknown - inconnu - - - - QObject::QObject - - - QRImageWidget - - &Save Image... - &Sauvegarder image - - - &Copy Image - &Copier image - - - Save QR Code - Sauvegarder QR code - - - PNG Image (*.png) - Image PNG (*.png) - - - - RPCConsole - - N/A - N/A - - - Client version - Version du client - - - &Information - &Information - - - Debug window - Fenêtre de débogage - - - General - Général - - - Using BerkeleyDB version - Version BerkeleyDButilisée - - - Startup time - Le temps de démarrage - - - Network - Réseau - - - Name - Nom - - - Number of connections - Nombre de connexions - - - Block chain - Chaîne de bloc - - - Current number of blocks - Nombre courant de blocs - - - Memory Pool - Mémoire du pool - - - Current number of transactions - Nombre courant de transactions - - - Memory usage - Usage de la mémoire - - - Received - Reçu - - - Sent - Envoyé - - - &Peers - &Pairs - - - Banned peers - Pairs bannis - - - Whitelisted - Autorisé par la liste - - - Direction - Direction - - - Version - Version - - - Starting Block - Bloc de départ - - - Synced Blocks - Blocs Synchronisés - - - User Agent - Agent Utilisateur - - - Services - Services - - - Ban Score - Score de ban - - - Connection Time - Temps de connexion - - - Last Send - Dernier envoyé - - - Last Receive - Dernier reçu - - - Ping Time - Temps du ping - - - Ping Wait - Attente du ping - - - &Open - &Ouvert - - - &Console - &Console - - - &Network Traffic - &Trafic réseau - - - Totals - Totaux - - - In: - Entrée: - - - Out: - Sortie: - - - Debug log file - Fichier du journal de débogage - - - Clear console - Nettoyer la console - - - 1 &hour - 1 &heure - - - 1 &day - 1 &jour - - - 1 &week - 1 &semaine - - - 1 &year - 1 &an - - - via %1 - via %1 - - - never - jamais - - - Yes - Oui - - - No - Non - - - Unknown - Inconnu - - - - ReceiveCoinsDialog - - &Amount: - Montant : - - - &Label: - &Étiquette : - - - &Message: - Message : - - - Clear all fields of the form. - Nettoyer tous les champs du formulaire. - - - Clear - Nettoyer - - - Requested payments history - Historique des demandes de paiements. - - - &Request payment - &Demande de paiement - - - Show - Montrer - - - Remove - Retirer - - - Copy label - Copier l'étiquette - - - Copy message - Copier message - - - Copy amount - Copier le montant - - - - ReceiveRequestDialog - - QR Code - QR Code - - - Copy &URI - Copier &URI - - - Copy &Address - Copier &Adresse - - - &Save Image... - &Sauvegarder image - - - Request payment to %1 - Demande de paiement à %1 - - - Payment information - Informations de paiement - - - URI - URI - - - Address - Adresse - - - Amount - Montant - - - Label - Étiquette - - - Message - Message - - - Wallet - Portefeuille - - - - RecentRequestsTableModel - - Date - Date - - - Label - Étiquette - - - Message - Message - - - (no label) - (aucune étiquette) - - - (no message) - (pas de message) - - - Requested - Demandé - - - - SendCoinsDialog - - Send Coins - Envoyer des pièces - - - Inputs... - Sorties... - - - automatically selected - Automatiquement sélectionné - - - Insufficient funds! - Fonds insuffisants - - - Quantity: - Quantité: - - - Bytes: - Octets: - - - Amount: - Montant : - - - Fee: - Frais: - - - After Fee: - Après frais: - - - Change: - Change: - - - Transaction Fee: - Frais de transaction - - - Choose... - Choisir... - - - per kilobyte - par kilo octet - - - Hide - Cacher - - - Recommended: - Recommandé: - - - Send to multiple recipients at once - Envoyer des pièces à plusieurs destinataires à la fois - - - Clear all fields of the form. - Nettoyer tous les champs du formulaire. - - - Dust: - Poussière: - - - Clear &All - Nettoyer &Tout - - - Balance: - Solde : - - - Confirm the send action - Confirmer l'action d'envoi - - - S&end - E&voyer - - - Copy quantity - Copier la quantité - - - Copy amount - Copier le montant - - - Copy fee - Copier les frais - - - Copy after fee - Copier après les frais - - - Copy bytes - Copier les octets - - - Copy dust - Copier la poussière - - - Copy change - Copier changement - - - %1 to %2 - %1 à %2 - - - Are you sure you want to send? - Êtes-vous sûr de vouloir envoyer ? - - - or - ou - - - Transaction fee - Frais de transaction - - - Confirm send coins - Confirmer l'envoi des pièces - - - The amount to pay must be larger than 0. - Le montant à payer doit être supérieur à 0. - - - The amount exceeds your balance. - Le montant excède votre balance. - - - Transaction creation failed! - Échec de la création de la transaction - - - Payment request expired. - Demande de paiement expirée. - - - Pay only the required fee of %1 - Payer seulement les frais obligatoire de %1 - - - Warning: Invalid Bitcoin address - Attention: Adresse Bitcoin Invalide - - - (no label) - (aucune étiquette) - - - - SendCoinsEntry - - A&mount: - &Montant : - - - Pay &To: - Payer &à : - - - &Label: - &Étiquette : - - - Choose previously used address - Choisir une adresse précédemment utilisée - - - This is a normal payment. - C'est un paiement normal. - - - Alt+A - Alt+A - - - Paste address from clipboard - Coller une adresse depuis le presse-papiers - - - Alt+P - Alt+P - - - Remove this entry - Retirer cette entrée - - - Message: - Message : - - - Pay To: - Payer à : - - - Memo: - Memo: - - - Enter a label for this address to add it to your address book - Entrez une étiquette pour cette adresse afin de l'ajouter à votre carnet d'adresses - - - - SendConfirmationDialog - - Yes - Oui - - - - ShutdownWindow - - - SignVerifyMessageDialog - - &Sign Message - &Signer le message - - - Choose previously used address - Choisir une adresse précédemment utilisée - - - Alt+A - Alt+A - - - Paste address from clipboard - Coller une adresse depuis le presse-papiers - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Entrez ici le message que vous désirez signer - - - Signature - Signature - - - Copy the current signature to the system clipboard - Copier l'adresse courante dans le presse papier - - - Sign &Message - &Signer le message - - - Clear &All - Nettoyer &Tout - - - &Verify Message - &Vérifier message - - - Verify &Message - Vérifier &Message - - - The entered address is invalid. - L'adresse entrée est invalide. - - - Please check the address and try again. - Vérifiez l'adresse et réessayer. - - - Message signed. - Message signé. - - - Please check the signature and try again. - Vérifiez la signature et réessayer. - - - Message verification failed. - Vérification du message échouée. - - - Message verified. - Message vérifié. - - - - SplashScreen - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KO/s - - - - TransactionDesc - - Open until %1 - Ouvert jusqu'à %1 - - - abandoned - abandoné - - - %1/unconfirmed - %1/non confirmée - - - %1 confirmations - %1 confirmations - - - Status - État - - - Date - Date - - - Source - Source - - - Generated - Généré - - - From - De - - - unknown - inconnu - - - To - Á - - - own address - Votre adresse - - - watch-only - Lecture uniquement - - - label - Étiquette - - - Credit - Crédit - - - not accepted - Pas accepté - - - Debit - Débit - - - Total debit - Débit total - - - Total credit - Crédit total - - - Transaction fee - Frais de transaction - - - Net amount - Montant net - - - Message - Message - - - Comment - Commentaire - - - Transaction ID - ID de transaction - - - Merchant - Marchant - - - Debug information - Information de débogage - - - Transaction - Transaction - - - Inputs - Entrées - - - Amount - Montant - - - true - vrai - - - false - faux - - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Ce panneau affiche une description détaillée de la transaction - - - - TransactionTableModel - - Date - Date - - - Type - Type - - - Label - Étiquette - - - Open until %1 - Ouvert jusqu'à %1 - - - Unconfirmed - Non Confirmé - - - Abandoned - Abandoné - - - Confirmed (%1 confirmations) - Confirmée (%1 confirmations) - - - Generated but not accepted - Généré mais pas accepté - - - Received with - Reçues avec - - - Received from - Reçue de - - - Sent to - Envoyées à - - - Payment to yourself - Paiement à vous-même - - - Mined - Extraction - - - watch-only - Lecture uniquement - - - (n/a) - (indisponible) - - - (no label) - (aucune étiquette) - - - Transaction status. Hover over this field to show number of confirmations. - État de la transaction. Laissez le pointeur de la souris sur ce champ pour voir le nombre de confirmations. - - - Date and time that the transaction was received. - Date et heure de réception de la transaction. - - - Type of transaction. - Type de transaction. - - - Amount removed from or added to balance. - Montant ajouté au ou enlevé du solde. - - - - TransactionView - - All - Toutes - - - Today - Aujourd'hui - - - This week - Cette semaine - - - This month - Ce mois - - - Last month - Mois dernier - - - This year - Cette année - - - Range... - Intervalle... - - - Received with - Reçues avec - - - Sent to - Envoyées à - - - To yourself - À vous-même - - - Mined - Extraction - - - Other - Autres - - - Min amount - Montant min - - - Copy address - Copier l'adresse - - - Copy label - Copier l'étiquette - - - Copy amount - Copier le montant - - - Copy transaction ID - Copier l'ID de transaction - - - Edit label - Éditer l'étiquette - - - Show transaction details - Afficher les détails de la transaction - - - Export Transaction History - Exporter l'historique des transactions - - - Comma separated file (*.csv) - Valeurs séparées par des virgules (*.csv) - - - Confirmed - Confirmée - - - Date - Date - - - Type - Type - - - Label - Étiquette - - - Address - Adresse - - - ID - ID - - - Exporting Failed - Échec de l'export - - - Exporting Successful - Export réalisé avec sucés - - - Range: - Intervalle : - - - to - à - - - - UnitDisplayStatusBarControl - - - WalletFrame - - No wallet has been loaded. - Aucun portefeuille a été chargé. - - - - WalletModel - - Send Coins - Envoyer des pièces - - - - WalletView - - &Export - &Exporter... - - - Export the data in the current tab to a file - Exporter les données de l'onglet courant vers un fichier - - - Backup Wallet - Sauvegarder le porte-monnaie - - - Wallet Data (*.dat) - Données de porte-monnaie (*.dat) - - - Backup Failed - La sauvegarde a échoué - - - Backup Successful - Sauvegarde réussie - - - - bitcoin-core - - Unable to start HTTP server. See debug log for details. - Impossible de démarrer le serveur HTTP. Voir le journal de débogage pour plus de détails. - - - Bitcoin Core - Bitcoin Core - - - Importing... - -Importation ... - - - Verifying blocks... - Vérifications des blocs... - - - Information - Information - - - Invalid -onion address or hostname: '%s' - Adresse ou nom d'hôte -onion invalide: '%s' - - - Invalid -proxy address or hostname: '%s' - Adresse -proxy invalide: '%s' - - - Signing transaction failed - Transaction signée échouée - - - This is experimental software. - C'est un logiciel expérimental. - - - Transaction amount too small - Montant de la transaction trop bas - - - Transaction too large for fee policy - Montant de la transaction trop élevé pour la politique de frais - - - Transaction too large - Transaction trop grande - - - Warning - Attention - - - Insufficient funds - Fonds insuffisants - - - Loading block index... - Chargement de l'index des blocs... - - - Loading wallet... - Chargement du porte-monnaie... - - - Cannot downgrade wallet - Vous ne pouvez pas rétrograder votre portefeuille - - - Rescanning... - Nouvelle analyse... - - - Done loading - Chargement terminé - - - Error - Erreur - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_he_IL.ts b/src/qt/locale/bitcoin_he_IL.ts deleted file mode 100644 index 927b6184d8..0000000000 --- a/src/qt/locale/bitcoin_he_IL.ts +++ /dev/null @@ -1,235 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - קליל ימני כדי לערוך כתובת או תווית - - - Create a new address - צור כתובת חדשה - - - &New - וחדש - - - Copy the currently selected address to the system clipboard - העתק את הכתובת הנבחרת ללוח - - - &Copy - והעתק - - - C&lose - וסגור - - - Delete the currently selected address from the list - מחק את הכתובת הנבחרת מהרשימה - - - Export the data in the current tab to a file - יצא את המידע בעמוד הנוכחי לקובץ - - - &Export - ייצוא - - - &Delete - מחק - - - Choose the address to send coins to - בחר את הכתובת כדי לשלוח אליה מטבעות - - - Choose the address to receive coins with - בחר את הכתובת כדי לקבל אליה מטבעות - - - C&hoose - בחר - - - Sending addresses - שולח כתובות - - - Receiving addresses - מקבל כתובות - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - אלו הן כתובות הביטקוין שלך לשליחת תשלומים. תמיד בדוק את כתובת הארנק המקבל לפני שליחת מטבעות - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - אלו הן כתובות הביטקוין שלך לקבלת תשלומים. מומלץ להשתמש בכתובת חדשה בכל העברת מטבעות - - - - AddressTableModel - - - AskPassphraseDialog - - - BanTableModel - - - BitcoinGUI - - Bitcoin - ביטקוין - - - Wallet - ארנק - - - - CoinControlDialog - - Copy amount - העתק סכום - - - Copy quantity - העתק כמות - - - - EditAddressDialog - - - FreespaceChecker - - - HelpMessageDialog - - - Intro - - Bitcoin - ביטקוין - - - - ModalOverlay - - - OpenURIDialog - - - OptionsDialog - - - OverviewPage - - - PaymentServer - - - PeerTableModel - - - QObject - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - - ReceiveCoinsDialog - - Copy amount - העתק סכום - - - - ReceiveRequestDialog - - Wallet - ארנק - - - - RecentRequestsTableModel - - - SendCoinsDialog - - Copy quantity - העתק כמות - - - Copy amount - העתק סכום - - - - SendCoinsEntry - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - - TransactionDescDialog - - - TransactionTableModel - - - TransactionView - - Copy amount - העתק סכום - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - &Export - ייצוא - - - Export the data in the current tab to a file - יצא את המידע בעמוד הנוכחי לקובץ - - - - bitcoin-core - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_hu_HU.ts b/src/qt/locale/bitcoin_hu_HU.ts deleted file mode 100644 index a0bd9aa43b..0000000000 --- a/src/qt/locale/bitcoin_hu_HU.ts +++ /dev/null @@ -1,2685 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - A cím vagy a címke jobb gombbal szerkeszthető - - - Create a new address - Új cím létrehozása - - - &New - &Új - - - Copy the currently selected address to the system clipboard - A jelenleg kiválasztott cím másolása a rendszer vágólapjára - - - &Copy - &Másolás - - - C&lose - &Bezárás - - - Delete the currently selected address from the list - A jelenleg kiválasztott cím eltávolítása a listából - - - Export the data in the current tab to a file - A jelenlegi fülön található adat exportálása fájlba - - - &Export - &Export - - - &Delete - &Törlés - - - Choose the address to send coins to - Válasszon címet a küldéshez - - - Choose the address to receive coins with - Válasszon címet a fogadáshoz - - - C&hoose - &Kiválasztás - - - Sending addresses - Küldő címek - - - Receiving addresses - Fogadó címek - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Ezek az Ön kifizetéseinek küldésekor használandó Bitcoin-címek. Fizetés indítása előtt mindig ellenőrizze az összeget és a fogadó címet! - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Ezek az Ön fizetéseinek fogadásakor használandó Bitcoin-címek. Célszerű minden tranzakcióhoz új fogadó címet használni. - - - &Copy Address - &Cím másolása - - - Copy &Label - Címke &másolása - - - &Edit - &Szerkesztés - - - Export Address List - Címlista exportálása - - - Comma separated file (*.csv) - Vesszővel elválasztott adatok (*.csv) - - - Exporting Failed - Sikertelen export - - - There was an error trying to save the address list to %1. Please try again. - Hiba történt a címlista %1-re történő mentése során. Kérjük, próbálja újra! - - - - AddressTableModel - - Label - Címke - - - Address - Cím - - - (no label) - (nincs címke) - - - - AskPassphraseDialog - - Passphrase Dialog - Jelszóhalmaz Párbeszédablak - - - Enter passphrase - Adja meg jelmondatát - - - New passphrase - Új jelmondat - - - Repeat new passphrase - Ismételje meg jelmondatát - - - Show password - Jelszó megjelenítése - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Adja meg az új jelszóhalmazt a pénztárcájához. <br/>Kérem a jelszóhalmaz álljon<b>tíz vagy több véletlenszerű karakterből</b>, vagy <b>nyolc vagy több szóból</b>. - - - Encrypt wallet - Tárca kódolása - - - This operation needs your wallet passphrase to unlock the wallet. - Ehhez a művelethez szükség lesz a pénztárcájához tartozó jelszóhalmazra, hogy hozzáférjen a pénztárcához. - - - Unlock wallet - Tárca feloldása - - - This operation needs your wallet passphrase to decrypt the wallet. - Ehhez a művelethez szükség lesz a pénztárcájához tartozó jelszóhalmazra, hogy feloldja a pénztárca titkosítását. - - - Decrypt wallet - Tárca dekódolása - - - Change passphrase - Jelmondat megváltoztatása - - - Enter the old passphrase and new passphrase to the wallet. - Adja meg a régi jelszóhalmazt és az új jelszóhalmazt a pénztárcájához. - - - Confirm wallet encryption - Tárca titkosításának jóváhagyása - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Figyelem: Ha titkosítja a pénztárcáját, és elveszíti a jelszóhalmazt, akkor <b>NEM TUD TÖBBET HOZZÁFÉRNI A BITCOINJAIHOZ</b>! - - - Are you sure you wish to encrypt your wallet? - Biztosan titkosítani kívánja a tárcáját? - - - Wallet encrypted - Tárca titkosítva - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 Most az ablak bezáródik, amíg befejeződik a titkosítási folyamat. Kérem vegye figyelembe, hogy a pénztárca titkosítása nem jelenti a bitcoinjai teljes körű védelmét, a számítógépét esetlegesen megfertőző kártékony programoktól. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - FONTOS: A régebbi biztonsági mentéseket frissítse az új, titkosított pénztárca fájllal. Biztonsági okokból, a korábbi titkosítatlan pénztárca fájlok nem használhatóak az új titkosított pénztárcával. - - - Wallet encryption failed - Tárca titkosítása sikertelen - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - A pénztárca titkosítása programhiba miatt meghiúsult . A pénztárca nem titkosított. - - - The supplied passphrases do not match. - A megadott jelszóhalmazok nem egyeznek. - - - Wallet unlock failed - Tárca feloldása sikertelen - - - The passphrase entered for the wallet decryption was incorrect. - A jelszóhalmaz, amelyet megadott a pénztárca titkosításának a feloldásához, helytelen. - - - Wallet decryption failed - Tárca dekódolása sikertelen - - - Wallet passphrase was successfully changed. - A tárca jelmondata sikeresen megváltozott. - - - Warning: The Caps Lock key is on! - Figyelmeztetés: A Caps Lock billentyű benyomva! - - - - BanTableModel - - IP/Netmask - IP/Netmask - - - Banned Until - Kitiltva a megadott időpontig - - - - BitcoinGUI - - Sign &message... - Üzenet &aláírása - - - Synchronizing with network... - Szinkronizálás a hálózattal... - - - &Overview - Á&ttekintés - - - Node - Csomópont - - - Show general overview of wallet - A pénztárca általános áttekintése - - - &Transactions - &Tranzakciók - - - Browse transaction history - Tranzakció-történet böngészése - - - E&xit - Ki&lépés - - - Quit application - Alkalmazás bezárása - - - &About %1 - &Kapcsolat %1 - - - Show information about %1 - További információ %1 - - - About &Qt - Kapcsolat &Qt - - - Show information about Qt - További információ Qt - - - &Options... - &Beállítások... - - - Modify configuration options for %1 - A %1 konfigurációs beállításainak módosítása - - - &Encrypt Wallet... - &Tárca titkosítása - - - &Backup Wallet... - Tárca &biztonsági másolása - - - &Change Passphrase... - &Jelszóhalmaz megváltoztatása - - - &Sending addresses... - &Címek küldése - - - &Receiving addresses... - Címek &fogadása - - - Open &URI... - &URI... Megnyitása - - - Click to disable network activity. - Kattintson a hálózati tevékenység felfüggesztéséhez. - - - Network activity disabled. - Hálózati tevékenység letiltva. - - - Click to enable network activity again. - Kattintson a hálózati tevékenység ismételt engedélyezéséhez. - - - Syncing Headers (%1%)... - Fejlécek szinkronizálása (%1%)... - - - Reindexing blocks on disk... - A blokkok újraindexelése folyik a merevlemezen... - - - Send coins to a Bitcoin address - Érmék küldése egy Bitcoin címre - - - Backup wallet to another location - Tárca biztonsági mentése más helyre - - - Change the passphrase used for wallet encryption - A tárca titkosításához használt jelszóhalmaz megváltoztatása - - - &Debug window - &Hibakereső ablak - - - Open debugging and diagnostic console - Hibakereső és diagnosztikai konzol megnyitása - - - &Verify message... - Üzenet &ellenőrzése - - - Bitcoin - Bitcoin - - - Wallet - Tárca - - - &Send - Küldé&s - - - &Receive - &Fogadás - - - &Show / Hide - &Mutat/Elrejt - - - Show or hide the main Window - Fő ablak megjelenítése vagy elrejtése - - - Encrypt the private keys that belong to your wallet - Tárcájához tartozó privát kulcsok titkosítása - - - Sign messages with your Bitcoin addresses to prove you own them - Írja alá az üzeneteit a Bitcoin címével, hogy bizonyítsa Öntől származnak - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Ellenőrizze az üzeneteket, hogy a megadott Bitcoin címekkel lettek-e aláírva - - - &File - &Fájl - - - &Settings - &Beállítások - - - &Help - Sú&gó - - - Tabs toolbar - Ablak fülek eszköztára - - - Request payments (generates QR codes and bitcoin: URIs) - Kérjen fizetéseket (QR kódokat generál és bitcoin: URLeket) - - - Show the list of used sending addresses and labels - Mutassa a használt küldő címek és cimkék listáját - - - Show the list of used receiving addresses and labels - Mutassa a használt fogadó címek és cimkék listáját - - - Open a bitcoin: URI or payment request - Nyisson meg egy bitcoin: URI-t vagy fizetési kérelmet - - - &Command-line options - &Parancssor beállításai - - - %n active connection(s) to Bitcoin network - %n aktív kapcsolat a Bitcoin-hálózaton%n aktív kapcsolat a Bitcoin-hálózaton - - - Indexing blocks on disk... - A blokkok indexelése folyik a merevlemezen... - - - Processing blocks on disk... - A blokkok feldolgozása a merevlemezen... - - - Processed %n block(s) of transaction history. - A tranzakció-történetből %n blokk feldolgozva.A tranzakció-történetből %n blokk feldolgozva. - - - %1 behind - %1 mögött - - - Last received block was generated %1 ago. - Az utolsó kapott blokk %1 ideje keletkezett. - - - Transactions after this will not yet be visible. - Az ez utáni tranzakciók még nem fognak látszani. - - - Error - Hiba - - - Warning - Figyelmeztetés - - - Information - Információ - - - Up to date - Naprakész - - - Show the %1 help message to get a list with possible Bitcoin command-line options - Mutassa a %1 súgó üzenetet a lehetséges Bitcoin parancssori beállítások listájáért - - - %1 client - %1 kliens - - - Connecting to peers... - Kapcsolatok kialakítása... - - - Catching up... - Felzárkózás... - - - Date: %1 - - Dátum: %1 - - - - Amount: %1 - - Összeg: %1 - - - - Type: %1 - - Típus: %1 - - - - Label: %1 - - Címke: %1 - - - - Address: %1 - - Cím: %1 - - - - Sent transaction - Elküldött tranzakció - - - Incoming transaction - Bejövő tranzakció - - - HD key generation is <b>enabled</b> - HD kulcs generálás <b>engedélyezve</b> - - - HD key generation is <b>disabled</b> - HD kulcs generálás <b>tiltva</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Tárca <b>titkosítva</b> és jelenleg <b>nyitva</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Tárca <b>titkosítva</b> és jelenleg <b>zárolva</b> - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Fatális hiba történt. A Bitcoin program nem tud tovább biztonságosan működni és be fog záródni. - - - - CoinControlDialog - - Coin Selection - Érme választó - - - Quantity: - Mennyiség: - - - Bytes: - Bájtok: - - - Amount: - Öszeg: - - - Fee: - Díj: - - - Dust: - Porszem: - - - After Fee: - Eljárási díj után: - - - Change: - Változás: - - - (un)select all - minden kiválasztása(kiválasztás megszüntetése) - - - Tree mode - Fa mód - - - List mode - Lista mód - - - Amount - Összeg - - - Received with label - Címkével fogadott - - - Received with address - Címmel fogadott - - - Date - Dátum - - - Confirmations - Jóváhagyások - - - Confirmed - Jóváhagyva - - - Copy address - Cím másolása - - - Copy label - Címke másolása - - - Copy amount - Összeg másolása - - - Copy transaction ID - Tranzakció ID másolása - - - Lock unspent - El nem költött zárolása - - - Unlock unspent - El nem költött nyitása - - - Copy quantity - Mennyiség másolása - - - Copy fee - Díj másolása - - - Copy after fee - Eljárási díj utáni másolás - - - Copy bytes - Bájtok másolása - - - Copy dust - Por másolása - - - Copy change - Változás másolása - - - (%1 locked) - (%1 zárolva) - - - yes - igen - - - no - nem - - - This label turns red if any recipient receives an amount smaller than the current dust threshold. - Ez a címke pirosra változik, ha valamelyik fogadó fél kisebb összeget kap, mint a jelenlegi porszem határérték. - - - Can vary +/- %1 satoshi(s) per input. - Változó +/- %1 satoshi(k) megadott értékenként. - - - (no label) - (nincs címke) - - - change from %1 (%2) - változtatás %1 -ről (%2) - - - (change) - (módosítás) - - - - EditAddressDialog - - Edit Address - Cím szerkesztése - - - &Label - &Címke - - - The label associated with this address list entry - Ezzel a cím bejegyzéssel társított címke - - - The address associated with this address list entry. This can only be modified for sending addresses. - Ezzel a cím bejegyzéssel társított cím. Ezt csak a küldő címek esetén lehet megváltoztatni. - - - &Address - &Cím - - - New sending address - Új küldési cím - - - Edit receiving address - Fogadási cím szerkesztése - - - Edit sending address - Küldési cím szerkesztése - - - The entered address "%1" is not a valid Bitcoin address. - A megadott cím"%1" nem egy érvényes Bitcoin cím. - - - Could not unlock wallet. - A tárca feloldása nem lehetséges - - - New key generation failed. - Új kulcs létrehozása sikertelen - - - - FreespaceChecker - - A new data directory will be created. - Új mappa lesz létrehozva. - - - name - név - - - Directory already exists. Add %1 if you intend to create a new directory here. - A könyvtár már létezik. %1 hozzáadása, ha új könyvtárat kíván létrehozni. - - - Path already exists, and is not a directory. - Az elérési út létezik, de nem egy mappa. - - - Cannot create data directory here. - Itt nem hozható létre mappa. - - - - HelpMessageDialog - - version - verzió - - - (%1-bit) - (%1-bit) - - - About %1 - Kapcsolat %1 - - - Command-line options - Parancssor beállításai - - - - Intro - - Welcome - Üdvözöljük - - - Welcome to %1. - Üdvözöljük itt: %1. - - - As this is the first time the program is launched, you can choose where %1 will store its data. - Mivel ez a program első indulása, megváltoztathatja %1 hova mentse az adatokat. - - - When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. - Ha az OK-ra kattint, %1 megkezdi a teljes %4 blokk lánc letöltését és feldolgozását (%2GB) a legkorábbi tranzakciókkal kezdve %3 -ben, amikor a %4 bevezetésre került. - - - This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. - Az első szinkronizáció nagyon erőforrás-igényes és felszínre hozhat a számítógépében eddig rejtve maradt hardver problémákat. Minden %1 indításnál a program onnan folytatja a letöltést, ahol legutóbb abbahagyta. - - - If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. - Ha a tárolt blokk lánc méretének korlátozását (megnyesését) választotta, akkor is le kell tölteni és feldolgozni az eddig keletkezett összes adatot, de utána ezek törlésre kerülnek, hogy ne foglaljunk sok helyet a merevlemezen. - - - Use the default data directory - Alapértelmezett adatmappa használata - - - Use a custom data directory: - Egyéni adatmappa használata: - - - Bitcoin - Bitcoin - - - At least %1 GB of data will be stored in this directory, and it will grow over time. - Legalább %1 GB adatot fogunk ebben a könyvtárban tárolni és idővel ez egyre több lesz. - - - Approximately %1 GB of data will be stored in this directory. - Hozzávetőlegesen %1 GB adatot fogunk ebben a könyvtárban tárolni. - - - %1 will download and store a copy of the Bitcoin block chain. - %1 le fog töltődni és a Bitcoin blokk lánc egy másolatát fogja tárolni. - - - The wallet will also be stored in this directory. - Ebben a könyvtárban lesz a pénztárca is. - - - Error: Specified data directory "%1" cannot be created. - Hiba: A megadott könyvtárat "%1" nem sikerült létrehozni. - - - Error - Hiba - - - %n GB of free space available - %n GB szabad hely áll rendelkezésre%n GB szabad hely áll rendelkezésre - - - - ModalOverlay - - Form - Űrlap - - - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - A legutóbbi tranzakciók még lehet, hogy nem látszanak, ezért előfordulhat, hogy a pénztárca egyenlege nem a valós állapotot mutatja. Ha a pénztárca befejezte a szinkronizációt a bitcoin hálózattal, utána már az aktuális egyenleget fogja mutatni, amint alant részletesen látszik. - - - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - A hálózat nem fogadja el azoknak a bitcoinoknak az elköltését, amelyek érintettek a még nem látszódó tranzakciókban. - - - Number of blocks left - Hátralévő blokkok száma - - - Unknown... - Ismeretlen... - - - Last block time - Utolsó blokk ideje - - - Progress - Folyamat - - - Progress increase per hour - A folyamat előrehaladása óránként - - - calculating... - számolás... - - - Estimated time left until synced - Hozzávetőlegesen a hátralévő idő a szinkronizáció befejezéséig - - - Hide - Elrejtés - - - Unknown. Syncing Headers (%1)... - Ismeretlen. Fejlécek szinkronizálása (%1)... - - - - OpenURIDialog - - Open URI - URI megnyitása - - - Open payment request from URI or file - Fizetési kérelem megnyitása URI-ból vagy fájlból - - - URI: - URI: - - - Select payment request file - A fizetési kérelem fájl kiválasztása - - - Select payment request file to open - Válassza ki a megnyitni kívánt fizetési kérelem fájlt - - - - OptionsDialog - - Options - Opciók - - - &Main - &Fő - - - Automatically start %1 after logging in to the system. - %1 automatikus indítása a rendszerbe való belépés után. - - - &Start %1 on system login - &Induljon el a %1 a rendszerbe való belépéskor - - - Size of &database cache - Az &adatbázis cache mérete - - - MB - MB - - - Number of script &verification threads - A szkript &igazolási szálak száma - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Proxy IP címe (pl.: IPv4: 127.0.0.1 / IPv6: ::1) - - - Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. - Megmutatja, hogy az alapértelmezett SOCKS5 proxy van-e használatban, hogy elérje a párokat ennél a hálózati típusnál. - - - Hide the icon from the system tray. - Rejtse el az ikont a rendszer tálcáról. - - - &Hide tray icon - &Tálcaikon elrejtése - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Kilépés helyett a program elrejtése az ablak bezárása után. Ha engedélyezte ezt a beállítást, akkor csak úgy tud kilépni a programból, ha a menüből a Kilépés opciót választja. - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Harmadik féltől származó URL-ek (pl. egy blokk felfedező) amelyek a tranzakciós fülön jelennek meg mint a környezetérzékeny menü tételei. %s az URL-ben helyettesítve a tranzakciós hash-el. Több URL esetén, függőleges vonal választja el őket. - - - Active command-line options that override above options: - Aktív parancssori beállítások, melyek felülírják a fenti beállításokat: - - - Open the %1 configuration file from the working directory. - A %1 konfigurációs fájl megnyitása a munkakönyvtárból. - - - Open Configuration File - Konfigurációs Fájl Megnyitása - - - Reset all client options to default. - Minden kliens beállítás visszaállítása alaphelyzetbe. - - - &Reset Options - &Visszaállítja a Beállításokat - - - &Network - &Hálózat - - - (0 = auto, <0 = leave that many cores free) - (0 = automatikus, <0 = ennyi processzormagot hagyjon szabadon) - - - W&allet - T&árca - - - Expert - Haladó - - - Enable coin &control features - Pénzküldés beállításainak engedélyezése - - - If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Ha letiltja a jóváhagyatlan visszajáró elköltését, akkor egy tranzakcióból származó visszajárót nem lehet felhasználni, amíg legalább egy jóváhagyás nem történik. Ez befolyásolja az egyenlegének a kiszámítását is. - - - &Spend unconfirmed change - &Költése a a jóváhagyatlan visszajárónak - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Automatikusan nyissa meg a Bitcoin kliens által használt portot a routeren. Ez csak akkor működik, ha a router támogatja a UPnP-t, és engedélyezett ez a beállítás. - - - Map port using &UPnP - Port feltérképezése &UPnP használatával - - - Accept connections from outside. - Kívülről érkező kapcsolatok fogadása. - - - Allow incomin&g connections - &Bejövő kapcsolatok engedélyezése - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Csatlakozás a Bitcoin hálózathoz SOCKS5 proxy használatával. - - - &Connect through SOCKS5 proxy (default proxy): - &Kapcsolódás SOCKS5 proxyn keresztül (alapértelmezett proxy): - - - Proxy &IP: - Proxy &IP: - - - &Port: - &Port: - - - Port of the proxy (e.g. 9050) - Proxy portja (pl.: 9050) - - - Used for reaching peers via: - Párok elérésére használjuk ezen keresztül: - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Csatlakozás a Bitcoin hálózathoz külön SOCKS5 proxy használatával a Tor rejtett szolgáltatásainak eléréséhez. - - - &Window - &Ablak - - - Show only a tray icon after minimizing the window. - Csak az ablak elrejtése után mutassa a tálca ikont. - - - &Minimize to the tray instead of the taskbar - &Elrejtés a tálcára ikon formában, a tálcán látható futó program helyett - - - M&inimize on close - &Elrejtés bezáráskor - - - &Display - &Mutatás - - - User Interface &language: - Felhasználói felület &nyelve: - - - The user interface language can be set here. This setting will take effect after restarting %1. - A felhasználói felület nyelvét tudja itt beállítani. Ez a beállítás csak a %1 újraindítása után lép életbe. - - - &Unit to show amounts in: - &Mértékegység amelyben mutassa az összegeket: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Válassza ki az alapértelmezett részmértékegységet, amely megjelenik a felhasználói felületen és pénzküldéskor. - - - Whether to show coin control features or not. - Mutassa a pénzküldés beállításait vagy ne. - - - &Third party transaction URLs - &Harmadik féltől származó tranzakciós URL-ek - - - &OK - &OK - - - &Cancel - &Mégse - - - default - alapméretezett - - - none - semmi - - - Confirm options reset - Opciók visszaállításának megerősítése - - - Client restart required to activate changes. - Újra kell indítani a programot a beállítások alkalmazásához. - - - Client will be shut down. Do you want to proceed? - A kliens le fog állni. Szeretné folytatni? - - - Configuration options - Beállítási lehetőségek - - - The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file. - A konfigurációs fájlt a haladó felhasználók olyan beállításokra használhatják, amelyek felülírják a grafikus felület beállításait. Azonban bármely parancssori beállítás felülírja a konfigurációs fájl beállításait. - - - Error - Hiba - - - The configuration file could not be opened. - Nem sikerült megnyitni a konfigurációs fájlt. - - - This change would require a client restart. - Ehhez a változtatáshoz újra kellene indítani a klienst. - - - The supplied proxy address is invalid. - A megadott proxy cím érvénytelen. - - - - OverviewPage - - Form - Űrlap - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Lehet, hogy a megjelenített információ elavult. A tárcája automatikusan szinkronizál a hálózattal kapcsolódás után, de a folyamat még nem ért véget. - - - Watch-only: - Megfigyelés: - - - Available: - Elérhető: - - - Your current spendable balance - Felhasználható egyenlege - - - Pending: - Függőben: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - A tranzakciók száma, amelyeket még hitelesíteni kell, és amelyek még nem tartoznak az elkölthető egyenlegbe. - - - Immature: - Éretlen: - - - Mined balance that has not yet matured - Bányászott egyenleg, mely jelenleg még éretlen - - - Balances - Egyenlegek - - - Total: - Összesen: - - - Your current total balance - Jelenlegi teljes egyenlege - - - Your current balance in watch-only addresses - A csak megfigyelt címeinek az egyenlege - - - Spendable: - Elkölthető: - - - Recent transactions - Legutóbbi tranzakciók - - - Unconfirmed transactions to watch-only addresses - A csak megfigyelt címek hitelesítetlen tranzakciói - - - Mined balance in watch-only addresses that has not yet matured - A csak megfigyelt címek bányászott, még éretlen egyenlege - - - Current total balance in watch-only addresses - A csak megfigyelt címek jelenlegi teljes egyenlege - - - - PaymentServer - - Payment request error - Hiba történt a fizetési kérelem során - - - Cannot start bitcoin: click-to-pay handler - A bitcoin nem tud elindulni: click-to-pay kezelő - - - URI handling - URI kezelése - - - Invalid payment address %1 - Érvénytelen fizetési cím %1 - - - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - Az URI nem dolgozható fel! Ennek oka lehet egy érvénytelen Bitcoin-cím, vagy hibás URI-paraméterek. - - - Payment request file handling - Fizetésikérelem-fájl kezelése - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - A fizetésikérelem-fájl nem olvasható! Lehet, hogy hibás a fájl. - - - Payment request rejected - Fizetési kérelem elutasítva - - - Payment request network doesn't match client network. - A fizetési kérelem hálózat nem egyezik a kliens hálózatával. - - - Payment request expired. - Fizetési kérelem lejárt - - - Payment request is not initialized. - Fizetési kérelem nincs inicializálva. - - - Invalid payment request. - Érvénytelen fizetési kérelem - - - Requested payment amount of %1 is too small (considered dust). - A %1 fizetésre kért összege túl kevés (porszemnek minősül). - - - Refund from %1 - Visszatérítés innen: %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - A %1 fizetési kérelem túl nagy (%2 bájt, megengedett: %3 bájt). - - - Error communicating with %1: %2 - Hiba a kommunikáció során %1 -el: %2 - - - Payment request cannot be parsed! - A fizetési kérelem nem dolgozható fel! - - - Bad response from server %1 - Rossz válasz a szervertől %1 - - - Network request error - Hálózati hiba történt - - - Payment acknowledged - Fizetés nyugtázva - - - - PeerTableModel - - User Agent - User Agent - - - Node/Service - Csomópont/Szolgáltatás - - - NodeId - Csomópont azonosító - - - Ping - Ping - - - Sent - Elküldve - - - Received - Fogadva - - - - QObject - - Amount - Összeg - - - Enter a Bitcoin address (e.g. %1) - Adjon meg egy Bitcoin-címet (pl. %1) - - - %1 d - %1 n - - - %1 h - %1 ó - - - %1 m - %1 p - - - %1 s - %1 mp - - - None - Nincs - - - N/A - N/A - - - %1 ms - %1 ms - - - %n second(s) - %n másodperc%n másodperc - - - %n minute(s) - %n perc%n perc - - - %n hour(s) - %n óra%n óra - - - %n day(s) - %n nap%n nap - - - %n week(s) - %n hét%n hét - - - %1 and %2 - %1 és %2 - - - %n year(s) - %n év%n év - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - %1 didn't yet exit safely... - %1 még nem lépett ki biztonságosan... - - - unknown - ismeretlen - - - - QObject::QObject - - Error: Specified data directory "%1" does not exist. - Hiba: A megadott "%1" adatkönyvtár nem létezik. - - - Error: %1 - Hiba: %1 - - - - QRImageWidget - - &Save Image... - Kép &mentése - - - &Copy Image - Kép má&solása - - - Save QR Code - QR-kód mentése - - - PNG Image (*.png) - PNG kép (*.png) - - - - RPCConsole - - N/A - N/A - - - Client version - Kliens verzió - - - &Information - &Információ - - - Debug window - Hibakereső ablak - - - General - Általános - - - Using BerkeleyDB version - BerkeleyDB verzió - - - Datadir - Adat elérési útja - - - Startup time - Indítás időpontja - - - Network - Hálózat - - - Name - Név - - - Number of connections - Kapcsolatok száma - - - Block chain - Blokklánc - - - Current number of blocks - Blokkok aktuális száma - - - Memory Pool - Memória Halom - - - Current number of transactions - Tranzakciók pillanatnyi száma - - - Memory usage - Memóriahasználat - - - &Reset - &Alaphelyzet - - - Received - Fogadva - - - Sent - Elküldve - - - &Peers - &Peer-ek - - - Banned peers - Letiltott peer-ek - - - Select a peer to view detailed information. - Peer kijelölése a részletes információkért - - - Whitelisted - Engedélyezett - - - Direction - Irány - - - Version - Verzió - - - Starting Block - Kezdeti blokk - - - Synced Headers - Szikronizált fejlécek - - - Synced Blocks - Szinkronizált blokkok - - - User Agent - User Agent - - - Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. - A %1 hibakeresési naplófájl megnyitása a jelenlegi könyvtárból. Ez néhány másodpercig eltarthat nagyobb naplófájlok esetén. - - - Decrease font size - Betűméret csökkentése - - - Increase font size - Betűméret növelése - - - Services - Szolgáltatások - - - Connection Time - Csatlakozási idő - - - Last Send - Utolsó küldés - - - Last Receive - Utolsó fogadás - - - Ping Time - Ping idő - - - The duration of a currently outstanding ping. - A jelenlegi kiváló ping időtartama. - - - Ping Wait - Várakozás ping-re - - - Min Ping - Minimum Ping - - - Time Offset - Idő Eltolódás - - - Last block time - Utolsó blokk ideje - - - &Open - &Megnyitás - - - &Console - &Konzol - - - &Network Traffic - &Hálózati forgalom - - - Totals - Összesen - - - In: - Be: - - - Out: - Ki: - - - Debug log file - Hibakeresési napló fájl - - - Clear console - Konzol ürítése - - - 1 &hour - 1 &óra - - - 1 &day - 1 &nap - - - 1 &week - 1 &hét - - - 1 &year - 1 &év - - - &Disconnect - &Szétkapcsol - - - Ban for - Tiltás oka - - - &Unban - &Tiltás feloldása - - - Welcome to the %1 RPC console. - Üdv az %1 RPC konzoljában. - - - Use up and down arrows to navigate history, and %1 to clear screen. - Az előzmények közötti navigálásához használd a fel és le nyilakat, és %1-t a képernyő törléséhez. - - - Type %1 for an overview of available commands. - Írja be a %1 parancsot az elérhető utasítások áttekintéséhez. - - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - FIGYELEM: Csalók megpróbálnak felhasználókat rávenni, hogy parancsokat írjanak be ide, és ellopják a tárca tartalmát. Ne használja ezt a konzolt anélkül, hogy teljesen megértené egy parancs kiadásának a következményeit. - - - Network activity disabled - Hálózat aktivitása letiltva - - - (node id: %1) - (csomópont azonosító: %1) - - - via %1 - %1-n keresztül - - - never - soha - - - Inbound - Bejövő - - - Outbound - Kimenő - - - Yes - Igen - - - No - Nem - - - Unknown - Ismeretlen - - - - ReceiveCoinsDialog - - &Amount: - &Összeg: - - - &Label: - &Címke: - - - &Message: - &Üzenet: - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Opciónális üzenet csatolása a fizetési kérelemhez, ami a kérelem megnyitásakor megjelenik. Megjegyzés: Az üzenet nem lesz elküldve a fizetéssel a Bitcoin hálózaton. - - - An optional label to associate with the new receiving address. - Opcionális címke hozzáadása az új fogadó címhez. - - - Use this form to request payments. All fields are <b>optional</b>. - Használja ezt az űrlapot fizetések kérésére. Minden mező <b>opcionális</b>. - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Egy opcionálisan kérhető összeg. Hagyja üresen, vagy írjon be nullát, ha nem kívánja használni. - - - Clear all fields of the form. - Az űrlap összes mezőjének törlése - - - Clear - Törlés - - - Requested payments history - A kért kifizetések előzménye - - - &Request payment - &Fizetési kérelem - - - Show the selected request (does the same as double clicking an entry) - Mutassa meg a kiválasztott kérelmet (ugyanaz, mint a duplaklikk) - - - Show - Megmutatás - - - Remove the selected entries from the list - A kijelölt elemek törlése a listáról - - - Remove - Eltávolítás - - - Copy URI - URI másolása - - - Copy label - Címke másolása - - - Copy message - Üzenet másolása - - - Copy amount - Összeg másolása - - - - ReceiveRequestDialog - - QR Code - QR-kód - - - Copy &URI - &URI másolása - - - Copy &Address - &Cím másolása - - - &Save Image... - Kép &mentése - - - Request payment to %1 - Fizetési kérelem tőle: %1 - - - Payment information - Fizetési információ - - - URI - URI - - - Address - Cím - - - Amount - Összeg - - - Label - Címke - - - Message - Üzenet - - - Wallet - Tárca - - - Resulting URI too long, try to reduce the text for label / message. - A keletkezett URI túl hosszú, próbálja meg csökkenteni a cimke / üzenet szövegének méretét. - - - Error encoding URI into QR Code. - Hiba lépett fel az URI QR kóddá alakításakor. - - - - RecentRequestsTableModel - - Date - Dátum - - - Label - Címke - - - Message - Üzenet - - - (no label) - (nincs címke) - - - (no message) - (nincs üzenet) - - - (no amount requested) - (nem kért összeget) - - - Requested - Kért - - - - SendCoinsDialog - - Send Coins - Érmék küldése - - - Coin Control Features - Pénzküldés beállításai - - - Inputs... - Bemenetek... - - - automatically selected - automatikusan kiválasztva - - - Insufficient funds! - Fedezethiány! - - - Quantity: - Mennyiség: - - - Bytes: - Bájtok: - - - Amount: - Öszeg: - - - Fee: - Díj: - - - After Fee: - Eljárási díj után: - - - Change: - Visszajáró: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Ha ezt a beállítást engedélyezi, de a visszajáró cím érvénytelen, a visszajáró egy újonnan generált címre lesz küldve. - - - Custom change address - Egyedi visszajáró cím - - - Transaction Fee: - Tranzakciós díj: - - - Choose... - Választás... - - - Warning: Fee estimation is currently not possible. - Figyelem: A hozzávetőleges díjszámítás jelenleg nem lehetséges. - - - per kilobyte - kilobájtonként - - - Hide - Elrejtés - - - Recommended: - Ajánlott: - - - Custom: - Egyedi: - - - Send to multiple recipients at once - Küldés egyszerre több címzettnek - - - Clear all fields of the form. - Az űrlap összes mezőjének törlése - - - Dust: - Porszem: - - - Confirmation time target: - Megerősítési idő cél: - - - Clear &All - &Mindent töröl - - - Balance: - Egyenleg: - - - S&end - &Küldés - - - Copy quantity - Mennyiség másolása - - - Copy amount - Összeg másolása - - - Copy fee - Díj másolása - - - Copy after fee - Eljárási díj utáni másolás - - - Copy bytes - Bájtok másolása - - - Copy dust - Por másolása - - - Copy change - Változás másolása - - - Are you sure you want to send? - Biztosan elküldi? - - - or - vagy - - - Transaction fee - Tranzakciós díj - - - The amount to pay must be larger than 0. - Az összegnek nagyobbnak kell lennie, mint 0. - - - The amount exceeds your balance. - Az összeg túlhaladja az egyenleged. - - - Transaction creation failed! - Tranzakció készítése sikertelen! - - - Payment request expired. - Fizetési kérelem lejárt - - - Warning: Invalid Bitcoin address - Figyelem: érvénytelen Bitcoin cím - - - Confirm custom change address - Egyedi visszajáró cím megerősítése - - - (no label) - (nincs címke) - - - - SendCoinsEntry - - A&mount: - &Összeg: - - - &Label: - &Címke: - - - Choose previously used address - Válasszon a korábban használt címek közül - - - This is a normal payment. - Ez egy normális fizetés. - - - Alt+A - Alt+A - - - Paste address from clipboard - Cím beillesztése vágólapról - - - Alt+P - Alt+P - - - Remove this entry - Bejegyzés eltávolítása - - - Use available balance - Elérhető egyenleg használata - - - Message: - Üzenet: - - - Memo: - Jegyzet: - - - - SendConfirmationDialog - - Yes - Igen - - - - ShutdownWindow - - %1 is shutting down... - %1 leáll... - - - Do not shut down the computer until this window disappears. - Ne kapcsold ki a számítógépet, amíg ez az üzenet el nem tűnik. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Aláírások - Aláír / Megerősít egy Üzenetet - - - Choose previously used address - Válasszon a korábban használt címek közül - - - Alt+A - Alt+A - - - Paste address from clipboard - Cím beillesztése vágólapról - - - Alt+P - Alt+P - - - Signature - Aláírás - - - Copy the current signature to the system clipboard - A pillanatnyi aláírás másolása a rendszer vágólapjára - - - Clear &All - &Mindent töröl - - - &Verify Message - &Üzenet megerősítése - - - The entered address is invalid. - A beírt cím érvénytelen. - - - Please check the address and try again. - Ellenőrizze a címet majd próbálja újból. - - - Wallet unlock was cancelled. - A tárca feloldása elutasítva - - - Message signing failed. - Üzenet aláírása sikertelen - - - Message signed. - Üzenet aláírva - - - Please check the signature and try again. - Ellenőrizze az aláírást majd próbálja újból - - - Message verified. - Üzenet megerősítve. - - - - SplashScreen - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Status - Állapot - - - Date - Dátum - - - Source - Forrás - - - Generated - Létrehozott - - - From - Innen: - - - unknown - ismeretlen - - - To - Ide: - - - own address - saját címek - - - watch-only - megfigyelés - - - label - címke - - - not accepted - nem elfogadott - - - Transaction fee - Tranzakciós díj - - - Net amount - Nettó összeg - - - Message - Üzenet - - - Comment - Megjegyzés - - - Transaction ID - Tranzakció azonosító - - - Transaction total size - Tranzakció teljes mérete - - - Merchant - Kereskedő - - - Debug information - Hibakeresési információk - - - Transaction - Tranzakció - - - Amount - Összeg - - - true - igaz - - - false - hamis - - - - TransactionDescDialog - - - TransactionTableModel - - Date - Dátum - - - Type - Típus - - - Label - Címke - - - Unconfirmed - Nem megerősített - - - Generated but not accepted - Generált de nem elfogadott - - - Sent to - Küldés neki - - - Mined - Bányászott - - - watch-only - megfigyelés - - - (no label) - (nincs címke) - - - Type of transaction. - Tranzakció típusa. - - - - TransactionView - - All - Összes - - - Today - Ma - - - This week - E héten - - - This month - E hónapban - - - Last month - Előző hónapban - - - This year - Ez évben - - - Range... - Tartomány... - - - Sent to - Küldés neki - - - Mined - Bányászott - - - Other - Egyéb - - - Min amount - Minimum összeg - - - Copy address - Cím másolása - - - Copy label - Címke másolása - - - Copy amount - Összeg másolása - - - Copy transaction ID - Tranzakció ID másolása - - - Edit label - Címke szerkesztése - - - Show transaction details - Tranzakció részletei - - - Comma separated file (*.csv) - Vesszővel elválasztott adatok (*.csv) - - - Confirmed - Jóváhagyva - - - Watch-only - Csak megtekintés - - - Date - Dátum - - - Type - Típus - - - Label - Címke - - - Address - Cím - - - ID - ID - - - Exporting Failed - Sikertelen export - - - Exporting Successful - Sikeres exportálás - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - Send Coins - Érmék küldése - - - Increase: - Növelés: - - - New fee: - Új díj: - - - - WalletView - - &Export - &Export - - - Export the data in the current tab to a file - A jelenlegi fülön található adat exportálása fájlba - - - Backup Wallet - Tárca biztonsági mentése - - - Wallet Data (*.dat) - Tárca adat (*.dat) - - - Backup Failed - Biztonsági mentés sikertelen - - - Backup Successful - Biztonsági mentés sikeres - - - - bitcoin-core - - Bitcoin Core - Bitcoin Mag - - - Do you want to rebuild the block database now? - Szeretnéd újra építeni a blokk adatbázist most? - - - Error initializing block database - Hiba a blokk adatbázis inicializálásakor - - - Error loading block database - Hiba a blokk adatbázis betöltésekor - - - Error opening block database - Hiba a blokk adatbázis megnyitásakor - - - Error: Disk space is low! - Hiba: Kicsi a lemezterület! - - - Importing... - Importálás... - - - Verifying blocks... - Blokkok megerősítése... - - - Information - Információ - - - Signing transaction failed - Tranzakció aláírása sikertelen - - - This is experimental software. - Ez egy fejlesztés alatt álló szoftver. - - - Transaction amount too small - A tranzakció összege túl kicsi - - - Transaction too large - A tranzakció túl nagy - - - Verifying wallet(s)... - Tárca/Tárcák megerősítése - - - Warning - Figyelmeztetés - - - %s is set very high! - %s túl magasra van állítva! - - - Starting network threads... - Hálózati szálak indítása... - - - Transaction amounts must not be negative - A tranzakciók összege nem lehet negatív - - - Transaction must have at least one recipient - Legalább egy címzettnek kell lennie a tranzakcióban  - - - Insufficient funds - Fedezethiány - - - Loading block index... - A blokkindex betöltése ... - - - Loading wallet... - Tárca betöltése... - - - Cannot downgrade wallet - Nem lehet lemásolni a pénztárcát - - - Rescanning... - Újraszkennelés - - - Done loading - Betöltés kész - - - Error - Hiba - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_id_ID.ts b/src/qt/locale/bitcoin_id_ID.ts deleted file mode 100644 index a487936fd2..0000000000 --- a/src/qt/locale/bitcoin_id_ID.ts +++ /dev/null @@ -1,2137 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Klik-kanan untuk mengubah alamat atau label - - - Create a new address - Buat alamat baru - - - &New - &Baru - - - Copy the currently selected address to the system clipboard - Salin alamat yang dipilih ke clipboard - - - &Copy - &Menyalin - - - C&lose - T&utup - - - Delete the currently selected address from the list - Hapus alamat yang sementara dipilih dari daftar - - - Enter address or label to search - Masukkan alamat atau label untuk mencari - - - Export the data in the current tab to a file - Ekspor data dalam tab sekarang ke sebuah berkas - - - &Export - &Ekspor - - - &Delete - &Hapus - - - Choose the address to send coins to - Pilih alamat untuk mengirim koin - - - Choose the address to receive coins with - Piih alamat untuk menerima koin - - - C&hoose - &Pilih - - - Sending addresses - Alamat-alamat pengirim - - - Receiving addresses - Alamat-alamat penerima - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Berikut ialah alamat-alamat Bitcoin Anda yang digunakan untuk mengirimkan pembayaran. Selalu periksa jumlah dan alamat penerima sebelum mengirimkan koin. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Berikut ialah alamat-alamat Bitcoin Anda yang digunakan untuk menerima pembayaran. Dianjurkan untuk menggunakan alamat penerimaan baru untuk setiap transaksi. - - - &Copy Address - &Salin Alamat - - - Copy &Label - Salin& Label - - - &Edit - &Ubah - - - Export Address List - Ekspor Daftar Alamat - - - Comma separated file (*.csv) - Berkas CSV (*.csv) - - - Exporting Failed - Gagal Mengekspor - - - There was an error trying to save the address list to %1. Please try again. - Terjadi kesalahan saat mencoba menyimpan daftar alamat ke %1. Silakan coba lagi. - - - - AddressTableModel - - Label - Label - - - Address - Alamat - - - (no label) - (tidak ada label) - - - - AskPassphraseDialog - - Passphrase Dialog - Dialog Kata Sandi - - - Enter passphrase - Masukkan kata sandi - - - New passphrase - Kata sandi baru - - - Repeat new passphrase - Ulangi kata sandi baru - - - Show password - Tampilkan kata sandi - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Masukan kata sandi baru ke dompet.<br/>Mohon gunakan kata sandi <b>sepuluh karakter acak atau lebih</b>, atau <b> delapan atau lebih beberapa kata </​​b>. - - - Encrypt wallet - Enkripsi dompet - - - This operation needs your wallet passphrase to unlock the wallet. - Operasi ini memerlukan kata sandi dompet Anda untuk membuka dompet. - - - Unlock wallet - Buka dompet - - - This operation needs your wallet passphrase to decrypt the wallet. - Operasi ini memerlukan kata sandi dompet Anda untuk mendekripsikan dompet. - - - Decrypt wallet - Dekripsi dompet - - - Change passphrase - Ganti kata sandi - - - Enter the old passphrase and new passphrase to the wallet. - Masukkan kata sandi lama dan kata sandi baru ke dompet. - - - Confirm wallet encryption - Konfirmasi pengenkripsian dompet - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Peringatan: Jika Anda mengenkripsi dompet Anda dan lupa kata sandi Anda, Anda akan <b>KEHILANGAN SEMUA BITCOIN ANDA</b>! - - - Are you sure you wish to encrypt your wallet? - Apakah Anda yakin ingin enkripsi dompet Anda? - - - Wallet encrypted - Dompet terenkripsi - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 sekarang akan ditutup untuk menyelesaikan proses enkripsi. Ingatlah bahwa mengenkripsi dompet Anda tidak dapat sepenuhnya melindungi komputer Anda dari pencurian malware yang menginfeksi komputer Anda. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - PENTING: Backup sebelumnya yang Anda buat dari file dompet Anda harus diganti dengan file dompet terenkripsi yang baru dibuat. Demi keamanan, backup file dompet sebelumnya yang tidak dienkripsi sebelumnya akan menjadi tidak berguna begitu Anda mulai menggunakan dompet terenkripsi yang baru. - - - Wallet encryption failed - Pengenkripsian dompet gagal - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Pengenkripsian dompet gagal karena kesalahan internal. Dompet Anda tidak dienkripsi. - - - The supplied passphrases do not match. - Kata sandi yang dimasukkan tidak cocok. - - - Wallet unlock failed - Membuka dompet gagal - - - The passphrase entered for the wallet decryption was incorrect. - Kata sandi yang dimasukkan untuk dekripsi dompet salah. - - - Wallet decryption failed - Dekripsi dompet gagal - - - Wallet passphrase was successfully changed. - Kata sandi berhasil diganti. - - - Warning: The Caps Lock key is on! - Peringatan: Tombol Caps Lock aktif! - - - - BanTableModel - - IP/Netmask - IP/Netmask - - - Banned Until - Di banned sampai - - - - BitcoinGUI - - Sign &message... - Pesan &penanda... - - - Synchronizing with network... - Sinkronisasi dengan jaringan... - - - &Overview - &Kilasan - - - Node - Node - - - Show general overview of wallet - Tampilkan gambaran umum dompet Anda - - - &Transactions - &Transaksi - - - Browse transaction history - Lihat riwayat transaksi - - - E&xit - K&eluar - - - Quit application - Keluar dari aplikasi - - - &About %1 - &Tentang%1 - - - Show information about %1 - Tampilkan informasi perihal %1 - - - About &Qt - Mengenai &Qt - - - Show information about Qt - Tampilkan informasi mengenai Qt - - - &Options... - &Pilihan... - - - Modify configuration options for %1 - Pengubahan opsi konfigurasi untuk %1 - - - &Encrypt Wallet... - &Enkripsi Dompet... - - - &Backup Wallet... - &Cadangkan Dompet... - - - &Change Passphrase... - &Ubah Kata Kunci... - - - &Sending addresses... - &Alamat-alamat untuk mengirim... - - - &Receiving addresses... - &Alamat-alamat untuk menerima... - - - Open &URI... - Buka &URI - - - Wallet: - Wallet: - - - default wallet - wallet default - - - Click to disable network activity. - Klik untuk menonaktifkan aktivitas jaringan. - - - Network activity disabled. - Aktivitas jaringan dinonaktifkan. - - - Click to enable network activity again. - Klik untuk mengaktifkan aktivitas jaringan lagi. - - - Syncing Headers (%1%)... - Menyinkronkan Header (%1%) ... - - - Reindexing blocks on disk... - Mengindex ulang blok di dalam disk... - - - Proxy is <b>enabled</b>: %1 - Proxy di <b>aktifkan</b>: %1 - - - Send coins to a Bitcoin address - Kirim koin ke alamat Bitcoin - - - Backup wallet to another location - Cadangkan dompet ke lokasi lain - - - Change the passphrase used for wallet encryption - Ubah kata kunci yang digunakan untuk enkripsi dompet - - - &Debug window - &Jendela Debug - - - Open debugging and diagnostic console - Buka konsol debug dan diagnosa - - - &Verify message... - &Verifikasi pesan... - - - Bitcoin - Bitcoin - - - Wallet - Dompet - - - &Send - &Kirim - - - &Receive - &Menerima - - - &Show / Hide - &Tampilkan / Sembunyikan - - - Show or hide the main Window - Tampilkan atau sembunyikan jendela utama - - - Encrypt the private keys that belong to your wallet - Enkripsi private key yang dimiliki dompet Anda - - - Sign messages with your Bitcoin addresses to prove you own them - Tanda tangani sebuah pesan menggunakan alamat Bitcoin Anda untuk membuktikan bahwa Anda adalah pemilik alamat tersebut - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifikasi pesan untuk memastikan bahwa pesan tersebut ditanda tangani oleh suatu alamat Bitcoin tertentu - - - &File - &Berkas - - - &Settings - &Pengaturan - - - &Help - &Bantuan - - - Tabs toolbar - Baris tab - - - Request payments (generates QR codes and bitcoin: URIs) - Permintaan pembayaran (membuat kode QR dan bitcoin: URIs) - - - Show the list of used sending addresses and labels - Tampilkan daftar alamat dan label yang terkirim - - - Show the list of used receiving addresses and labels - Tampilkan daftar alamat dan label yang diterima - - - Open a bitcoin: URI or payment request - Buka URI bitcoin: atau permintaan pembayaran - - - &Command-line options - &pilihan Command-line - - - %n active connection(s) to Bitcoin network - %n koneksi aktif ke jaringan Bitcoin - - - Indexing blocks on disk... - Pengindeksan blok pada disk ... - - - Processing blocks on disk... - Memproses blok pada disk ... - - - Processed %n block(s) of transaction history. - %n blok dari riwayat transaksi diproses. - - - %1 behind - kurang %1 - - - Last received block was generated %1 ago. - Blok terakhir yang diterima %1 lalu. - - - Transactions after this will not yet be visible. - Transaksi setelah ini belum akan terlihat. - - - Error - Terjadi sebuah kesalahan - - - Warning - Peringatan - - - Information - Informasi - - - Up to date - Terbaru - - - Show the %1 help message to get a list with possible Bitcoin command-line options - Tampilkan %1 pesan bantuan untuk mendapatkan daftar opsi baris perintah Bitcoin yang memungkinkan - - - %1 client - %1 klien - - - Connecting to peers... - Menghubungkan ke peer... - - - Catching up... - Menyusul... - - - Date: %1 - - Tanggal: %1 - - - - Amount: %1 - - Jumlah: %1 - - - - Wallet: %1 - - Wallet: %1 - - - - Type: %1 - - Tipe: %1 - - - - Label: %1 - - Label: %1 - - - - Address: %1 - - Alamat: %1 - - - - Sent transaction - Transaksi terkirim - - - Incoming transaction - Transaksi diterima - - - HD key generation is <b>enabled</b> - Pembuatan kunci HD <b>diaktifkan</b> - - - HD key generation is <b>disabled</b> - Pembuatan kunci HD <b>dinonaktifkan</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Dompet saat ini <b>terenkripsi</b> dan <b>terbuka</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Dompet saat ini <b>terenkripsi</b> dan <b>terkunci</b> - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Terjadi Kesalahan Fatal. Bitcoin Tidak Dapat Melanjutkan Dengan Aman Dan Akan Keluar - - - - CoinControlDialog - - Coin Selection - Pemilihan Koin - - - Quantity: - Kuantitas: - - - Bytes: - Bytes: - - - Amount: - Jumlah: - - - Fee: - Biaya: - - - Dust: - Dust: - - - After Fee: - Dengan Biaya: - - - Change: - Kembalian: - - - (un)select all - (Tidak)memilih semua - - - Tree mode - Tree mode - - - List mode - Mode daftar - - - Amount - Jumlah - - - Received with label - Diterima dengan label - - - Received with address - Diterima dengan alamat - - - Date - Tanggal - - - Confirmations - Konfirmasi - - - Confirmed - Terkonfirmasi - - - Copy address - Salin alamat - - - Copy label - Salin label - - - Copy amount - Salin Jumlah - - - Copy transaction ID - Salain ID Transaksi - - - Lock unspent - Kunci Yang Tidak Digunakan - - - Unlock unspent - Buka Kunci Yang Tidak Digunakan - - - Copy quantity - Salin Kuantitas - - - Copy fee - Salin biaya - - - Copy after fee - Salin Setelah Upah - - - Copy bytes - Salin bytes - - - Copy dust - Salin jumlah yang lebih kecil - - - Copy change - Salin Perubahan - - - (%1 locked) - (%1 terkunci) - - - yes - Ya - - - no - Tidak - - - Can vary +/- %1 satoshi(s) per input. - Dapat bervariasi +/- %1 satoshi per input. - - - (no label) - (tidak ada label) - - - change from %1 (%2) - kembalian dari %1 (%2) - - - (change) - (kembalian) - - - - EditAddressDialog - - Edit Address - Ubah Alamat - - - &Label - &Label - - - The label associated with this address list entry - Label yang terkait dengan daftar alamat - - - The address associated with this address list entry. This can only be modified for sending addresses. - Alamat yang terkait dengan daftar alamat. Hanya dapat diubah untuk alamat pengirim. - - - &Address - &Alamat - - - New sending address - Alamat pengirim baru - - - Edit receiving address - Ubah alamat penerima - - - Edit sending address - Ubah alamat pengirim - - - The entered address "%1" is not a valid Bitcoin address. - Alamat yang dimasukkan "%1" bukanlah alamat Bitcoin yang valid. - - - Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. - Alamat "%1" sudah ada sebagai alamat penerimaan dengan label "%2" sehingga tidak bisa ditambah sebagai alamat pengiriman. - - - The entered address "%1" is already in the address book with label "%2". - Alamat "%1" yang dimasukkan sudah ada di dalam buku alamat dengan label "%2". - - - Could not unlock wallet. - Tidak dapat membuka dompet. - - - New key generation failed. - Pembuatan kunci baru gagal. - - - - FreespaceChecker - - A new data directory will be created. - Sebuah data direktori baru telah dibuat. - - - name - nama - - - Directory already exists. Add %1 if you intend to create a new directory here. - Direktori masih ada. Tambahlah %1 apabila Anda ingin membuat direktori baru disini. - - - Path already exists, and is not a directory. - Sudah ada path, dan itu bukan direktori. - - - Cannot create data directory here. - Tidak bisa membuat direktori data disini. - - - - HelpMessageDialog - - version - versi - - - (%1-bit) - (%1-bit) - - - About %1 - Tentang %1 - - - Command-line options - Pilihan Command-line - - - - Intro - - Welcome - Selamat Datang - - - Welcome to %1. - Selamat Datang di %1. - - - As this is the first time the program is launched, you can choose where %1 will store its data. - Karena ini adalah pertama kalinya program dijalankan, Anda dapat memilih lokasi %1 akan menyimpan data. - - - When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. - Ketika Anda mengklik OK, %1 akan mulai mengunduh dan memproses %4 block chain penuh (%2GB), dimulai dari transaksi-transaksi awal di %3 saat %4 diluncurkan pertama kali. - - - This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. - Sinkronisasi awal sangat berat dan mungkin akan menunjukkan permasalahan pada perangkat keras komputer Anda yang sebelumnya tidak tampak. Setiap kali Anda menjalankan %1, aplikasi ini akan melanjutkan pengunduhan dari posisi terakhir. - - - If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. - Apabila Anda memilih untuk membatasi penyimpanan block chain (pruning), data historis tetap akan diunduh dan diproses. Namun, data akan dihapus setelahnya untuk menjaga pemakaian disk agar tetap sedikit. - - - Use the default data directory - Gunakan direktori data default. - - - Use a custom data directory: - Gunakan direktori pilihan Anda: - - - Bitcoin - Bitcoin - - - At least %1 GB of data will be stored in this directory, and it will grow over time. - Setidaknya %1 GB data akan disimpan di direktori ini dan akan berkembang seiring berjalannya waktu. - - - Approximately %1 GB of data will be stored in this directory. - %1 GB data akan disimpan di direktori ini. - - - %1 will download and store a copy of the Bitcoin block chain. - %1 akan mengunduh dan menyimpan salinan Bitcoin block chain. - - - The wallet will also be stored in this directory. - Dompet juga akan disimpan di direktori ini. - - - Error: Specified data directory "%1" cannot be created. - Kesalahan: Direktori data "%1" tidak dapat dibuat. - - - Error - Kesalahan - - - %n GB of free space available - %n GB ruang kosong tersedia. - - - (of %n GB needed) - (dari %n GB yang dibutuhkan) - - - - ModalOverlay - - Form - Formulir - - - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Transaksi-transaksi terkini mungkin belum terlihat dan oleh karenanya, saldo dompet Anda mungkin tidak tepat. Informasi ini akan akurat ketika dompet Anda tersinkronisasi dengan jaringan Bitcoin, seperti rincian berikut. - - - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Usaha untuk menggunakan bitcoin yang dipengaruhi oleh transaksi yang belum terlihat tidak akan diterima oleh jaringan. - - - Number of blocks left - Jumlah blok tersisa - - - Unknown... - Tidak diketahui... - - - Last block time - Waktu blok terakhir - - - Progress - Perkembangan - - - Progress increase per hour - Peningkatan perkembangan per jam - - - calculating... - menghitung... - - - Estimated time left until synced - Estimasi waktu tersisa sampai tersinkronisasi - - - Hide - Sembunyikan - - - Unknown. Syncing Headers (%1)... - Tidak diketahui. Menyinkronisasikan Headers (%1)... - - - - OpenURIDialog - - Open URI - Buka URI - - - Open payment request from URI or file - Buka permintaan pembayaran dari URI atau data - - - URI: - URI: - - - Select payment request file - Pilih data permintaan pembayaran - - - Select payment request file to open - Pilih data permintaan pembayaran yang akan dibuka - - - - OptionsDialog - - Options - Pilihan - - - &Main - &Utama - - - Automatically start %1 after logging in to the system. - Mulai %1 secara otomatis setelah masuk ke dalam sistem. - - - &Start %1 on system login - Mulai %1 ketika masuk ke &sistem - - - Size of &database cache - Ukuran cache &database - - - MB - MB - - - Number of script &verification threads - Jumlah script &verification threads - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Alamat IP proxy (cth. IPv4: 127.0.0.1 / IPv6: ::1) - - - Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. - Perlihatkan apabila proxy SOCKS5 default digunakan untuk berhungan dengan orang lain lewat tipe jaringan ini. - - - Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - Menggunakan proxy SOCKS5 tersendiri untuk berhubungan dengan orang lain melalui layanan Tor: - - - Hide the icon from the system tray. - Sembunyikan ikon dari system tray. - - - &Hide tray icon - &Sembunyikan ikon tray - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Minimalisasi aplikasi ketika jendela ditutup. Ketika pilihan ini dipilih, aplikasi akan menutup seluruhnya jika anda memilih Keluar di menu yang tersedia. - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URL pihak ketika (misalnya sebuah block explorer) yang mumcul dalam tab transaksi sebagai konteks menu. %s dalam URL diganti dengan kode transaksi. URL dipisahkan dengan tanda vertikal |. - - - Active command-line options that override above options: - Pilihan command-line yang aktif menimpa diatas opsi: - - - Open the %1 configuration file from the working directory. - Buka file konfigurasi %1 dari direktori kerja. - - - Open Configuration File - Buka Berkas Konfigurasi - - - Reset all client options to default. - Kembalikan semua pengaturan ke awal. - - - &Reset Options - &Reset Pilihan - - - &Network - &Jaringan - - - Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher. - Menonaktifkan beberapa fitur canggih akan tetapi semua block akan tetap divalidasi seutuhnya. Mengembalikan pengaturan ini memerlukan untuk mengunduh seluruh blockchain. Penggunaan disk mungkin akan lebih tinggi. - - - GB - GB - - - Reverting this setting requires re-downloading the entire blockchain. - Mengembalikan pengaturan ini membutuhkan pengunduhan seluruh blockchain lagi. - - - (0 = auto, <0 = leave that many cores free) - (0 = auto, <0 = leave that many cores free) - - - W&allet - D&ompet - - - Expert - Ahli - - - Enable coin &control features - Perbolehkan fitur &pengaturan koin - - - If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Jika Anda menonaktifkan perubahan saldo untuk transaksi yang belum dikonfirmasi, perubahan dari transaksi tidak dapat dilakukan sampai transaksi memiliki setidaknya satu konfirmasi. Hal ini juga mempengaruhi bagaimana saldo Anda dihitung. - - - &Spend unconfirmed change - &Perubahan saldo untuk transaksi yang belum dikonfirmasi - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Otomatis membuka port client Bitcoin di router. Hanya berjalan apabila router anda mendukung UPnP dan di-enable. - - - Map port using &UPnP - Petakan port dengan &UPnP - - - Accept connections from outside. - Terima koneksi-koneksi dari luar. - - - Allow incomin&g connections - Terima koneksi-koneksi masuk - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Hubungkan ke jaringan Bitcoin melalui SOCKS5 proxy. - - - &Connect through SOCKS5 proxy (default proxy): - &Hubungkan melalui proxy SOCKS5 (proxy default): - - - Proxy &IP: - IP Proxy: - - - &Port: - &Port: - - - Port of the proxy (e.g. 9050) - Port proxy (cth. 9050) - - - Used for reaching peers via: - Digunakan untuk berhubungan dengan peers melalui: - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Koneksi ke jaringan bitcoin melalui proxy SOCKS5 yang berbeda untuk layanan Tor tersembunyi. - - - &Window - &Jendela - - - Show only a tray icon after minimizing the window. - Hanya tampilkan ikon tray setelah meminilisasi jendela - - - &Minimize to the tray instead of the taskbar - &Meminilisasi ke tray daripada taskbar - - - M&inimize on close - M&eminilisasi saat tutup - - - &Display - &Tampilan - - - User Interface &language: - &Bahasa Antarmuka Pengguna: - - - The user interface language can be set here. This setting will take effect after restarting %1. - Bahasa tampilan dapat diatur di sini. Pengaturan ini akan berpengaruh setelah memulai ulang %1. - - - &Unit to show amounts in: - &Unit untuk menunjukkan nilai: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Pilihan standar unit yang ingin ditampilkan pada layar aplikasi dan saat mengirim koin. - - - Whether to show coin control features or not. - Ingin menunjukkan cara pengaturan koin atau tidak. - - - &Third party transaction URLs - &URL transaksi pihak ketiga - - - &OK - &YA - - - &Cancel - &Batal - - - default - standar - - - none - tidak satupun - - - Confirm options reset - Memastikan reset pilihan - - - Client restart required to activate changes. - Restart klien diperlukan untuk mengaktifkan perubahan. - - - Client will be shut down. Do you want to proceed? - Klien akan dimatikan, apakah anda hendak melanjutkan? - - - Configuration options - Konfigurasi pengaturan - - - The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file. - File konfigurasi digunakan untuk menspesifikkan pilihan khusus pengguna yang akan menimpa pengaturan GUI. Sebagai tambahan, pengaturan command-line apapun akan menimpa file konfigurasi itu. - - - Error - Terjadi sebuah kesalahan - - - The configuration file could not be opened. - Berkas konfigurasi tidak dapat dibuka. - - - This change would require a client restart. - Perubahan ini akan memerlukan restart klien - - - The supplied proxy address is invalid. - Alamat proxy yang diisi tidak valid. - - - - OverviewPage - - Form - Formulir - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Informasi terlampir mungkin sudah kedaluwarsa. Dompet Anda secara otomatis mensinkronisasi dengan jaringan Bitcoin ketika sebuah hubungan terbentuk, namun proses ini belum selesai. - - - Watch-only: - Hanya lihat: - - - Available: - Tersedia: - - - Your current spendable balance - Jumlah yang Anda bisa keluarkan sekarang - - - Pending: - Ditunda - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Jumlah keseluruhan transaksi yang belum dikonfirmasi, dan belum saatnya dihitung sebagai pengeluaran saldo yang telah dibelanjakan. - - - Immature: - Terlalu Muda: - - - Mined balance that has not yet matured - Saldo ditambang yang masih terlalu muda - - - Balances - Saldo: - - - Total: - Jumlah: - - - Your current total balance - Jumlah saldo Anda sekarang - - - Your current balance in watch-only addresses - Saldomu di alamat hanya lihat - - - Spendable: - Bisa digunakan: - - - Recent transactions - Transaksi-transaksi terkini - - - Unconfirmed transactions to watch-only addresses - Transaksi yang belum terkonfirmasi ke alamat hanya lihat - - - Mined balance in watch-only addresses that has not yet matured - Saldo hasil mining di alamat hanya lihat yang belum bisa digunakan - - - Current total balance in watch-only addresses - Jumlah saldo di alamat hanya lihat - - - - PaymentServer - - Payment request error - Terjadi kesalahan pada permintaan pembayaran - - - Cannot start bitcoin: click-to-pay handler - Tidak bisa memulai bitcoin: handler click-to-pay - - - URI handling - Pengelolaan URI - - - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' bukanlah alamat URI yang valid. Silakan gunakan 'bitcoin:'. - - - Payment request fetch URL is invalid: %1 - URL permintaan pembayaran tidak valid: %1 - - - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI tidak bisa dimengerti! Hal ini bisa disebabkan karena alamat Bitcoin yang tidak sah atau parameter URI yang tidak tepat. - - - Payment request file handling - Pengelolaan file permintaan pembayaran - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - File permintaan pembayaran tidak bisa dibaca! Hal ini bisa disebabkan karena file permintaan pembayaran tidak valid. - - - Payment request rejected - Permintaan pembayaran ditolak - - - Payment request network doesn't match client network. - Jaringan permintaan pembayaran tidak sesuai dengan jaringan klien. - - - Payment request expired. - Permintaan pembayaran telah kadaluarsa. - - - - PeerTableModel - - User Agent - Agen Pengguna - - - Sent - Terkirim - - - - QObject - - Amount - Nilai - - - Enter a Bitcoin address (e.g. %1) - Masukkan alamat Bitcoin (contoh %1) - - - %1 h - %1 Jam - - - %1 m - %1 menit - - - N/A - T/S - - - %1 and %2 - %1 dan %2 - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - unknown - tidak diketahui - - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - N/A - T/S - - - Client version - Versi Klien - - - &Information - &Informasi - - - Debug window - Jendela debug - - - General - Umum - - - Startup time - Waktu nyala - - - Network - Jaringan - - - Name - Nama - - - Number of connections - Jumlah hubungan - - - Block chain - Rantai blok - - - Current number of blocks - Jumlah blok terkini - - - Sent - Terkirim - - - Version - Versi - - - User Agent - Agen Pengguna - - - - - Services - Layanan - - - Last block time - Waktu blok terakhir - - - &Open - &Buka - - - &Console - &Konsol - - - &Network Traffic - Kemacetan &Jaringan - - - Totals - Total - - - In: - Masuk: - - - Out: - Keluar: - - - Debug log file - Berkas catatan debug - - - Clear console - Bersihkan konsol - - - 1 &hour - 1 &jam - - - 1 &day - 1 &hari - - - 1 &week - 1 &minggu - - - 1 &year - 1 &tahun - - - default wallet - wallet default - - - Yes - Ya - - - No - Tidak - - - Unknown - Tidak diketahui - - - - ReceiveCoinsDialog - - &Amount: - &Nilai: - - - &Label: - &Label: - - - &Message: - &Pesan: - - - An optional label to associate with the new receiving address. - Label opsional untuk mengasosiasikan dengan alamat penerima baru. - - - Use this form to request payments. All fields are <b>optional</b>. - Gunakan form ini untuk meminta pembayaran. Semua bidang adalah <b>opsional</b>. - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Nilai permintaan opsional. Biarkan ini kosong atau nol bila tidak meminta nilai tertentu. - - - Clear all fields of the form. - Hapus informasi dari form. - - - Clear - Hapus - - - Requested payments history - Riwayat pembayaran yang diminta Anda - - - &Request payment - &Minta pembayaran - - - Show the selected request (does the same as double clicking an entry) - Menunjukkan permintaan yang dipilih (sama dengan tekan pilihan dua kali) - - - Show - Menunjukkan - - - Remove the selected entries from the list - Menghapus informasi terpilih dari daftar - - - Remove - Menghapus - - - Copy label - Salin label - - - Copy amount - Salin Jumlah - - - - ReceiveRequestDialog - - QR Code - Kode QR - - - Copy &URI - Salin &URI - - - Copy &Address - Salin &Alamat - - - &Save Image... - &Simpan Gambaran... - - - Address - Alamat - - - Amount - Jumlah - - - Label - Label - - - Wallet - Dompet - - - - RecentRequestsTableModel - - Label - Label - - - (no label) - (tidak ada label) - - - - SendCoinsDialog - - Send Coins - Kirim Koin - - - Coin Control Features - Cara Pengaturan Koin - - - Inputs... - Masukan... - - - automatically selected - Pemilihan otomatis - - - Insufficient funds! - Saldo tidak mencukupi! - - - Quantity: - Kuantitas: - - - Bytes: - Bytes: - - - Amount: - Nilai: - - - Fee: - Biaya: - - - After Fee: - Dengan Biaya: - - - Change: - Uang Kembali: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Jiki ini dipilih, tetapi alamat pengembalian uang kosong atau salah, uang kembali akan dikirim ke alamat yang baru dibuat. - - - Custom change address - Alamat uang kembali yang kustom - - - Transaction Fee: - Biaya Transaksi: - - - Hide - Sembunyikan - - - Recommended: - Disarankan - - - Send to multiple recipients at once - Kirim ke beberapa penerima sekaligus - - - Add &Recipient - Tambahlah &Penerima - - - Clear all fields of the form. - Hapus informasi dari form. - - - Dust: - Dust: - - - Clear &All - Hapus &Semua - - - Balance: - Saldo: - - - Confirm the send action - Konfirmasi aksi pengiriman - - - S&end - K&irim - - - Copy quantity - Salin Kuantitas - - - Copy amount - Salin Jumlah - - - Copy fee - Salin biaya - - - Copy after fee - Salin Setelah Upah - - - Copy bytes - Salin bytes - - - Copy dust - Salin dust - - - Copy change - Salin Perubahan - - - Transaction fee - Biaya Transaksi - - - Payment request expired. - Permintaan pembayaran telah kadaluarsa. - - - (no label) - (tidak ada label) - - - - SendCoinsEntry - - A&mount: - J&umlah: - - - Pay &To: - Kirim &Ke: - - - &Label: - &Label: - - - Choose previously used address - Pilih alamat yang telah digunakan sebelumnya - - - This is a normal payment. - Ini adalah pembayaran normal - - - Alt+A - Alt+J - - - Paste address from clipboard - Tempel alamat dari salinan - - - Alt+P - Alt+B - - - Remove this entry - Hapus masukan ini - - - Message: - Pesan: - - - Enter a label for this address to add it to the list of used addresses - Masukkan label untuk alamat ini untuk dimasukan dalam daftar alamat yang pernah digunakan - - - Pay To: - Kirim Ke: - - - Memo: - Catatan Peringatan: - - - - SendConfirmationDialog - - - ShutdownWindow - - Do not shut down the computer until this window disappears. - Kamu tidak dapat mematikan komputer sebelum jendela ini tertutup sendiri. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Tanda Tangan / Verifikasi sebuah Pesan - - - &Sign Message - &Tandakan Pesan - - - Choose previously used address - Pilih alamat yang telah digunakan sebelumnya - - - Alt+A - Alt+A - - - Paste address from clipboard - Tempel alamat dari salinan - - - Alt+P - Alt+B - - - Enter the message you want to sign here - Masukan pesan yang ingin ditandai disini - - - Signature - Tanda Tangan - - - Copy the current signature to the system clipboard - Salin tanda tangan terpilih ke sistem klipboard - - - Sign the message to prove you own this Bitcoin address - Tandai pesan untuk menyetujui kamu pemiliki alamat Bitcoin ini - - - Sign &Message - Tandakan &Pesan - - - Reset all sign message fields - Hapus semua bidang penanda pesan - - - Clear &All - Hapus &Semua - - - &Verify Message - &Verifikasi Pesan - - - Verify &Message - Verifikasi &Pesan - - - Reset all verify message fields - Hapus semua bidang verifikasi pesan - - - - SplashScreen - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Amount - Jumlah - - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Jendela ini menampilkan deskripsi rinci dari transaksi tersebut - - - - TransactionTableModel - - Label - Label - - - (no label) - (tidak ada label) - - - - TransactionView - - Copy address - Salin alamat - - - Copy label - Salin label - - - Copy amount - Salin Jumlah - - - Copy transaction ID - Salain ID Transaksi - - - Comma separated file (*.csv) - Berkas yang berformat(*.csv) - - - Label - Label - - - Address - Alamat - - - Exporting Failed - Mengekspor Gagal - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - - bitcoin-core - - Bitcoin Core - Bitcoin Core - - - Corrupted block database detected - Menemukan database blok yang rusak - - - Do you want to rebuild the block database now? - Apakah Anda ingin coba membangun kembali database blok sekarang? - - - Error initializing block database - Kesalahan menginisialisasi database blok - - - Error initializing wallet database environment %s! - Kesalahan menginisialisasi dompet pada database%s! - - - Error loading block database - Gagal memuat database blok - - - Error opening block database - Menemukan masalah membukakan database blok - - - Error: Disk space is low! - Gagal: Hard disk hampir terisi! - - - Importing... - mengimpor... - - - Incorrect or no genesis block found. Wrong datadir for network? - Tidak bisa cari blok pertama, atau blok pertama salah. Salah direktori untuk jaringan? - - - Not enough file descriptors available. - Deskripsi berkas tidak tersedia dengan cukup. - - - Verifying blocks... - Blok-blok sedang diverifikasi... - - - Information - Informasi - - - Signing transaction failed - Tandatangani transaksi tergagal - - - Transaction amount too small - Nilai transaksi terlalu kecil - - - Transaction too large - Transaksi terlalu besar - - - Warning - Peringatan - - - Zapping all transactions from wallet... - Setiap transaksi dalam dompet sedang di-'Zap'... - - - Unknown network specified in -onlynet: '%s' - Jaringan tidak diketahui yang ditentukan dalam -onlynet: '%s' - - - Insufficient funds - Saldo tidak mencukupi - - - Loading block index... - Memuat indeks blok... - - - Loading wallet... - Memuat dompet... - - - Cannot downgrade wallet - Tidak dapat menurunkan versi dompet - - - Rescanning... - Memindai ulang... - - - Done loading - Memuat selesai - - - Error - Gagal - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_it_IT.ts b/src/qt/locale/bitcoin_it_IT.ts deleted file mode 100644 index d97d888f23..0000000000 --- a/src/qt/locale/bitcoin_it_IT.ts +++ /dev/null @@ -1,1081 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Click destro per modificare indirizzo o etichetta - - - Create a new address - Crea un nuovo indirizzo - - - &New - Nuovo - - - Copy the currently selected address to the system clipboard - Copia l'indirizzo selezionato nella clipboard di sistema - - - &Copy - Copia - - - C&lose - Chiudi - - - Delete the currently selected address from the list - Cancella l'indirizzo attualmente selezionato dalla lista. - - - Enter address or label to search - Inserire indirizzo o etichetta da cercare - - - Export the data in the current tab to a file - Esportare i dati nella scheda corrente in un file - - - &Export - Esporta - - - &Delete - Cancella - - - Choose the address to send coins to - Scegli l'indirizzo a cui inviare denaro - - - Choose the address to receive coins with - Scegli l'indirizzo dove accreditare i coins - - - C&hoose - Scegli - - - Sending addresses - Indirizzi mandanti - - - Receiving addresses - Indirizzi riceventi - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Questi sono i suoi indirizzi Bitcoin per ricevere i pagamenti. Controlla sempre l'importo e gli indirizzi prima di inviare i coins. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Questi sono i tuoi indirizzi Bitcoin per ricevere i pagamenti. Si raccomanda di usare un nuovo indirizzo per ogni transazione. - - - &Copy Address - copia indirizzo - - - Copy &Label - copia etichetta - - - &Edit - Modifica - - - Export Address List - Esporta lista indirizzi - - - Comma separated file (*.csv) - Comma separated file (*.csv) - - - Exporting Failed - Esportazione Fallita - - - - AddressTableModel - - Label - Etichetta - - - Address - Indirizzo - - - (no label) - (nessuna etichetta) - - - - AskPassphraseDialog - - Passphrase Dialog - Finestra Password - - - Enter passphrase - Inserisci la password - - - New passphrase - Nuova password - - - Repeat new passphrase - Ripeti nuova password - - - Show password - mostra password - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Inserisci la nuova password per il portafoglio.<br/>Per favore usa una password di <b>dieci o più caratteri casuali</b>, oppure <b>otto o più parole</b>. - - - Encrypt wallet - Cripta portafoglio - - - This operation needs your wallet passphrase to unlock the wallet. - Questa operazione necessita della password del tuo portafoglio per sbloccare il portafoglio. - - - Unlock wallet - Sblocca portafoglio - - - This operation needs your wallet passphrase to decrypt the wallet. - Questa operazione necessita della password del tuo portafoglio per decriptare il portafoglio. - - - Decrypt wallet - Decripta portafoglio - - - Change passphrase - Cambia password - - - Enter the old passphrase and new passphrase to the wallet. - Inserisci la vecchia password e la nuova password per decriptare il portafoglio. - - - Confirm wallet encryption - Conferma criptaggio portafoglio - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Attenzione: Se cripti il tuo portafoglio e perdi la password, <b>PERDERAI TUTTI I TUOI BITCOIN</b>! - - - Are you sure you wish to encrypt your wallet? - Sei sicuro di voler criptare il tuo portafoglio? - - - Wallet encrypted - Portafoglio criptato - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 ora si chiuderà per concludere il processo di criptaggio. Ricorda che criptare il tuo portafoglio non può definitivamente proteggere i tuoi bitcoin da furti tramite malware che infetta il tuo computer. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANTE: Qualsiasi backup precedentemente effettuato del tuo portafoglio dovrebbe essere sostituito con il nuovo file criptato generato. Per questioni di sicurezza, backup precedenti del portafoglio non criptati diverranno inutili non appena inizi ad usare il nuovo portafoglio criptato. - - - Wallet encryption failed - Criptaggio del portafoglio fallito - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Criptaggio del portafoglio fallito per un errore interno. Il tuo portafoglio non è stato criptato. - - - The supplied passphrases do not match. - La password fornite non corrispondono. - - - Wallet unlock failed - Sblocco portafoglio fallito - - - The passphrase entered for the wallet decryption was incorrect. - La password inserita per decriptare il portafoglio è errata. - - - Wallet decryption failed - Decriptaggio portafoglio fallito - - - Wallet passphrase was successfully changed. - La password del portafoglio è stata cambiata correttamente. - - - Warning: The Caps Lock key is on! - Attenzione: Il tasto blocco delle maiuscole è attivo! - - - - BanTableModel - - IP/Netmask - IP/Netmask - - - Banned Until - Bannato fino - - - - BitcoinGUI - - Sign &message... - Firma &messaggio... - - - Synchronizing with network... - Sincronizzazione con la rete... - - - &Overview - &Panoramica - - - Node - Nodo - - - Show general overview of wallet - Mostra panoramica generale del portafoglio - - - &Transactions - Transazioni - - - Browse transaction history - Esplora cronologia transazioni - - - E&xit - Esci - - - Quit application - Termina applicazione - - - &About %1 - Di più su %1 - - - Show information about %1 - Mostra informazioni su %1 - - - About &Qt - Di più su Qt - - - Show information about Qt - Mostra informazioni su Qt - - - &Options... - Opzioni - - - Modify configuration options for %1 - Modifica opzioni di configurazione per %1 - - - &Encrypt Wallet... - Cripta portafoglio - - - &Backup Wallet... - Backup portafoglio - - - &Change Passphrase... - Cambia Password... - - - &Sending addresses... - Indirizzi di invio... - - - &Receiving addresses... - Indirizzi di ricezione... - - - Open &URI... - Apri &URI... - - - Wallet: - Portafoglio - - - default wallet - Portafoglio predefinito - - - Click to disable network activity. - Clicca per disabilitare attività di rete. - - - Network activity disabled. - Attività di rete disabilitata. - - - Click to enable network activity again. - Clicca per riabilitare attività di rete. - - - Syncing Headers (%1%)... - Sincronizzazione Header (%1%)... - - - Reindexing blocks on disk... - Reindicizzazione dei blocchi sul disco... - - - Send coins to a Bitcoin address - Invia monete ad un indirizzo Bitcoin... - - - Backup wallet to another location - Backup del portafoglio in un'altra posizione - - - Change the passphrase used for wallet encryption - Cambia la password usata per criptare il portafoglio - - - &Debug window - Finestra di debug - - - Open debugging and diagnostic console - Apri console di debug e diagnosi - - - &Verify message... - Verifica messaggio... - - - Bitcoin - Bitcoin - - - Wallet - Portafoglio - - - &Send - Invia - - - &Receive - Ricevi - - - &Show / Hide - Mostra / Nascondi - - - Show or hide the main Window - Mostra o nascondi la finestra principale - - - Encrypt the private keys that belong to your wallet - Cripta le chiavi private che appartengono al tuo portafoglio - - - Sign messages with your Bitcoin addresses to prove you own them - Firma messaggi con i tuoi indirizzi Bitcoin per provare che li possiedi - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifica messaggi per accertarti che siano firmati dagli indirizzi Bitcoin specificati - - - &File - File - - - &Settings - Impostazioni - - - &Help - Aiuto - - - Tabs toolbar - Barra degli strumenti - - - Request payments (generates QR codes and bitcoin: URIs) - Richiedi pagamenti (genera codici QR e bitcoin: URI) - - - Show the list of used sending addresses and labels - Mostra la lista degli indirizzi di invio usati e le relative etichette - - - Show the list of used receiving addresses and labels - Mostra la lista degli indirizzi di ricezione usati e le relative etichette - - - Open a bitcoin: URI or payment request - Apri un bitcoin: URI o una richiesta di pagamento - - - &Command-line options - Opzioni linea di comando - - - Indexing blocks on disk... - Indicizzazione blocchi su disco... - - - Processing blocks on disk... - Elaborazione blocchi su disco... - - - %1 behind - %1 indietro - - - Last received block was generated %1 ago. - Ultimo blocco ricevuto generato %1 fa. - - - Transactions after this will not yet be visible. - Le transazioni dopo di questa non saranno più visibili - - - Error - Errore - - - Warning - Attenzione - - - Information - Informazione - - - Up to date - Aggiornato - - - Show the %1 help message to get a list with possible Bitcoin command-line options - Mostra il %1 messaggio d'aiuto per ottenere una lista con le possibili opzioni per la riga di comando di Bitcoin - - - Date: %1 - - Data: %1 - - - - Amount: %1 - - Importo: %1 - - - - Type: %1 - - Tipo: %1 - - - - Label: %1 - - Etichetta: %1 - - - - Address: %1 - - Indirizzo: %1 - - - - Sent transaction - Transazione inviata - - - Incoming transaction - Transazione in arrivo - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Si è verificato un errore fatale. Bitcoin non può continuare in maniera sicura e sarà chiuso. - - - - CoinControlDialog - - Coin Selection - Selezione delle monete - - - Quantity: - Quantità: - - - Bytes: - Bytes: - - - Amount: - Importo: - - - Fee: - Tassa: - - - Dust: - Minimo: - - - Change: - Cambio: - - - (un)select all - (de)seleziona tutto - - - Tree mode - Modalità albero - - - List mode - Modalità lista - - - Amount - Importo - - - Received with label - Ricevuto con etichetta - - - Received with address - Ricevuto con indirizzo - - - Date - Data - - - Confirmations - Conferme - - - Confirmed - Confermato - - - Copy address - Copia indirizzo - - - Copy label - Copia etichetta - - - Copy amount - Copia importo - - - Copy transaction ID - Copia ID transazione - - - Lock unspent - Blocca non spese - - - Unlock unspent - Sblocca non spese - - - Copy quantity - Copia quantità - - - Copy fee - Copia tassa - - - Copy bytes - Copia bytes - - - Copy dust - Copia minimo - - - Copy change - Copia cambio - - - (%1 locked) - (%1 bloccato) - - - yes - si - - - no - no - - - This label turns red if any recipient receives an amount smaller than the current dust threshold. - Questa etichetta diventa rossa se qualsiasi destinatario riceve un importo inferiore al limite minimo corrente. - - - (no label) - (nessuna etichetta) - - - (change) - (cambio) - - - - EditAddressDialog - - Edit Address - Modifica Indirizzo - - - &Label - &Etichetta - - - The label associated with this address list entry - L'etichetta associata con questa voce dell'elenco indirizzi - - - The address associated with this address list entry. This can only be modified for sending addresses. - L'indirizzo associato con questa voce dell'elenco indirizzi. Può essere modificato per inviare indirizzi. - - - &Address - &Indirizzo - - - New sending address - Nuovo indirizzo di invio - - - Edit receiving address - Modifica l'indirizzo di ricezione - - - Edit sending address - Modifica l'indirizzo di invio - - - The entered address "%1" is not a valid Bitcoin address. - L'indirizzo inserito "%1" non è un indirizzo Bitcoin valido. - - - Could not unlock wallet. - Non posso sbloccare il portafoglio. - - - New key generation failed. - Generazione della nuova chiave fallita. - - - - FreespaceChecker - - A new data directory will be created. - Una nuova cartella dei dati verrà creata. - - - name - nome - - - Directory already exists. Add %1 if you intend to create a new directory here. - La cartella esiste già. Aggiungi %1 se vuoi creare una nuova cartella qui. - - - Path already exists, and is not a directory. - Il percorso esiste già, e non è una cartella. - - - Cannot create data directory here. - Non posso creare la cartella dei dati qui. - - - - HelpMessageDialog - - version - versione - - - About %1 - Circa %1 - - - Command-line options - Opzioni linea di comando - - - - Intro - - Welcome - Benvenuto - - - Bitcoin - Bitcoin - - - The wallet will also be stored in this directory. - Il wallet verra' inoltre memorizzato su questa cartella. - - - Error - Errore - - - - ModalOverlay - - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Le transazioni recenti potrebbero non essere ancora visibili, e quindi il saldo del wallet potrebbe essere incorretto. Questa informazione verra' corretta non appena il tuo wallet ha finito di sincronizzarsi con la rete bitcoin, come specificato di seguito. - - - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Tentare di spendere bitcoin che sono affetti da transazioni non ancora mostrate, non verra' accettato dal network. - - - Number of blocks left - Numero di blocchi rimanente - - - - OpenURIDialog - - - OptionsDialog - - Options - Opzioni - - - Configuration options - Opzioni di configurazione - - - Error - Errore - - - This change would require a client restart. - Questa modifica richiede un riavvio del client - - - - OverviewPage - - Available: - Disponibile: - - - Your current spendable balance - Saldo disponibile - - - Recent transactions - Transazioni recenti - - - - PaymentServer - - Payment request rejected - Richiesta di pagamento rifiutata - - - Refund from %1 - Rimborso da %1 - - - - PeerTableModel - - Sent - Inviato - - - - QObject - - Amount - Importo - - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - Sent - Inviato - - - default wallet - Portafoglio predefinito - - - - ReceiveCoinsDialog - - Copy label - Copia etichetta - - - Copy amount - Copia importo - - - - ReceiveRequestDialog - - Address - Indirizzo - - - Amount - Importo - - - Label - Etichetta - - - Wallet - Portafoglio - - - - RecentRequestsTableModel - - Date - Data - - - Label - Etichetta - - - (no label) - (nessuna etichetta) - - - - SendCoinsDialog - - Quantity: - Quantità: - - - Bytes: - Bytes: - - - Amount: - Importo: - - - Fee: - Tassa: - - - Change: - Cambio: - - - Dust: - Minimo: - - - Copy quantity - Copia quantità - - - Copy amount - Copia importo - - - Copy fee - Copia tassa - - - Copy bytes - Copia bytes - - - Copy dust - Copia minimo - - - Copy change - Copia cambio - - - (no label) - (nessuna etichetta) - - - - SendCoinsEntry - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - Date - Data - - - Amount - Importo - - - - TransactionDescDialog - - - TransactionTableModel - - Date - Data - - - Label - Etichetta - - - (no label) - (nessuna etichetta) - - - - TransactionView - - Copy address - Copia indirizzo - - - Copy label - Copia etichetta - - - Copy amount - Copia importo - - - Copy transaction ID - Copia ID transazione - - - Comma separated file (*.csv) - Comma separated file (*.csv) - - - Confirmed - Confermato - - - Date - Data - - - Label - Etichetta - - - Address - Indirizzo - - - Exporting Failed - Esportazione Fallita - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - - bitcoin-core - - Information - Informazione - - - Warning - Attenzione - - - Error - Errore - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts index 055b4229c1..26150cbc7c 100644 --- a/src/qt/locale/bitcoin_lt.ts +++ b/src/qt/locale/bitcoin_lt.ts @@ -131,6 +131,10 @@ Repeat new passphrase Pakartokite naują slaptafrazę + + Show passphrase + Rodyti slaptafrazę + Encrypt wallet Užšifruoti piniginę diff --git a/src/qt/locale/bitcoin_lv_LV.ts b/src/qt/locale/bitcoin_lv_LV.ts deleted file mode 100644 index fc74e787ed..0000000000 --- a/src/qt/locale/bitcoin_lv_LV.ts +++ /dev/null @@ -1,1279 +0,0 @@ - - - AddressBookPage - - Create a new address - Izveidot jaunu adresi - - - &New - &Jauns - - - Copy the currently selected address to the system clipboard - Kopēt iezīmēto adresi uz starpliktuvi - - - &Copy - &Kopēt - - - C&lose - &Aizvērt - - - Delete the currently selected address from the list - Izdzēst iezīmētās adreses no saraksta - - - Enter address or label to search - Ierakstiet meklējamo nosaukumu vai adresi - - - Export the data in the current tab to a file - Datus no tekošā ieliktņa eksportēt uz failu - - - &Export - &Eksportēt - - - &Delete - &Dzēst - - - Choose the address to send coins to - Izvēlies adresi uz kuru sūtīt bitcoins - - - Choose the address to receive coins with - Izvēlies adresi ar kuru saņemt bitcoins - - - &Copy Address - &Kopēt adresi - - - Copy &Label - Kopēt &Marķējumu - - - &Edit - &Rediģēt - - - Export Address List - Eksportēt Adrešu Sarakstu - - - Exporting Failed - Eksportēšana Neizdevās - - - - AddressTableModel - - Label - Nosaukums - - - Address - Adrese - - - (no label) - (bez nosaukuma) - - - - AskPassphraseDialog - - Passphrase Dialog - Paroles dialogs - - - Enter passphrase - Ierakstiet paroli - - - New passphrase - Jauna parole - - - Repeat new passphrase - Jaunā parole vēlreiz - - - Show password - Rādīt paroli - - - Encrypt wallet - Šifrēt maciņu - - - Unlock wallet - Atslēgt maciņu - - - Decrypt wallet - Atšifrēt maciņu - - - Confirm wallet encryption - Apstiprināt maciņa šifrēšanu - - - Are you sure you wish to encrypt your wallet? - Vai tu tiešām vēlies šifrēt savu maciņu? - - - Wallet encryption failed - Maciņa šifrēšana neizdevās - - - - BanTableModel - - - BitcoinGUI - - Sign &message... - Parakstīt &ziņojumu... - - - Synchronizing with network... - Sinhronizācija ar tīklu... - - - &Overview - &Pārskats - - - Node - Node - - - Show general overview of wallet - Rādīt vispārēju maciņa pārskatu - - - &Transactions - &Transakcijas - - - Browse transaction history - Skatīt transakciju vēsturi - - - E&xit - &Iziet - - - Quit application - Aizvērt programmu - - - About &Qt - Par &Qt - - - Show information about Qt - Parādīt informāciju par Qt - - - &Options... - &Iespējas... - - - &Encrypt Wallet... - Šifrēt &maciņu... - - - &Backup Wallet... - &Maciņa Rezerves Kopija... - - - &Change Passphrase... - Mainīt &Paroli... - - - &Sending addresses... - &Sūtīšanas adreses... - - - &Receiving addresses... - Saņemšanas &adreses... - - - Open &URI... - Atvērt &URI... - - - Reindexing blocks on disk... - Bloku reindeksēšana no diska... - - - Send coins to a Bitcoin address - Nosūtīt bitkoinus uz Bitcoin adresi - - - Backup wallet to another location - Izveidot maciņa rezerves kopiju citur - - - Change the passphrase used for wallet encryption - Mainīt maciņa šifrēšanas paroli - - - &Debug window - &Atkļūdošanas logs - - - Open debugging and diagnostic console - Atvērt atkļūdošanas un diagnostikas konsoli - - - &Verify message... - &Pārbaudīt ziņojumu... - - - Bitcoin - Bitcoin - - - Wallet - Maciņš - - - &Send - &Sūtīt - - - &Receive - &Saņemt - - - &Show / Hide - &Rādīt / Paslēpt - - - Show or hide the main Window - Parādīt vai paslēpt galveno Logu - - - Encrypt the private keys that belong to your wallet - Šifrēt privātās atslēgas kuras pieder tavam maciņam - - - Sign messages with your Bitcoin addresses to prove you own them - Parakstīt ziņojumus ar savām Bitcoin adresēm lai pierādītu ka tās pieder tev - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Pārbaudīt ziņojumus lai pārliecinātos, ka tie tika parakstīti ar norādītajām Bitcoin adresēm - - - &File - &Fails - - - &Settings - &Uzstādījumi - - - &Help - &Palīdzība - - - Tabs toolbar - Ciļņu rīkjosla - - - Request payments (generates QR codes and bitcoin: URIs) - Pieprasīt maksājumus (izveido QR kodu un bitcoin: URIs) - - - Open a bitcoin: URI or payment request - Atvērt bitcoin URI vai maksājuma pieprasījumu - - - &Command-line options - &Komandrindas iespējas - - - %1 behind - %1 aizmugurē - - - Transactions after this will not yet be visible. - Transakcijas pēc šī vel nebūs redzamas - - - Error - Kļūda - - - Warning - Brīdinājums - - - Information - Informācija - - - Up to date - Sinhronizēts - - - Catching up... - Sinhronizējos... - - - Sent transaction - Transakcija nosūtīta - - - Incoming transaction - Ienākoša transakcija - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Maciņš ir <b>šifrēts</b> un pašlaik <b>atslēgts</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Maciņš ir <b>šifrēts</b> un pašlaik <b>slēgts</b> - - - - CoinControlDialog - - Quantity: - Daudzums: - - - Bytes: - Baiti: - - - Amount: - Daudzums: - - - Fee: - Maksa: - - - After Fee: - Pēc Maksas: - - - Change: - Atlikums: - - - (un)select all - iezīmēt visus - - - Tree mode - Koka režīms - - - List mode - Saraksta režīms - - - Amount - Daudzums - - - Date - Datums - - - Confirmations - Apstiprinājumi - - - Confirmed - Apstiprināts - - - (no label) - (bez nosaukuma) - - - - EditAddressDialog - - Edit Address - Mainīt adrese - - - &Label - &Nosaukums - - - &Address - &Adrese - - - - FreespaceChecker - - A new data directory will be created. - Tiks izveidota jauna datu mape. - - - name - vārds - - - Path already exists, and is not a directory. - Šāds ceļš jau pastāv un tā nav mape. - - - Cannot create data directory here. - Šeit nevar izveidot datu mapi. - - - - HelpMessageDialog - - version - versija - - - (%1-bit) - (%1-biti) - - - Command-line options - Komandrindas iespējas - - - - Intro - - Welcome - Sveiciens - - - Use the default data directory - Izmantot noklusēto datu mapi - - - Use a custom data directory: - Izmantot pielāgotu datu mapi: - - - Bitcoin - Bitcoin - - - Error - Kļūda - - - - ModalOverlay - - Form - Forma - - - Last block time - Pēdējā bloka laiks - - - - OpenURIDialog - - Open URI - Atvērt URI - - - Open payment request from URI or file - Atvērt maksājuma pieprasījumu no URI vai datnes - - - URI: - URI: - - - Select payment request file - Izvēlies maksājuma pieprasījuma datni - - - - OptionsDialog - - Options - Iespējas - - - &Main - &Galvenais - - - Size of &database cache - &Datubāzes kešatmiņas izmērs - - - MB - MB - - - Number of script &verification threads - Skriptu &pārbaudes pavedienu skaits - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Starpniekservera IP adrese (piem. IPv4: 127.0.0.1 / IPv6: ::1) - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Minimizēt nevis aizvērt aplikāciju, kad logs tiek aizvērts. Kad šī iespēja ir ieslēgta, aplikācija tiks aizvērta, izvēloties Aizvērt izvēlnē. - - - Active command-line options that override above options: - Aktīvās komandrindas opcijas, kuras pārspēko šos iestatījumus: - - - Reset all client options to default. - Atiestatīt visus klienta iestatījumus uz noklusējumu. - - - &Reset Options - &Atiestatīt Iestatījumus. - - - &Network - &Tīkls - - - W&allet - &Maciņš - - - Expert - Eksperts - - - Enable coin &control features - Ieslēgt bitcoin &kontroles funkcijas - - - &Spend unconfirmed change - &Tērēt neapstiprinātu atlikumu - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Uz rūtera automātiski atvērt Bitcoin klienta portu. Tas strādā tikai tad, ja rūteris atbalsta UPnP un tas ir ieslēgts. - - - Map port using &UPnP - Kartēt portu, izmantojot &UPnP - - - Proxy &IP: - Starpniekservera &IP: - - - &Port: - &Ports: - - - Port of the proxy (e.g. 9050) - Starpniekservera ports (piem. 9050) - - - &Window - &Logs - - - Show only a tray icon after minimizing the window. - Pēc loga minimizācijas rādīt tikai ikonu sistēmas teknē. - - - &Minimize to the tray instead of the taskbar - &Minimizēt uz sistēmas tekni, nevis rīkjoslu - - - M&inimize on close - M&inimizēt aizverot - - - &Display - &Izskats - - - User Interface &language: - Lietotāja interfeiss un &valoda: - - - &Unit to show amounts in: - &Vienības, kurās attēlot daudzumus: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Izvēlēties dalījuma vienību pēc noklusēšanas, ko izmantot interfeisā un nosūtot bitkoinus. - - - Whether to show coin control features or not. - Vai rādīt Bitcoin kontroles funkcijas vai nē. - - - &OK - &Labi - - - &Cancel - &Atcelt - - - default - pēc noklusēšanas - - - none - neviena - - - Confirm options reset - Apstiprināt iestatījumu atiestatīšanu - - - Error - Kļūda - - - The supplied proxy address is invalid. - Norādītā starpniekservera adrese nav derīga. - - - - OverviewPage - - Form - Forma - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Attēlotā informācija var būt novecojusi. Jūsu maciņš pēc savienojuma izveides automātiski sinhronizējas ar Bitcoin tīklu, taču šis process vēl nav beidzies. - - - Available: - Pieejams: - - - Your current spendable balance - Tava pašreizējā tērējamā bilance - - - Pending: - Neizšķirts: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Kopējā apstiprināmo transakciju vērtība, vēl nav ieskaitīta tērējamajā bilancē - - - Immature: - Nenobriedušu: - - - Total: - Kopsumma: - - - Your current total balance - Jūsu kopējā tekošā bilance - - - - PaymentServer - - - PeerTableModel - - - QObject - - Amount - Daudzums - - - %1 h - %1 st - - - %1 m - %1 m - - - N/A - N/A - - - %1 and %2 - %1 un %2 - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - unknown - nav zināms - - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - N/A - N/A - - - Client version - Klienta versija - - - &Information - &Informācija - - - Debug window - Atkļūdošanas logs - - - General - Vispārējs - - - Startup time - Sākuma laiks - - - Network - Tīkls - - - Name - Vārds - - - Number of connections - Savienojumu skaits - - - Block chain - Bloku virkne - - - Current number of blocks - Pašreizējais bloku skaits - - - Last block time - Pēdējā bloka laiks - - - &Open - &Atvērt - - - &Console - &Konsole - - - &Network Traffic - &Tīkla Satiksme - - - Totals - Kopsummas - - - In: - Ie.: - - - Out: - Iz.: - - - Debug log file - Atkļūdošanas žurnāla datne - - - Clear console - Notīrīt konsoli - - - - ReceiveCoinsDialog - - &Amount: - &Daudzums: - - - &Label: - &Nosaukums: - - - &Message: - &Ziņojums: - - - Clear all fields of the form. - Notīrīt visus laukus formā. - - - Clear - Notīrīt - - - Requested payments history - Pieprasīto maksājumu vēsture - - - &Request payment - &Pieprasīt maksājumu - - - Show the selected request (does the same as double clicking an entry) - Parādīt atlasītos pieprasījumus (tas pats, kas dubultklikšķis uz ieraksta) - - - Show - Rādīt - - - Remove the selected entries from the list - Noņemt atlasītos ierakstus no saraksta. - - - Remove - Noņemt - - - - ReceiveRequestDialog - - QR Code - QR Kods - - - Copy &URI - Kopēt &URI - - - Copy &Address - Kopēt &Adresi - - - &Save Image... - &Saglabāt Attēlu... - - - Address - Adrese - - - Label - Nosaukums - - - Wallet - Maciņš - - - - RecentRequestsTableModel - - Label - Nosaukums - - - (no label) - (bez nosaukuma) - - - - SendCoinsDialog - - Send Coins - Sūtīt Bitkoinus - - - Coin Control Features - Bitcoin Kontroles Funkcijas - - - Inputs... - Ieejas... - - - automatically selected - automātiski atlasīts - - - Insufficient funds! - Nepietiekami līdzekļi! - - - Quantity: - Daudzums: - - - Bytes: - Baiti: - - - Amount: - Daudzums: - - - Fee: - Maksa: - - - After Fee: - Pēc Maksas: - - - Change: - Atlikums: - - - Custom change address - Pielāgota atlikuma adrese - - - Transaction Fee: - Transakcijas maksa: - - - Send to multiple recipients at once - Sūtīt vairākiem saņēmējiem uzreiz - - - Add &Recipient - &Pievienot Saņēmēju - - - Clear all fields of the form. - Notīrīt visus laukus formā. - - - Clear &All - &Notīrīt visu - - - Balance: - Bilance: - - - Confirm the send action - Apstiprināt nosūtīšanu - - - S&end - &Sūtīt - - - Transaction fee - Transakcijas maksa - - - (no label) - (bez nosaukuma) - - - - SendCoinsEntry - - A&mount: - Apjo&ms - - - Pay &To: - &Saņēmējs: - - - &Label: - &Nosaukums: - - - Choose previously used address - Izvēlies iepriekš izmantoto adresi - - - This is a normal payment. - Šis ir parasts maksājums. - - - Alt+A - Alt+A - - - Paste address from clipboard - ielīmēt adresi no starpliktuves - - - Alt+P - Alt+P - - - Remove this entry - Noņem šo ierakstu - - - Message: - Ziņojums: - - - Pay To: - Maksāt: - - - Memo: - Memo: - - - - SendConfirmationDialog - - - ShutdownWindow - - Do not shut down the computer until this window disappears. - Neizslēdziet datoru kamēr šis logs nepazūd. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Paraksti - Parakstīt / Pabaudīt Ziņojumu - - - &Sign Message - Parakstīt &Ziņojumu - - - Choose previously used address - Izvēlies iepriekš izmantoto adresi - - - Alt+A - Alt+A - - - Paste address from clipboard - ielīmēt adresi no starpliktuves - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Šeit ievadi ziņojumu kuru vēlies parakstīt - - - Signature - Paraksts - - - Copy the current signature to the system clipboard - Kopēt parakstu uz sistēmas starpliktuvi - - - Sign the message to prove you own this Bitcoin address - Parakstīt ziņojumu lai pierādītu, ka esi šīs Bitcoin adreses īpašnieks. - - - Sign &Message - Parakstīt &Ziņojumu - - - Reset all sign message fields - Atiestatīt visus laukus - - - Clear &All - &Notīrīt visu - - - &Verify Message - &Pārbaudīt Ziņojumu - - - Verify &Message - &Pārbaudīt Ziņojumu - - - Reset all verify message fields - Atiestatīt visus laukus - - - - SplashScreen - - [testnet] - [testnets] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Šis panelis parāda transakcijas detaļas - - - - TransactionTableModel - - Label - Nosaukums - - - (no label) - (bez nosaukuma) - - - - TransactionView - - Label - Nosaukums - - - Address - Adrese - - - Exporting Failed - Eksportēšana Neizdevās - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - - bitcoin-core - - Bitcoin Core - Bitcoin Core - - - Error loading block database - Kļūda ielādējot bloku datubāzi - - - Error: Disk space is low! - Kļūda: Zema diska vieta! - - - Importing... - Importē... - - - Verifying blocks... - Pārbauda blokus... - - - Information - Informācija - - - Signing transaction failed - Transakcijas parakstīšana neizdevās - - - Transaction amount too small - Transakcijas summa ir pārāk maza - - - Transaction too large - Transakcija ir pārāk liela - - - Warning - Brīdinājums - - - Unknown network specified in -onlynet: '%s' - -onlynet komandā norādīts nepazīstams tīkls: '%s' - - - Insufficient funds - Nepietiek bitkoinu - - - Loading block index... - Ielādē bloku indeksu... - - - Loading wallet... - Ielādē maciņu... - - - Cannot downgrade wallet - Nevar maciņa formātu padarīt vecāku - - - Rescanning... - Skanēju no jauna... - - - Done loading - Ielāde pabeigta - - - Error - Kļūda - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_ms_MY.ts b/src/qt/locale/bitcoin_ms_MY.ts deleted file mode 100644 index 075c44c75f..0000000000 --- a/src/qt/locale/bitcoin_ms_MY.ts +++ /dev/null @@ -1,632 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Klik-kanan untuk edit alamat ataupun label - - - Create a new address - Cipta alamat baru - - - &New - &Baru - - - Copy the currently selected address to the system clipboard - Salin alamat terpilih ke dalam sistem papan klip - - - &Copy - &Salin - - - C&lose - &Tutup - - - Delete the currently selected address from the list - Padam alamat semasa yang dipilih dari senaraiyang dipilih dari senarai - - - Enter address or label to search - Masukkan alamat atau label untuk carian - - - - Export the data in the current tab to a file - -Alihkan fail data ke dalam tab semasa - - - &Export - &Eksport - - - &Delete - &Padam - - - Choose the address to send coins to - Pilih alamat untuk hantar koin kepada - - - Choose the address to receive coins with - Pilih alamat untuk menerima koin dengan - - - C&hoose - &Pilih - - - Sending addresses - alamat-alamat penghantaran - - - Receiving addresses - alamat-alamat penerimaan - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Ini adalah alamat Bitcoin anda untuk pembayaran. Periksa jumlah dan alamat penerima sebelum membuat penghantaran koin sentiasa. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Ini adalah alamat Bitcoin anda untuk menerima pembayaraan. Anda disyorkan untuk menguna alamat menerima untuk setiap transaksi. - - - &Copy Address - &Salin Aamat - - - Copy &Label - Salin & Label - - - &Edit - &Edit - - - Export Address List - Eskport Senarai Alamat - - - Comma separated file (*.csv) - Fail dibahagi oleh koma(*.csv) - - - Exporting Failed - Mengeksport Gagal - - - There was an error trying to save the address list to %1. Please try again. - Terdapat ralat semasa cubaan menyimpan senarai alamat kepada %1. Sila cuba lagi. - - - - AddressTableModel - - Label - Label - - - Address - Alamat - - - (no label) - (tiada label) - - - - AskPassphraseDialog - - Passphrase Dialog - Dialog frasa laluan - - - Enter passphrase - memasukkan frasa laluan - - - New passphrase - Frasa laluan baru - - - Repeat new passphrase - Ulangi frasa laluan baru - - - Show password - Tunjukkan kata laluan - - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Memasukkan frasa laluan baru kepada dompet.<br/>Sila mengunakkan frasa laluan yang<b>mengandungi 10 atau lebih aksara rawak</b>,ataupun<b>lapan atau lebih perkataan.</b> - - - Encrypt wallet - Dompet encrypt - - - This operation needs your wallet passphrase to unlock the wallet. - Operasi ini perlukan frasa laluan dompet anda untuk membuka kunci dompet. - - - Unlock wallet - Membuka kunci dompet - - - This operation needs your wallet passphrase to decrypt the wallet. - Operasi ini memerlukan frasa laluan dompet anda untuk menyahsulit dompet. - - - Decrypt wallet - Menyahsulit dompet - - - Change passphrase - Menukar frasa laluan - - - Enter the old passphrase and new passphrase to the wallet. - Memasukkan frasa laluan lama dan frasa laluan baru untuk. - - - Confirm wallet encryption - Mengesahkan enkripsi dompet - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Amaran: Jika anda enkripkan dompet anda dan hilangkan frasa laluan, anda akan <b>ANDA AKAN HILANGKAN SEMUA BITCOIN ANDA</b>! - - - Are you sure you wish to encrypt your wallet? - Anda pasti untuk membuat enkripsi dompet anda? - - - Wallet encrypted - Dompet dienkripsi - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 akan tutup untuk menyelesaikan proses enkripsi. Ingat bahawa enkripsi tidak boleh melidungi sepenuhnya bitcoins anda daripada dicuri oleh malware yang menjangkiti komputer anda. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - PENTING: Apa-apa sandaran yang anda buat sebelum ini untuk fail dompet anda hendaklah digantikan dengan fail dompet enkripsi yang dijana baru. Untuk sebab-sebab keselamatan , sandaran fail dompet yang belum dibuat enkripsi sebelum ini akan menjadi tidak berguna secepat anda mula guna dompet enkripsi baru. - - - Wallet encryption failed - Enkripsi dompet gagal - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Enkripsi dompet gagal kerana ralat dalaman. Dompet anda tidak dienkripkan. - - - The supplied passphrases do not match. - Frasa laluan yang dibekalkan tidak sepadan. - - - Wallet unlock failed - Pembukaan kunci dompet gagal - - - The passphrase entered for the wallet decryption was incorrect. - Frasa laluan dimasukki untuk dekripsi dompet adalah tidak betul. - - - Wallet decryption failed - Dekripsi dompet gagal - - - Wallet passphrase was successfully changed. - Frasa laluan dompet berjaya ditukar. - - - Warning: The Caps Lock key is on! - Amaran: Kunci Caps Lock buka! - - - - BanTableModel - - IP/Netmask - IP/Netmask - - - Banned Until - Diharamkan sehingga - - - - BitcoinGUI - - Sign &message... - Tandatangan & mesej... - - - Synchronizing with network... - Penyegerakan dengan rangkaian... - - - &Overview - &Gambaran Keseluruhan - - - Node - Nod - - - Show general overview of wallet - Tunjuk gambaran keseluruhan umum dompet - - - &Transactions - &Transaksi - - - Browse transaction history - Menyemak imbas sejarah transaksi - - - E&xit - &Keluar - - - Quit application - Berhenti aplikasi - - - &About %1 - &Mengenai%1 - - - Show information about %1 - Menunjuk informasi mengenai%1 - - - About &Qt - Mengenai &Qt - - - Show information about Qt - Menunjuk informasi megenai Qt - - - &Options... - Pilihan - - - Modify configuration options for %1 - Mengubah suai pilihan konfigurasi untuk %1 - - - &Encrypt Wallet... - &Enkripsi Dompet - - - &Backup Wallet... - &Dompet Sandaran... - - - &Change Passphrase... - &Menukar frasa-laluan - - - &Sending addresses... - &Menghantar frasa-laluan - - - &Receiving addresses... - &Menerima frasa-laluan... - - - Open &URI... - Buka &URI... - - - Wallet: - dompet - - - default wallet - dompet lalai - - - - Click to disable network activity. - Tekan untuk lumpuhkan rangkaian - - - Network activity disabled. - Aktiviti rangkaian dilumpuhkan - - - Click to enable network activity again. - Tekan untuk mengaktifkan rangkain semula - - - Syncing Headers (%1%)... - Penyelarasn tajuk (%1%)... - - - Reindexing blocks on disk... - Reindexi blok pada cakera... - - - Send coins to a Bitcoin address - Menghantar koin kepada alamat Bitcoin - - - Backup wallet to another location - Wallet sandaran ke lokasi lain - - - Change the passphrase used for wallet encryption - Tukar kata laluan untuk dompet disulitkan - - - &Debug window - Tetingkap windows - - - Open debugging and diagnostic console - buka debug dan konsol diagnostik - - - &Verify message... - sahkan mesej - - - Bitcoin - Bitcoin - - - Wallet - dompet - - - &Send - hantar - - - &Receive - terima - - - &Show / Hide - &tunjuk/sembunyi - - - Show or hide the main Window - tunjuk atau sembunyi tetingkap utama - - - Encrypt the private keys that belong to your wallet - sulitkan kata laluan milik peribadi anda - - - Sign messages with your Bitcoin addresses to prove you own them - sahkan mesej bersama alamat bitcoin anda untuk menunjukkan alamat ini anda punya - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Sahkan mesej untuk memastikan mereka telah ditandatangani dengan alamat Bitcoin yang ditentukan - - - &File - fail - - - &Settings - tetapan - - - &Help - tolong - - - Tabs toolbar - Bar alat tab - - - - Request payments (generates QR codes and bitcoin: URIs) - Request payments (generates QR codes and bitcoin: URIs) - - - - Show the list of used sending addresses and labels - Tunjukkan senarai alamat dan label yang digunakan - - - - - CoinControlDialog - - (no label) - (tiada label) - - - - EditAddressDialog - - Edit Address - Alamat - - - &Address - Alamat - - - - FreespaceChecker - - - HelpMessageDialog - - - Intro - - Bitcoin - Bitcoin - - - - ModalOverlay - - - OpenURIDialog - - - OptionsDialog - - - OverviewPage - - - PaymentServer - - - PeerTableModel - - - QObject - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - default wallet - dompet lalai - - - - - ReceiveCoinsDialog - - - ReceiveRequestDialog - - Copy &Address - &Salin Alamat - - - Address - Alamat - - - Label - Label - - - Wallet - dompet - - - - RecentRequestsTableModel - - Label - Label - - - (no label) - (tiada label) - - - - SendCoinsDialog - - Balance: - Baki - - - (no label) - (tiada label) - - - - SendCoinsEntry - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - - TransactionDescDialog - - - TransactionTableModel - - Label - Label - - - (no label) - (tiada label) - - - - TransactionView - - Comma separated file (*.csv) - Fail dibahagi oleh koma(*.csv) - - - Label - Label - - - Address - Alamat - - - Exporting Failed - Mengeksport Gagal - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - Export the data in the current tab to a file - -Alihkan fail data ke dalam tab semasa - - - - bitcoin-core - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_nl_NL.ts b/src/qt/locale/bitcoin_nl_NL.ts deleted file mode 100644 index e17b962eca..0000000000 --- a/src/qt/locale/bitcoin_nl_NL.ts +++ /dev/null @@ -1,1029 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Klik met de rechter muisknop om dit adres of label te veranderen - - - Create a new address - Maak een nieuw adres aan - - - &New - &Nieuw - - - Copy the currently selected address to the system clipboard - Kopieer het geselecteerde adres naar het klembord - - - &Copy - &Kopieren - - - C&lose - S&luiten - - - Delete the currently selected address from the list - Verwijder het geselecteerde adres uit de lijst - - - Export the data in the current tab to a file - Exporteer de data in dit tab naar een bestand - - - &Export - &Exporteer - - - &Delete - &Verwijderen - - - Choose the address to send coins to - Selecteer het adres om munten naar toe te sturen. - - - Choose the address to receive coins with - Selecteer het adres om munten mee te ontvangen. - - - C&hoose - S&electeren - - - Sending addresses - Verzendadres - - - Receiving addresses - Ontvangstadres - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Dit zijn uw Bitcoin adressen voor het versturen van betalingen. Controleer altijd het bedrag en het ontvangstadres voordat u munten verstuurd. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Dit zijn uw Bitcoin adressen voor het ontvangen van betalingen. Het wordt aanbevolen om voor elke transactie een nieuw ontvangstadres te gebruiken. - - - &Copy Address - &Adres Kopiëren - - - Copy &Label - &Label Kopieren - - - &Edit - &Bewerken - - - Export Address List - Adreslijst Exporteren - - - Comma separated file (*.csv) - Komma gescheiden bestand (*.csv) - - - Exporting Failed - Exporteren Mislukt - - - There was an error trying to save the address list to %1. Please try again. - Er was een fout bij het opslaan van de adreslijst naar %1. Probeer het opnieuw. - - - - AddressTableModel - - Label - Label - - - Address - Adres - - - (no label) - (geen label) - - - - AskPassphraseDialog - - Passphrase Dialog - Wachtwoord scherm - - - Enter passphrase - Voer wachtwoord in - - - New passphrase - Nieuw wachtwoord - - - Repeat new passphrase - Herhaal nieuw wachtwoord - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Voer je nieuwe wachtwoord in je portemonnee in.<br/>Gebruik een wachtwoord van <b>tien of meer willekeurige karakters</b>, of <b>acht of meer woorden</b>. - - - Encrypt wallet - Versleutel portemonnee - - - This operation needs your wallet passphrase to unlock the wallet. - Deze actie heeft je wachtwoord nodig om je portemonnee te ontgrendelen - - - Unlock wallet - Ontgrendel portemonnee - - - This operation needs your wallet passphrase to decrypt the wallet. - Deze actie heeft je wachtwoord nodig om je portemonnee te decoderen. - - - Decrypt wallet - Decodeer portemonnee - - - Change passphrase - Verander wachtwoord - - - Enter the old passphrase and new passphrase to the wallet. - Voer het oude en nieuwe wachtwoord in voor de portemonnee. - - - Confirm wallet encryption - Bevestig portemonnee versleuteling - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Waarschuwing: Als je je portemonnee versleutelt en je wachtwoord kwijtraakt, raak je <b>AL JE BITCOINS KWIJT</b>! - - - Are you sure you wish to encrypt your wallet? - Weet je zeker dat je je portemonnee wilt versleutelen? - - - Wallet encrypted - Portemonnee versleuteld - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 zal nu sluiten om het versleutel proces te voltooien. Onthoudt dat het versleutelen van je portemonnee jouw bitcoins niet volledig van diefstal via malware kan beschermen. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - BELANGRIJK: Alle vorige backups die je hebt gemaakt van het portemonnee bestand moeten vervangen worden door het nieuwe gemaakte versleutelde portemonnee bestand. Voor beveiligingsredenen zullen vorige backups van het niet versleutelde portemonnee bestand niet meer werken zodra je gebruik maakt van de nieuwe versleutelde portemonnee. - - - Wallet encryption failed - Portemonnee versleutelen mislukt - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Portemonnee versleutelen mislukt vanwege een interne fout. Je portemonnee is niet versleuteld. - - - The supplied passphrases do not match. - De opgegeven wachtwoorden zijn niet identiek. - - - Wallet unlock failed - Portemonnee ontgrendelen mislukt - - - The passphrase entered for the wallet decryption was incorrect. - Het ingevulde wachtwoord voor het ontsleutelen van de portemonnee is niet correct. - - - Wallet decryption failed - Ontgrendelen van de portemonnee mislukt - - - Wallet passphrase was successfully changed. - Portemonnee wachtwoord met succes veranderd. - - - Warning: The Caps Lock key is on! - Waarschuwing: Caps Lock staat aan! - - - - BanTableModel - - IP/Netmask - IP/Netmask - - - Banned Until - Geblokkeerd Tot - - - - BitcoinGUI - - Sign &message... - Signeer &bericht - - - Synchronizing with network... - Synchroniseren met het netwerk... - - - &Overview - &Overzicht - - - Node - Node - - - Show general overview of wallet - Toon algemeen overzicht van portemonnee - - - &Transactions - &Transacties - - - Browse transaction history - Door transactiegeschiedenis bladeren - - - E&xit - Exit - - - Quit application - Applicatie sluiten - - - &About %1 - &Over %1 - - - Show information about %1 - Toon informatie over %1 - - - About &Qt - Over &Qt - - - Show information about Qt - Toon informatie over Qt - - - &Options... - &Opties... - - - Modify configuration options for %1 - Configuratieopties aanpassen voor%1 - - - &Encrypt Wallet... - &Portemonnee Versleutelen... - - - &Backup Wallet... - &Portemonnee Backuppen - - - &Change Passphrase... - &Wachtwoord Veranderen - - - &Sending addresses... - &Verzendadressen - - - &Receiving addresses... - &Ontvangadressen - - - Open &URI... - Open &URL... - - - Click to disable network activity. - Klik om netwerk activiteit uit te zetten. - - - Network activity disabled. - Netwerk activiteit uitgeschakeld. - - - Click to enable network activity again. - Klik om netwerk activiteit aan te zetten. - - - Syncing Headers (%1%)... - Headers synchroniseren (%1%)... - - - Reindexing blocks on disk... - Blokken op schijf herindexeren... - - - Send coins to a Bitcoin address - Verstuur coins naar een Bitcoin adres - - - Backup wallet to another location - Back-up portemonnee naar een andere locatie - - - Change the passphrase used for wallet encryption - Verander het wachtwoord die gebruikt wordt voor de portemonnee versleuteling - - - &Debug window - &Debug scherm - - - Open debugging and diagnostic console - Open debugging en diagnostisch console - - - &Verify message... - &Bericht verifiëren - - - Bitcoin - Bitcoin - - - Wallet - Portemonnee - - - &Send - &Versturen - - - &Receive - &Ontvangen - - - &Show / Hide - &Tonen / Verbergen - - - Show or hide the main Window - Toon of verberg het hoofd scherm - - - Encrypt the private keys that belong to your wallet - Versleutel de privé sleutels die bij je portemonnee horen - - - Sign messages with your Bitcoin addresses to prove you own them - Signeer berichten met je Bitcoin adres om te bewijzen dat ze van jou zijn - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifieer berichten om er zeker van te zijn dat ze met specifieke Bitcoin adressen ondertekent zijn - - - &File - &Bestand - - - &Settings - &Instellingen - - - &Help - &Help - - - Tabs toolbar - Tabs taakbalk - - - Request payments (generates QR codes and bitcoin: URIs) - Betalingen aanvragen (genereert QR codes en bitcoin: URI's) - - - Show the list of used sending addresses and labels - Toon de lijst van gebruikte verzend adressen en labels - - - Show the list of used receiving addresses and labels - Toon de lijst van gebruikte ontvangst adressen en labels - - - Open a bitcoin: URI or payment request - Open een bitcoin: URI of betaalverzoek - - - &Command-line options - &Commando-regel opties - - - Indexing blocks on disk... - Blokken op schijf indexeren - - - Processing blocks on disk... - Blokken op schijf verwerken - - - %1 behind - %1 achter - - - Last received block was generated %1 ago. - Laatst ontvangen blok is gegenereert %1 geleden - - - Transactions after this will not yet be visible. - Transacties hierna zullen niet zichtbaar zijn. - - - Error - Fout - - - Warning - Waarschuwing - - - Information - Informatie - - - Up to date - Up to date - - - Show the %1 help message to get a list with possible Bitcoin command-line options - Open het %1 help bericht om een lijst met Bitcoin commando-regel opties te krijgen - - - %1 client - %1 client - - - Connecting to peers... - Verbinding maken met peers... - - - Catching up... - Inhalen... - - - Date: %1 - - Datum: %1 - - - - Amount: %1 - - Bedrag: %1 - - - - Type: %1 - - Type: %1 - - - - Label: %1 - - Label: %1 - - - - Address: %1 - - Adres: %1 - - - - Sent transaction - Transactie verzonden - - - Incoming transaction - Binnenkomende transactie - - - HD key generation is <b>enabled</b> - HD sleutel generatie <b>geactiveerd</b> - - - HD key generation is <b>disabled</b> - HD sleutel generatie <b>gedeactiveerd</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Portemonnee is <b>versleuteld</b> en op dit moment <b>ontgrendeld</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Portemonnee is <b>versleuteld</b> op dit moment <b>vergrendeld</b> - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Een fatale error is voorgekomen. Bitcoin kan niet langer veilig verder gaan en sluit daardoor af. - - - - CoinControlDialog - - Coin Selection - Coin Selectie - - - Quantity: - Hoeveelheid: - - - Bytes: - Bytes: - - - Amount: - Bedrag: - - - Fee: - Fooi: - - - Dust: - Dust: - - - After Fee: - Na Fooi: - - - Change: - Wisselgeld: - - - (un)select all - (de)selecteer alles - - - Tree mode - Tree modus - - - List mode - Lijst modus - - - Amount - Bedrag - - - Received with label - Ontvangen met label - - - Received with address - Ontvangen met adres - - - Date - Datum - - - Confirmations - Bevestigingen - - - Confirmed - Bevestigd - - - Copy address - Kopieer adres - - - Copy label - Kopieer label - - - Copy amount - Kopieer bedrag - - - Copy transaction ID - Kopieer transactie ID - - - Lock unspent - Vergrendel niet uitgegeven - - - Unlock unspent - Ontgrendel niet uitgegeven - - - Copy quantity - Kopieer hoeveelheid - - - Copy fee - Kopieer fooi - - - Copy after fee - Kopieer na fooi - - - Copy bytes - Kopieer bytes - - - Copy dust - Kopieer dust - - - Copy change - Kopieer wisselgeld - - - (%1 locked) - (%1 vergrendeld) - - - yes - ja - - - no - nee - - - (no label) - (geen label) - - - - EditAddressDialog - - - FreespaceChecker - - - HelpMessageDialog - - - Intro - - Bitcoin - Bitcoin - - - Error - Fout - - - - ModalOverlay - - - OpenURIDialog - - - OptionsDialog - - Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - Gebruike aparte SOCKS&5 proxy om peers te bereiken via Tor hidden services - - - Hide the icon from the system tray. - Verberg het icoontje van de taakbalk - - - Open Configuration File - Open Configuratie Bestand - - - Expert - Expert - - - Map port using &UPnP - Poort mappen met &UPnP - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - Error - Fout - - - The supplied proxy address is invalid. - Het ingegeven proxy adres is ongeldig - - - - OverviewPage - - Available: - Beschikbaar: - - - Balances - Saldi - - - Total: - Totaal: - - - Recent transactions - Recente transacties - - - - PaymentServer - - - PeerTableModel - - - QObject - - Amount - Bedrag - - - %1 and %2 - %1 en %2 - - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - - ReceiveCoinsDialog - - Copy label - Kopieer label - - - Copy amount - Kopieer bedrag - - - - ReceiveRequestDialog - - Address - Adres - - - Amount - Bedrag - - - Label - Label - - - Wallet - Portemonnee - - - - RecentRequestsTableModel - - Date - Datum - - - Label - Label - - - (no label) - (geen label) - - - - SendCoinsDialog - - Quantity: - Hoeveelheid: - - - Bytes: - Bytes: - - - Amount: - Bedrag: - - - Fee: - Fooi: - - - After Fee: - Na Fooi: - - - Change: - Wisselgeld: - - - Dust: - Dust: - - - Copy quantity - Kopieer hoeveelheid - - - Copy amount - Kopieer bedrag - - - Copy fee - Kopieer fooi - - - Copy after fee - Kopieer na fooi - - - Copy bytes - Kopieer bytes - - - Copy dust - Kopieer dust - - - Copy change - Kopieer wisselgeld - - - (no label) - (geen label) - - - - SendCoinsEntry - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - Date - Datum - - - Amount - Bedrag - - - - TransactionDescDialog - - - TransactionTableModel - - Date - Datum - - - Label - Label - - - (no label) - (geen label) - - - - TransactionView - - Copy address - Kopieer adres - - - Copy label - Kopieer label - - - Copy amount - Kopieer bedrag - - - Copy transaction ID - Kopieer transactie ID - - - Comma separated file (*.csv) - Komma gescheiden bestand (*.csv) - - - Confirmed - Bevestigd - - - Date - Datum - - - Label - Label - - - Address - Adres - - - Exporting Failed - Exporteren Mislukt - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - &Export - &Exporteer - - - Export the data in the current tab to a file - Exporteer de data in dit tab naar een bestand - - - - bitcoin-core - - Information - Informatie - - - Warning - Waarschuwing - - - Error - Fout - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_pt_PT.ts b/src/qt/locale/bitcoin_pt_PT.ts deleted file mode 100644 index d203c490e9..0000000000 --- a/src/qt/locale/bitcoin_pt_PT.ts +++ /dev/null @@ -1,3502 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Clique com o botão direito para editar o endereço ou etiqueta - - - Create a new address - Criar um novo endereço - - - &New - &Novo - - - Copy the currently selected address to the system clipboard - Copiar o endereço selecionado para a área de transferência do sistema - - - &Copy - &Copiar - - - C&lose - F&echar - - - Delete the currently selected address from the list - Eliminar o endereço selecionado da lista - - - Enter address or label to search - Digite o endereço ou o rótulo para pesquisar - - - Export the data in the current tab to a file - Exportar os dados no separador atual para um ficheiro - - - &Export - &Exportar - - - &Delete - &Eliminar - - - Choose the address to send coins to - Escolha o endereço para enviar as moedas - - - Choose the address to receive coins with - Escolha o endereço para receber as moedas - - - C&hoose - Escol&her - - - Sending addresses - A enviar endereços - - - Receiving addresses - A receber endereços - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estes são os seus endereços Bitcoin para enviar pagamentos. Verifique sempre o valor e o endereço de envio antes de enviar moedas. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Estes são os seus endereços Bitcoin para receber pagamentos. É recomendado que utilize um endereço novo para cada transação. - - - &Copy Address - &Copiar Endereço - - - Copy &Label - Copiar &Etiqueta - - - &Edit - &Editar - - - Export Address List - Exportar Lista de Endereços - - - Comma separated file (*.csv) - Ficheiro separado por vírgulas (*.csv) - - - Exporting Failed - Exportação Falhou - - - There was an error trying to save the address list to %1. Please try again. - Ocorreu um erro ao tentar guardar a lista de endereços para %1. Por favor, tente novamente. - - - - AddressTableModel - - Label - Etiqueta - - - Address - Endereço - - - (no label) - (sem etiqueta) - - - - AskPassphraseDialog - - Passphrase Dialog - Janela da Frase de Segurança - - - Enter passphrase - Insira a frase de segurança - - - New passphrase - Nova frase de frase de segurança - - - Repeat new passphrase - Repita a nova frase de frase de segurança - - - Show password - Mostrar palavra-passe - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Insira a nova frase de segurança para a carteira. <br/> Por favor, utilize uma frase de segurança de <b>10 ou mais carateres aleatórios,</b> ou <b>oito ou mais palavras</b>. - - - Encrypt wallet - Encriptar carteira - - - This operation needs your wallet passphrase to unlock the wallet. - Esta operação precisa da sua frase de segurança da carteira para desbloquear a mesma. - - - Unlock wallet - Desbloquear carteira - - - This operation needs your wallet passphrase to decrypt the wallet. - Esta operação precisa da sua frase de segurança da carteira para desencriptar a mesma. - - - Decrypt wallet - Desencriptar carteira - - - Change passphrase - Alterar frase de segurança - - - Enter the old passphrase and new passphrase to the wallet. - Insira a frase de segurança antiga e a nova frase de segurança para a carteira. - - - Confirm wallet encryption - Confirmar encriptação da carteira - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Aviso: se encriptar a sua carteira e perder a sua frase de segurnça, <b>PERDERÁ TODOS OS SEUS BITCOINS</b>! - - - Are you sure you wish to encrypt your wallet? - Tem a certeza que deseja encriptar a sua carteira? - - - Wallet encrypted - Carteira encriptada - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 irá agora ser fechado para terminar o processo de encriptação. Recorde que a encriptação da sua carteira não protegerá totalmente os seus bitcoins de serem roubados por programas maliciosos que infetem o seu computador. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANTE: Qualquer cópia de segurança da carteira anterior deverá ser substituída com o novo ficheiro de carteira, agora encriptado. Por razões de segurança, cópias de segurança não encriptadas tornar-se-ão inúteis assim que começar a usar a nova carteira encriptada. - - - Wallet encryption failed - Encriptação da carteira falhou - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - A encriptação da carteira falhou devido a um erro interno. A carteira não foi encriptada. - - - The supplied passphrases do not match. - As frases de segurança fornecidas não coincidem. - - - Wallet unlock failed - Desbloqueio da carteira falhou - - - The passphrase entered for the wallet decryption was incorrect. - A frase de segurança introduzida para a desencriptação da carteira estava incorreta. - - - Wallet decryption failed - Desencriptação da carteira falhou - - - Wallet passphrase was successfully changed. - A frase de segurança da carteira foi alterada com sucesso. - - - Warning: The Caps Lock key is on! - Aviso: a tecla Caps Lock está ligada! - - - - BanTableModel - - IP/Netmask - IP/Máscara de Rede - - - Banned Until - Banido Até - - - - BitcoinGUI - - Sign &message... - Assinar &mensagem... - - - Synchronizing with network... - A sincronizar com a rede... - - - &Overview - &Resumo - - - Node - - - - Show general overview of wallet - Mostrar resumo geral da carteira - - - &Transactions - &Transações - - - Browse transaction history - Explorar histórico das transações - - - E&xit - Fec&har - - - Quit application - Sair da aplicação - - - &About %1 - &Sobre o %1 - - - Show information about %1 - Mostrar informação sobre o %1 - - - About &Qt - Sobre o &Qt - - - Show information about Qt - Mostrar informação sobre o Qt - - - &Options... - &Opções... - - - Modify configuration options for %1 - Modificar opções de configuração para %1 - - - &Encrypt Wallet... - E&ncriptar Carteira... - - - &Backup Wallet... - Efetuar &Cópia de Segurança da Carteira... - - - &Change Passphrase... - Alterar &Frase de Segurança... - - - &Sending addresses... - A &enviar os endereços... - - - &Receiving addresses... - A &receber os endereços... - - - Open &URI... - Abrir &URI... - - - Wallet: - Carteira: - - - default wallet - carteira predefinida - - - Click to disable network activity. - Clique para desativar a atividade de rede. - - - Network activity disabled. - Atividade de rede desativada. - - - Click to enable network activity again. - Clique para ativar novamente a atividade de rede. - - - Syncing Headers (%1%)... - A sincronizar cabeçalhos (%1%)... - - - Reindexing blocks on disk... - A reindexar os blocos no disco... - - - Proxy is <b>enabled</b>: %1 - Proxy está <b>ativado</b>: %1 - - - Send coins to a Bitcoin address - Enviar moedas para um endereço Bitcoin - - - Backup wallet to another location - Efetue uma cópia de segurança da carteira para outra localização - - - Change the passphrase used for wallet encryption - Alterar a frase de segurança utilizada na encriptação da carteira - - - &Debug window - Janela de &Depuração - - - Open debugging and diagnostic console - Abrir consola de diagnóstico e depuração - - - &Verify message... - &Verificar mensagem... - - - Bitcoin - Bitcoin - - - Wallet - Carteira - - - &Send - &Enviar - - - &Receive - &Receber - - - &Show / Hide - Mo&strar / Ocultar - - - Show or hide the main Window - Mostrar ou ocultar a janela principal - - - Encrypt the private keys that belong to your wallet - Encriptar as chaves privadas que pertencem à sua carteira - - - Sign messages with your Bitcoin addresses to prove you own them - Assine as mensagens com os seus endereços Bitcoin para provar que é o proprietário dos mesmos - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifique mensagens para assegurar que foram assinadas com o endereço Bitcoin especificado - - - &File - &Ficheiro - - - &Settings - &Configurações - - - &Help - &Ajuda - - - Tabs toolbar - Barra de ferramentas dos separadores - - - Request payments (generates QR codes and bitcoin: URIs) - Solicitar pagamentos (gera códigos QR e bitcoin: URIs) - - - Show the list of used sending addresses and labels - Mostrar a lista de rótulos e endereços de envio usados - - - Show the list of used receiving addresses and labels - Mostrar a lista de rótulos e endereços de receção usados - - - Open a bitcoin: URI or payment request - Abrir URI bitcoin: ou pedido de pagamento - - - &Command-line options - &Opções da linha de &comando - - - %n active connection(s) to Bitcoin network - %n ligação ativa à rede Bitcoin%n ligações ativas à rede Bitcoin - - - Indexing blocks on disk... - A indexar blocos no disco... - - - Processing blocks on disk... - A processar blocos no disco... - - - Processed %n block(s) of transaction history. - Processado %n bloco do histórico de transações.Processados %n blocos do histórico de transações. - - - %1 behind - %1 em atraso - - - Last received block was generated %1 ago. - O último bloco recebido foi gerado há %1. - - - Transactions after this will not yet be visible. - As transações depois de isto ainda não serão visíveis. - - - Error - Erro - - - Warning - Aviso - - - Information - Informação - - - Up to date - Atualizado - - - Show the %1 help message to get a list with possible Bitcoin command-line options - Mostrar a mensagem de ajuda %1 para obter uma lista com possíveis opções a usar na linha de comandos. - - - %1 client - Cliente %1 - - - Connecting to peers... - A ligar aos pontos... - - - Catching up... - Recuperando o atraso... - - - Date: %1 - - Data: %1 - - - - Amount: %1 - - Valor: %1 - - - - Wallet: %1 - - Carteira: %1 - - - - Type: %1 - - Tipo: %1 - - - - Label: %1 - - Etiqueta: %1 - - - - Address: %1 - - Endereço: %1 - - - - Sent transaction - Transação enviada - - - Incoming transaction - Transação recebida - - - HD key generation is <b>enabled</b> - Criação de chave HD está <b>ativada</b> - - - HD key generation is <b>disabled</b> - Criação de chave HD está <b>desativada</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - A carteira está <b>encriptada</b> e atualmente <b>desbloqueada</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - A carteira está <b>encriptada</b> e atualmente <b>bloqueada</b> - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Ocorreu um erro fatal. O Bitcoin não pode continuar com segurança e irá fechar. - - - - CoinControlDialog - - Coin Selection - Seleção de Moeda - - - Quantity: - Quantidade: - - - Bytes: - Bytes: - - - Amount: - Valor: - - - Fee: - Taxa: - - - Dust: - Lixo: - - - After Fee: - Depois da taxa: - - - Change: - Troco: - - - (un)select all - (des)selecionar todos - - - Tree mode - Modo de árvore - - - List mode - Modo de lista - - - Amount - Valor - - - Received with label - Recebido com etiqueta - - - Received with address - Recebido com endereço - - - Date - Data - - - Confirmations - Confirmações - - - Confirmed - Confirmada - - - Copy address - Copiar endereço - - - Copy label - Copiar etiqueta - - - Copy amount - Copiar valor - - - Copy transaction ID - Copiar Id. da transação - - - Lock unspent - Bloquear não gasto - - - Unlock unspent - Desbloquear não gasto - - - Copy quantity - Copiar quantidade - - - Copy fee - Copiar taxa - - - Copy after fee - Copiar depois da taxa - - - Copy bytes - Copiar bytes - - - Copy dust - Copiar poeira - - - Copy change - Copiar troco - - - (%1 locked) - (%1 bloqueado) - - - yes - sim - - - no - não - - - This label turns red if any recipient receives an amount smaller than the current dust threshold. - Esta etiqueta fica vermelha se qualquer destinatário recebe um valor menor que o limite de dinheiro. - - - Can vary +/- %1 satoshi(s) per input. - Pode variar +/- %1 satoshi(s) por input. - - - (no label) - (sem etiqueta) - - - change from %1 (%2) - troco de %1 (%2) - - - (change) - (troco) - - - - EditAddressDialog - - Edit Address - Editar Endereço - - - &Label - &Etiqueta - - - The label associated with this address list entry - A etiqueta associada com esta entrada da lista de endereços - - - The address associated with this address list entry. This can only be modified for sending addresses. - O endereço associado com o esta entrada da lista de endereços. Isto só pode ser modificado para os endereços de envio. - - - &Address - E&ndereço - - - New sending address - Novo endereço de envio - - - Edit receiving address - Editar o endereço de depósito - - - Edit sending address - Editar o endereço de envio - - - The entered address "%1" is not a valid Bitcoin address. - O endereço introduzido "%1" não é um endereço bitcoin válido. - - - Could not unlock wallet. - Não foi possível desbloquear a carteira. - - - New key generation failed. - A criação da nova chave falhou. - - - - FreespaceChecker - - A new data directory will be created. - Será criada uma nova pasta de dados. - - - name - nome - - - Directory already exists. Add %1 if you intend to create a new directory here. - A pasta já existe. Adicione %1 se pretender criar aqui uma nova pasta. - - - Path already exists, and is not a directory. - O caminho já existe, e não é uma pasta. - - - Cannot create data directory here. - Não é possível criar aqui uma pasta de dados. - - - - HelpMessageDialog - - version - versão - - - (%1-bit) - (%1-bit) - - - About %1 - Sobre o %1 - - - Command-line options - Opções da linha de comando - - - - Intro - - Welcome - Bem-vindo - - - Welcome to %1. - Bem-vindo ao %1. - - - When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. - Quando clicar OK, %1 vai começar a descarregar e processar a cadeia de blocos %4 completa (%2GB) começando com as transações mais antigas em %3 quando a %4 foi inicialmente lançada. - - - This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. - Esta sincronização inicial é muito exigente, e pode expor problemas com o seu computador que previamente podem ter passado despercebidos. Cada vez que corre %1, este vai continuar a descarregar de onde deixou. - - - If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. - Se escolheu limitar o armazenamento da cadeia de blocos (poda), a data histórica ainda tem de ser descarregada e processada, mas irá ser apagada no final para manter uma utilização baixa do espaço de disco. - - - Use the default data directory - Utilizar a pasta de dados predefinida - - - Use a custom data directory: - Utilizar uma pasta de dados personalizada: - - - Bitcoin - Bitcoin - - - At least %1 GB of data will be stored in this directory, and it will grow over time. - No mínimo %1 GB de dados irão ser armazenados nesta pasta. - - - Approximately %1 GB of data will be stored in this directory. - Aproximadamente %1 GB de dados irão ser guardados nesta pasta. - - - %1 will download and store a copy of the Bitcoin block chain. - %1 irá descarregar e armazenar uma cópia da cadeia de blocos da Bitcoin. - - - The wallet will also be stored in this directory. - A carteira também será guardada nesta pasta. - - - Error: Specified data directory "%1" cannot be created. - Erro: não pode ser criada a pasta de dados especificada como "%1. - - - Error - Erro - - - %n GB of free space available - %n GB de espaço livre disponível%n GB de espaço livre disponível - - - (of %n GB needed) - (de %n GB necessários)(de %n GB necessário) - - - - ModalOverlay - - Form - Formulário - - - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Transações recentes podem não ser visíveis por agora, portanto o saldo da sua carteira pode estar incorreto. Esta informação será corrigida quando a sua carteira acabar de sincronizar com a rede, como está explicado em baixo. - - - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Tentar enviar bitcoins que estão afetadas por transações ainda não exibidas não será aceite pela rede. - - - Number of blocks left - Número de blocos restantes - - - Unknown... - Desconhecido... - - - Last block time - Data do último bloco - - - Progress - Progresso - - - Progress increase per hour - Aumento horário do progresso - - - calculating... - a calcular... - - - Estimated time left until synced - tempo restante estimado até à sincronização - - - Hide - Ocultar - - - Unknown. Syncing Headers (%1)... - Desconhecido. Sincronização de Cabeçalhos (%1)... - - - - OpenURIDialog - - Open URI - Abir URI - - - Open payment request from URI or file - Abrir pedido de pagamento de um URI ou ficheiro - - - URI: - URI: - - - Select payment request file - Selecione o ficheiro de pedido de pagamento - - - Select payment request file to open - Selecione o ficheiro de pedido de pagamento para abrir - - - - OptionsDialog - - Options - Opções - - - &Main - &Principal - - - Automatically start %1 after logging in to the system. - Iniciar automaticamente o %1 depois de iniciar a sessão no sistema. - - - &Start %1 on system login - &Iniciar o %1 no início de sessão do sistema - - - Size of &database cache - Tamanho da cache da base de &dados - - - MB - MB - - - Number of script &verification threads - Número de processos de &verificação de scripts - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Endereço de IP do proxy (exemplo, IPv4: 127.0.0.1 / IPv6: ::1) - - - Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. - Mostra se o padrão fornecido SOCKS5 proxy, está a ser utilizado para alcançar utilizadores participantes através deste tipo de rede. - - - Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - Utilize um proxy SOCKS&5 separado para alcançar utilizadores participantes através dos serviços ocultos do Tor. - - - Hide the icon from the system tray. - Esconder o ícone da barra de ferramentas. - - - &Hide tray icon - &Ocultar ícone da bandeja - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Minimize ao invés de sair da aplicação quando a janela é fechada. Com esta opção selecionada, a aplicação apenas será encerrada quando escolher Sair da aplicação no menú. - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URLs de outrem (ex. um explorador de blocos) que aparece no separador de transações como itens do menu de contexto. -%s do URL é substituído por hash de transação. Vários URLs são separados por barra vertical |. - - - Active command-line options that override above options: - Ativar as opções da linha de comando que se sobrepõem às opções acima: - - - Open the %1 configuration file from the working directory. - Abrir o ficheiro de configuração %1 da pasta aberta. - - - Open Configuration File - Abrir Ficheiro de Configuração - - - Reset all client options to default. - Repor todas as opções de cliente para a predefinição. - - - &Reset Options - &Repor Opções - - - &Network - &Rede - - - GB - PT - - - (0 = auto, <0 = leave that many cores free) - (0 = automático, <0 = deixar essa quantidade de núcleos livre) - - - W&allet - C&arteira - - - Expert - Técnicos - - - Enable coin &control features - Ativar as funcionalidades de &controlo de moedas - - - If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Se desativar o gasto de troco não confirmado, o troco de uma transação não pode ser utilizado até que essa transação tenha pelo menos uma confirmação. Isto também afeta o cálculo do seu saldo. - - - &Spend unconfirmed change - &Gastar troco não confirmado - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir a porta do cliente bitcoin automaticamente no seu router. Isto apenas funciona se o seu router suportar UPnP e este se encontrar ligado. - - - Map port using &UPnP - Mapear porta, utilizando &UPnP - - - Accept connections from outside. - Aceitar ligações externas. - - - Allow incomin&g connections - Permitir ligações de "a receber" - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Conectar à rede da Bitcoin através dum proxy SOCLS5. - - - &Connect through SOCKS5 proxy (default proxy): - &Ligar através dum proxy SOCKS5 (proxy por defeito): - - - Proxy &IP: - &IP do proxy: - - - &Port: - &Porta: - - - Port of the proxy (e.g. 9050) - Porta do proxy (por ex. 9050) - - - Used for reaching peers via: - Utilizado para alcançar pontos via: - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Ligar à rede Bitcoin através de um proxy SOCKS5 separado para utilizar os serviços ocultos do Tor. - - - &Window - &Janela - - - Show only a tray icon after minimizing the window. - Apenas mostrar o ícone da bandeja de sistema após minimizar a janela. - - - &Minimize to the tray instead of the taskbar - &Minimizar para a bandeja de sistema e não para a barra de ferramentas - - - M&inimize on close - M&inimizar ao fechar - - - &Display - &Visualização - - - User Interface &language: - &Linguagem da interface de utilizador: - - - The user interface language can be set here. This setting will take effect after restarting %1. - A linguagem da interface do utilizador pode ser definida aqui. Esta definição entrará em efeito após reiniciar %1. - - - &Unit to show amounts in: - &Unidade para mostrar quantias: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Escolha a unidade da subdivisão predefinida para ser mostrada na interface e quando enviar as moedas. - - - Whether to show coin control features or not. - Escolha se deve mostrar as funcionalidades de controlo de moedas ou não. - - - &Third party transaction URLs - URLs de transação de &terceiros - - - &OK - &OK - - - &Cancel - &Cancelar - - - default - predefinição - - - none - nenhum - - - Confirm options reset - Confirme a reposição das opções - - - Client restart required to activate changes. - É necessário reiniciar o cliente para ativar as alterações. - - - Client will be shut down. Do you want to proceed? - O cliente será desligado. Deseja continuar? - - - Configuration options - Opções da configuração - - - The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file. - O ficheiro de configuração é usado para especificar opções de utilizador avançado, que sobrescrevem as configurações do interface gráfico. Adicionalmente, qualquer opção da linha de comandos vai sobrescrever este ficheiro de configuração. - - - Error - Erro - - - The configuration file could not be opened. - Não foi possível abrir o ficheiro de configuração. - - - This change would require a client restart. - Esta alteração obrigará a um reinício do cliente. - - - The supplied proxy address is invalid. - O endereço de proxy introduzido é inválido. - - - - OverviewPage - - Form - Formulário - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - A informação mostrada poderá estar desatualizada. A sua carteira sincroniza automaticamente com a rede Bitcoin depois de estabelecer ligação, mas este processo ainda não está completo. - - - Watch-only: - Apenas vigiar: - - - Available: - Disponível: - - - Your current spendable balance - O seu saldo (gastável) disponível - - - Pending: - Pendente: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Total de transações por confirmar, que ainda não estão contabilizadas no seu saldo gastável - - - Immature: - Imaturo: - - - Mined balance that has not yet matured - O saldo minado ainda não amadureceu - - - Balances - Saldos - - - Total: - Total: - - - Your current total balance - O seu saldo total atual - - - Your current balance in watch-only addresses - O seu balanço atual em endereços de apenas vigiar - - - Spendable: - Dispensável: - - - Recent transactions - transações recentes - - - Unconfirmed transactions to watch-only addresses - Transações não confirmadas para endereços de apenas vigiar - - - Mined balance in watch-only addresses that has not yet matured - Saldo minado ainda não disponível de endereços de apenas vigiar - - - Current total balance in watch-only addresses - Saldo disponível em endereços de apenas vigiar - - - - PaymentServer - - Payment request error - Erro do pedido de pagamento - - - Cannot start bitcoin: click-to-pay handler - Impossível iniciar o controlador de bitcoin: click-to-pay - - - URI handling - Manuseamento de URI - - - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' não é um URI válido. Utilize 'bitcoin:'. - - - Payment request fetch URL is invalid: %1 - O URL do pedido de pagamento é inválido: %1 - - - Invalid payment address %1 - Endereço de pagamento inválido %1 - - - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI não foi lido corretamente! Isto pode ser causado por um endereço Bitcoin inválido ou por parâmetros URI malformados. - - - Payment request file handling - Controlo de pedidos de pagamento. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - O ficheiro de pedido de pagamento não pôde ser lido! Isto pode ter sido causado por um ficheiro de pedido de pagamento inválido. - - - Payment request rejected - Pedido de pagamento rejeitado - - - Payment request network doesn't match client network. - Rede de requisição de pagamento não corresponde com a rede do cliente. - - - Payment request expired. - Pedido de pagamento expirado. - - - Payment request is not initialized. - O pedido de pagamento não foi inicializado. - - - Unverified payment requests to custom payment scripts are unsupported. - Pedidos de pagamento não-verificados para scripts de pagamento personalizados não são suportados. - - - Invalid payment request. - Pedido de pagamento inválido. - - - Requested payment amount of %1 is too small (considered dust). - Quantia solicitada para pagamento de %1 é muito pequena (considerada "pó"). - - - Refund from %1 - Reembolso de %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Pedido de pagamento %1 é demasiado grande (%2 bytes, permitido %3 bytes). - - - Error communicating with %1: %2 - Erro ao comunicar com %1: %2 - - - Payment request cannot be parsed! - O pedido de pagamento não pode ser lido ou processado! - - - Bad response from server %1 - Má resposta do servidor %1 - - - Network request error - Erro de pedido de rede - - - Payment acknowledged - Pagamento confirmado - - - - PeerTableModel - - User Agent - Agente Usuário - - - Node/Service - Nó/Serviço - - - NodeId - NodeId - - - Ping - Latência - - - Sent - Enviado - - - Received - Recebido - - - - QObject - - Amount - Quantia - - - Enter a Bitcoin address (e.g. %1) - Introduza um endereço Bitcoin (ex. %1) - - - %1 d - %1 d - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - None - Nenhum - - - N/A - N/D - - - %1 ms - %1 ms - - - %n second(s) - %n segundo%n segundos - - - %n minute(s) - %n minuto%n minutos - - - %n hour(s) - %n hora%n horas - - - %n day(s) - %n dia%n dias - - - %n week(s) - %n semana%n semanas - - - %1 and %2 - %1 e %2 - - - %n year(s) - %n anos%n anos - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - %1 didn't yet exit safely... - %1 ainda não foi fechado em segurança... - - - unknown - desconhecido - - - - QObject::QObject - - Error parsing command line arguments: %1. - Erro ao analisar os argumentos da linha de comando: %1. - - - Error: Specified data directory "%1" does not exist. - Erro: a pasta de dados especificada "%1" não existe. - - - Error: Cannot parse configuration file: %1. - Erro: não é possível analisar o ficheiro de configuração: %1. - - - Error: %1 - Erro: %1 - - - - QRImageWidget - - &Save Image... - &Guardar Imagem... - - - &Copy Image - &Copiar Imagem - - - Save QR Code - Guardar o código QR - - - PNG Image (*.png) - Imagem PNG (*.png) - - - - RPCConsole - - N/A - N/D - - - Client version - Versão do Cliente - - - &Information - &Informação - - - Debug window - Janela de depuração - - - General - Geral - - - Using BerkeleyDB version - Versão BerkeleyDB em uso - - - Datadir - Datadir - - - Startup time - Hora de Arranque - - - Network - Rede - - - Name - Nome - - - Number of connections - Número de ligações - - - Block chain - Cadeia de blocos - - - Current number of blocks - Número atual de blocos - - - Memory Pool - Banco de Memória - - - Current number of transactions - Número atual de transações - - - Memory usage - Utilização de memória - - - Wallet: - Carteira: - - - (none) - (nenhuma) - - - &Reset - &Reiniciar - - - Received - Recebido - - - Sent - Enviado - - - &Peers - &Pontos - - - Banned peers - Pontos banidos - - - Select a peer to view detailed information. - Selecione um ponto para ver informação detalhada. - - - Whitelisted - Permitido por si - - - Direction - Direção - - - Version - Versão - - - Starting Block - Bloco Inicial - - - Synced Headers - Cabeçalhos Sincronizados - - - Synced Blocks - Blocos Sincronizados - - - User Agent - Agente Usuário - - - Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. - Abrir o ficheiro de registo de depuração %1 da pasta de dados atual. Isto pode demorar alguns segundos para ficheiros de registo maiores. - - - Decrease font size - Diminuir tamanho da letra - - - Increase font size - Aumentar tamanho da letra - - - Services - Serviços - - - Ban Score - Resultado da Suspensão - - - Connection Time - Tempo de Ligação - - - Last Send - Último Envio - - - Last Receive - Último Recebimento - - - Ping Time - Tempo de Latência - - - The duration of a currently outstanding ping. - A duração de um ping atualmente pendente. - - - Ping Wait - Espera do Ping - - - Min Ping - Latência mínima - - - Time Offset - Fuso Horário - - - Last block time - Data do último bloco - - - &Open - &Abrir - - - &Console - &Consola - - - &Network Traffic - &Tráfego de Rede - - - Totals - Totais - - - In: - Entrada: - - - Out: - Saída: - - - Debug log file - Ficheiro de registo de depuração - - - Clear console - Limpar consola - - - 1 &hour - 1 &hora - - - 1 &day - 1 &dia - - - 1 &week - 1 &semana - - - 1 &year - 1 &ano - - - Ban for - Banir para - - - &Unban - &Desbanir - - - default wallet - carteira predefinida - - - Welcome to the %1 RPC console. - Bem-vindo à consola RPC da %1. - - - Use up and down arrows to navigate history, and %1 to clear screen. - Use as setas para cima e para baixo para navegar a história e %1 para limpar o ecrã. - - - Type %1 for an overview of available commands. - Digite %1 para uma visão geral dos comandos disponíveis. - - - For more information on using this console type %1. - Para mais informação em como utilizar esta consola, digite %1. - - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - AVISO: alguns burlões têm estado ativos, dizendo a utilizadores para digitarem comandos aqui, roubando assim os conteúdos das suas carteiras. Não utilize esta consola sem perceber perfeitamente as ramificações de um comando. - - - Network activity disabled - Atividade de rede desativada - - - Executing command without any wallet - A executar o comando sem qualquer carteira - - - Executing command using "%1" wallet - A executar o comando utilizando a carteira "%1" - - - (node id: %1) - (id nó: %1) - - - via %1 - via %1 - - - never - nunca - - - Inbound - Entrada - - - Outbound - Saída - - - Yes - Sim - - - No - Não - - - Unknown - Desconhecido - - - - ReceiveCoinsDialog - - &Amount: - &Quantia: - - - &Label: - &Rótulo: - - - &Message: - &Mensagem: - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Uma mensagem opcional para anexar ao pedido de pagamento, que será exibida quando o pedido for aberto. Nota: A mensagem não será enviada com o pagamento através da rede Bitcoin. - - - An optional label to associate with the new receiving address. - Um rótulo opcional a associar ao novo endereço de receção. - - - Use this form to request payments. All fields are <b>optional</b>. - Utilize este formulário para solicitar pagamentos. Todos os campos são <b>opcionais</b>. - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Uma quantia opcional a solicitar. Deixe em branco ou zero para não solicitar uma quantidade específica. - - - Clear all fields of the form. - Limpar todos os campos do formulário. - - - Clear - Limpar - - - Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. - Endereços nativos SegWit (também conhecidos como Bech32 ou BIP-173) reduzem as taxas da sua transação mais tarde e oferecem melhor proteção contra erros, mas carteiras antigas não os suportam. Quando não selecionado, um endereço compatível com carteiras antigas irá ser criado em vez. - - - Generate native segwit (Bech32) address - Gerar endereço nativo SegWit (Bech32) - - - Requested payments history - Histórico de pagamentos solicitados - - - &Request payment - &Requisitar Pagamento - - - Show the selected request (does the same as double clicking an entry) - Mostrar o pedido selecionado (faz o mesmo que clicar 2 vezes numa entrada) - - - Show - Mostrar - - - Remove the selected entries from the list - Remover as entradas selecionadas da lista - - - Remove - Remover - - - Copy URI - Copiar URI - - - Copy label - Copiar etiqueta - - - Copy message - Copiar mensagem - - - Copy amount - Copiar valor - - - - ReceiveRequestDialog - - QR Code - Código QR - - - Copy &URI - Copiar &URI - - - Copy &Address - Copi&ar Endereço - - - &Save Image... - &Salvar Imagem... - - - Request payment to %1 - Requisitar Pagamento para %1 - - - Payment information - Informação de Pagamento - - - URI - URI - - - Address - Endereço - - - Amount - Valor - - - Label - Etiqueta - - - Message - Mensagem - - - Wallet - Carteira - - - Resulting URI too long, try to reduce the text for label / message. - URI resultante muito longo. Tente reduzir o texto do rótulo / mensagem. - - - Error encoding URI into QR Code. - Erro ao codificar URI em Código QR. - - - - RecentRequestsTableModel - - Date - Data - - - Label - Etiqueta - - - Message - Mensagem - - - (no label) - (sem etiqueta) - - - (no message) - (sem mensagem) - - - (no amount requested) - (sem quantia pedida) - - - Requested - Solicitado - - - - SendCoinsDialog - - Send Coins - Enviar Moedas - - - Coin Control Features - Funcionalidades do Controlo de Moedas: - - - Inputs... - Entradas... - - - automatically selected - selecionadas automáticamente - - - Insufficient funds! - Fundos insuficientes! - - - Quantity: - Quantidade: - - - Bytes: - Bytes: - - - Amount: - Quantia: - - - Fee: - Taxa: - - - After Fee: - Depois da taxa: - - - Change: - Troco: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Se isto estiver ativo, mas o endereço de troco estiver vazio ou for inválido, o troco será enviado para um novo endereço gerado. - - - Custom change address - Endereço de troco personalizado - - - Transaction Fee: - Taxa da transação: - - - Choose... - Escolher... - - - Warning: Fee estimation is currently not possible. - Aviso: atualmente, não é possível a estimativa da taxa. - - - collapse fee-settings - ocultar definições de taxa - - - per kilobyte - por kilobyte - - - Hide - Esconder - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Pode pagar somente a taxa mínima desde que haja um volume de transações inferior ao espaço nos blocos. No entanto tenha em atenção que esta opção poderá acabar em uma transação nunca confirmada assim que os pedidos de transações excedam a capacidade de processamento da rede. - - - (read the tooltip) - (leia a dica) - - - Recommended: - Recomendado: - - - Custom: - Personalizado: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (A taxa inteligente ainda não foi inicializada. Isto normalmente demora alguns blocos...) - - - Send to multiple recipients at once - Enviar para múltiplos destinatários de uma vez - - - Add &Recipient - Adicionar &Destinatário - - - Clear all fields of the form. - Limpar todos os campos do formulário. - - - Dust: - Lixo: - - - Confirmation time target: - Tempo de confirmação: - - - Clear &All - Limpar &Tudo - - - Balance: - Saldo: - - - Confirm the send action - Confirme ação de envio - - - S&end - E&nviar - - - Copy quantity - Copiar quantidade - - - Copy amount - Copiar valor - - - Copy fee - Copiar taxa - - - Copy after fee - Copiar depois da taxa - - - Copy bytes - Copiar bytes - - - Copy dust - Copiar pó - - - Copy change - Copiar troco - - - %1 (%2 blocks) - %1 (%2 blocos) - - - %1 to %2 - %1 para %2 - - - Are you sure you want to send? - Tem a certeza que deseja enviar? - - - or - ou - - - from wallet %1 - da carteira %1 - - - Please, review your transaction. - Por favor, reveja a sua transação. - - - Transaction fee - Taxa de transação - - - Total Amount - Valor Total - - - Confirm send coins - Confirme envio de moedas - - - The recipient address is not valid. Please recheck. - O endereço do destinatário é inválido. Por favor, reverifique. - - - The amount to pay must be larger than 0. - O valor a pagar dever maior que 0. - - - The amount exceeds your balance. - O valor excede o seu saldo. - - - The total exceeds your balance when the %1 transaction fee is included. - O total excede o seu saldo quando a taxa de transação %1 está incluída. - - - Duplicate address found: addresses should only be used once each. - Endereço duplicado encontrado: os endereços devem ser usados ​​apenas uma vez. - - - Transaction creation failed! - A criação da transação falhou! - - - The transaction was rejected with the following reason: %1 - A transação foi rejeitada pelo seguinte motivo: %1 - - - - A fee higher than %1 is considered an absurdly high fee. - Uma taxa superior a %1 é considerada uma taxa altamente absurda. - - - Payment request expired. - Pedido de pagamento expirado. - - - Pay only the required fee of %1 - Pague apenas a taxa obrigatória de %1 - - - Warning: Invalid Bitcoin address - Aviso: endereço Bitcoin inválido - - - Warning: Unknown change address - Aviso: endereço de troco desconhecido - - - Confirm custom change address - Confirmar endereço de troco personalizado - - - The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? - O endereço que você selecionou para alterar não faz parte desta carteira. Qualquer ou todos os fundos em sua carteira podem ser enviados para este endereço. Você tem certeza? - - - (no label) - (sem etiqueta) - - - - SendCoinsEntry - - A&mount: - Qu&antia: - - - Pay &To: - &Pagar A: - - - &Label: - Rótu&lo: - - - Choose previously used address - Escolha o endereço utilizado anteriormente - - - This is a normal payment. - Este é um pagamento normal. - - - The Bitcoin address to send the payment to - O endereço Bitcoin para enviar o pagamento - - - Alt+A - Alt+A - - - Paste address from clipboard - Cole endereço da área de transferência - - - Alt+P - Alt+P - - - Remove this entry - Remover esta entrada - - - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - A taxa será deduzida ao valor que está a ser enviado. O destinatário irá receber menos bitcoins do que as que inseridas no campo do valor. Se estiverem selecionados múltiplos destinatários, a taxa será repartida equitativamente. - - - S&ubtract fee from amount - S&ubtrair a taxa ao montante - - - Use available balance - Utilizar saldo disponível - - - Message: - Mensagem: - - - This is an unauthenticated payment request. - Pedido de pagamento não autenticado. - - - This is an authenticated payment request. - Pedido de pagamento autenticado. - - - Enter a label for this address to add it to the list of used addresses - Introduza um rótulo para este endereço para o adicionar à sua lista de endereços usados - - - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Uma mensagem que estava anexada ao URI bitcoin: que será armazenada com a transação para sua referência. Nota: Esta mensagem não será enviada através da rede Bitcoin. - - - Pay To: - Pagar a: - - - Memo: - Memorando: - - - Enter a label for this address to add it to your address book - Digite um rótulo para este endereço para adicioná-lo ao seu catálogo de endereços - - - - SendConfirmationDialog - - Yes - Sim - - - - ShutdownWindow - - %1 is shutting down... - %1 está a encerrar... - - - Do not shut down the computer until this window disappears. - Não desligue o computador enquanto esta janela não desaparecer. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Assinaturas - Assinar / Verificar uma Mensagem - - - &Sign Message - &Assinar Mensagem - - - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Pode assinar mensagens com os seus endereços para provar que são seus. Tenha atenção ao assinar mensagens ambíguas, pois ataques de phishing podem tentar enganá-lo de modo a assinar a sua identidade para os atacantes. Apenas assine declarações detalhadas com as quais concorde. - - - The Bitcoin address to sign the message with - O endereço Bitcoin para designar a mensagem - - - Choose previously used address - Escolha o endereço utilizado anteriormente - - - Alt+A - Alt+A - - - Paste address from clipboard - Colar endereço da área de transferência - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Escreva aqui a mensagem que deseja assinar - - - Signature - Assinatura - - - Copy the current signature to the system clipboard - Copiar a assinatura atual para a área de transferência - - - Sign the message to prove you own this Bitcoin address - Assine uma mensagem para provar que é dono deste endereço Bitcoin - - - Sign &Message - Assinar &Mensagem - - - Reset all sign message fields - Repor todos os campos de assinatura de mensagem - - - Clear &All - Limpar &Tudo - - - &Verify Message - &Verificar Mensagem - - - Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! - Introduza o endereço de assinatura, mensagem (assegure-se que copia quebras de linha, espaços, tabulações, etc. exatamente) e assinatura abaixo para verificar a mensagem. Tenha atenção para não ler mais na assinatura do que o que estiver na mensagem assinada, para evitar ser enganado por um atacante que se encontre entre si e quem assinou a mensagem. - - - The Bitcoin address the message was signed with - O endereço Bitcoin com que a mensagem foi designada - - - Verify the message to ensure it was signed with the specified Bitcoin address - Verifique a mensagem para assegurar que foi assinada com o endereço Bitcoin especificado - - - Verify &Message - Verificar &Mensagem - - - Reset all verify message fields - Repor todos os campos de verificação de mensagem - - - Click "Sign Message" to generate signature - Clique "Assinar Mensagem" para gerar a assinatura - - - The entered address is invalid. - O endereço introduzido é inválido. - - - Please check the address and try again. - Por favor, verifique o endereço e tente novamente. - - - The entered address does not refer to a key. - O endereço introduzido não refere-se a nenhuma chave. - - - Wallet unlock was cancelled. - O desbloqueio da carteira foi cancelado. - - - Private key for the entered address is not available. - A chave privada para o endereço introduzido não está disponível. - - - Message signing failed. - Assinatura da mensagem falhou. - - - Message signed. - Mensagem assinada. - - - The signature could not be decoded. - Não foi possível descodificar a assinatura. - - - Please check the signature and try again. - Por favor, verifique a assinatura e tente novamente. - - - The signature did not match the message digest. - A assinatura não corresponde com o conteúdo da mensagem. - - - Message verification failed. - Verificação da mensagem falhou. - - - Message verified. - Mensagem verificada. - - - - SplashScreen - - [testnet] - [rede de testes] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open until %1 - Aberto até %1 - - - 0/unconfirmed, %1 - 0/não confirmada, %1 - - - in memory pool - no banco de memória - - - not in memory pool - não está no banco de memória - - - abandoned - abandonada - - - %1/unconfirmed - %1/não confirmada - - - %1 confirmations - %1 confirmações - - - Status - Estado - - - Date - Data - - - Source - Origem - - - Generated - Gerado - - - From - De - - - unknown - desconhecido - - - To - Para - - - own address - endereço próprio - - - watch-only - apenas vigiar - - - label - etiqueta - - - Credit - Crédito - - - matures in %n more block(s) - matura em %n blocomatura em %n blocos - - - not accepted - não aceite - - - Debit - Débito - - - Total debit - Débito total - - - Total credit - Crédito total - - - Transaction fee - Taxa de transação - - - Net amount - Valor líquido - - - Message - Mensagem - - - Comment - Comentário - - - Transaction ID - Id. da Transação - - - Transaction total size - Tamanho total da transição - - - Transaction virtual size - Tamanho da transação virtual - - - Output index - Índex de saída - - - Merchant - Comerciante - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - As moedas geradas precisam amadurecer %1 blocos antes que possam ser gastas. Quando gerou este bloco, ele foi transmitido para a rede para ser adicionado à cadeia de blocos. Se este não conseguir entrar na cadeia, seu estado mudará para "não aceite" e não poderá ser gasto. Isto pode acontecer ocasionalmente se outro nó gerar um bloco dentro de alguns segundos do seu. - - - Debug information - Informação de depuração - - - Transaction - Transação - - - Inputs - Entradas - - - Amount - Valor - - - true - verdadeiro - - - false - falso - - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Esta janela mostra uma descrição detalhada da transação - - - Details for %1 - Detalhes para %1 - - - - TransactionTableModel - - Date - Data - - - Type - Tipo - - - Label - Etiqueta - - - Open for %n more block(s) - Aberto para mais %n blocoAberto para mais %n blocos - - - Open until %1 - Aberto até %1 - - - Unconfirmed - Não confirmado - - - Abandoned - Abandonada - - - Confirming (%1 of %2 recommended confirmations) - Confirmando (%1 de %2 confirmações recomendadas) - - - Confirmed (%1 confirmations) - Confirmada (%1 confirmações) - - - Conflicted - Incompatível - - - Immature (%1 confirmations, will be available after %2) - Imaturo (%1 confirmações, estarão disponível após %2) - - - Generated but not accepted - Gerada mas não aceite - - - Received with - Recebido com - - - Received from - Recebido de - - - Sent to - Enviado para - - - Payment to yourself - Pagamento para si mesmo - - - Mined - Minada - - - watch-only - apenas vigiar - - - (n/a) - (n/d) - - - (no label) - (sem etiqueta) - - - Transaction status. Hover over this field to show number of confirmations. - Estado da transação. Passar o cursor por cima deste campo para mostrar o número de confirmações. - - - Date and time that the transaction was received. - Data e hora em que a transação foi recebida. - - - Type of transaction. - Tipo de transação. - - - Whether or not a watch-only address is involved in this transaction. - Se um endereço de apenas vigiar está ou não envolvido nesta transação. - - - User-defined intent/purpose of the transaction. - Intenção do utilizador/motivo da transação - - - Amount removed from or added to balance. - Montante retirado ou adicionado ao saldo - - - - TransactionView - - All - Todas - - - Today - Hoje - - - This week - Esta semana - - - This month - Este mês - - - Last month - Mês passado - - - This year - Este ano - - - Range... - Período... - - - Received with - Recebido com - - - Sent to - Enviado para - - - To yourself - Para si mesmo - - - Mined - Minada - - - Other - Outras - - - Enter address, transaction id, or label to search - Escreva endereço, identificação de transação ou rótulo para procurar - - - Min amount - Valor mín. - - - Abandon transaction - Abandonar transação - - - Increase transaction fee - Aumentar taxa da transação - - - Copy address - Copiar endereço - - - Copy label - Copiar etiqueta - - - Copy amount - Copiar valor - - - Copy transaction ID - Copiar Id. da transação - - - Copy raw transaction - Copiar transação em bruto - - - Copy full transaction details - Copiar detalhes completos da transação - - - Edit label - Editar etiqueta - - - Show transaction details - Mostrar detalhes da transação - - - Export Transaction History - Exportar Histórico de Transações - - - Comma separated file (*.csv) - Ficheiro separado por vírgulas (*.csv) - - - Confirmed - Confirmada - - - Watch-only - Apenas vigiar - - - Date - Data - - - Type - Tipo - - - Label - Etiqueta - - - Address - Endereço - - - ID - Id. - - - Exporting Failed - Exportação Falhou - - - There was an error trying to save the transaction history to %1. - Ocorreu um erro ao tentar guardar o histórico de transações em %1. - - - Exporting Successful - Exportação Bem Sucedida - - - Range: - Período: - - - to - até - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Unidade de valores recebidos. Clique para selecionar outra unidade. - - - - WalletFrame - - No wallet has been loaded. - Nenhuma carteira foi carregada - - - - WalletModel - - Send Coins - Enviar Moedas - - - Fee bump error - Erro no aumento de taxa - - - Increasing transaction fee failed - Aumento da taxa de transação falhou - - - Do you want to increase the fee? - Quer aumentar a taxa? - - - Current fee: - Taxa atual: - - - Increase: - Aumentar: - - - New fee: - Nova taxa: - - - Confirm fee bump - Confirme aumento de taxa - - - Can't sign transaction. - Não é possível assinar a transação. - - - Could not commit transaction - Não foi possível cometer a transação - - - - WalletView - - &Export - &Exportar - - - Export the data in the current tab to a file - Exportar os dados no separador atual para um ficheiro - - - Backup Wallet - Cópia de Segurança da Carteira - - - Wallet Data (*.dat) - Dados da Carteira (*.dat) - - - Backup Failed - Cópia de Segurança Falhou - - - There was an error trying to save the wallet data to %1. - Ocorreu um erro ao tentar guardar os dados da carteira em %1. - - - Backup Successful - Cópia de Segurança Bem Sucedida - - - The wallet data was successfully saved to %1. - Os dados da carteira foram guardados com sucesso em %1. - - - Cancel - Cancelar - - - - bitcoin-core - - Distributed under the MIT software license, see the accompanying file %s or %s - Distribuído sob licença de software MIT, veja o ficheiro %s ou %s - - - Prune configured below the minimum of %d MiB. Please use a higher number. - Poda configurada abaixo do mínimo de %d MiB. Por favor, utilize um valor mais elevado. - - - Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) - Poda: a última sincronização da carteira vai além dos dados podados. Precisa de -reindex (descarregar novamente a cadeia de blocos completa em caso de nó podado) - - - Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. - Reanálises não são possíveis em modo poda. Terá de utilizar -reindex que irá descarregar novamente a cadeia de blocos completa - - - Error: A fatal internal error occurred, see debug.log for details - Erro: Um erro fatal interno ocorreu, verificar debug.log para mais informação - - - Pruning blockstore... - A podar a blockstore... - - - Unable to start HTTP server. See debug log for details. - Não é possível iniciar o servidor HTTP. Verifique o debug.log para detalhes. - - - Bitcoin Core - Bitcoin Core - - - The %s developers - Os programadores de %s - - - Cannot obtain a lock on data directory %s. %s is probably already running. - Não foi possível obter o bloqueio de escrita no da pasta de dados %s. %s provavelmente já está a ser executado. - - - Cannot provide specific connections and have addrman find outgoing connections at the same. - Não é possível fornecer conexões específicas e ter o addrman a procurar conexões de saída ao mesmo tempo. - - - Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. - Por favor verifique que a data e hora do seu computador estão certos! Se o relógio não estiver certo, o %s não funcionará corretamente. - - - Please contribute if you find %s useful. Visit %s for further information about the software. - Por favor, contribua se achar que %s é útil. Visite %s para mais informação sobre o software. - - - The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct - A base de dados de blocos contém um bloco que aparenta ser do futuro. Isto pode ser causado por uma data incorreta definida no seu computador. Reconstrua apenas a base de dados de blocos caso tenha a certeza de que a data e hora do seu computador estão corretos. - - - This is the transaction fee you may discard if change is smaller than dust at this level - Esta é a taxa de transação que poderá descartar, se o troco for menor que o pó a este nível - - - Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain - Não é possível rebobinar a base de dados para um estado antes da divisão da cadeia de blocos. Necessita descarregar novamente a cadeia de blocos - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Aviso: a rede não parece estar completamente de acordo! Parece que alguns mineiros estão com dificuldades técnicas. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Aviso: parece que nós não estamos de acordo com os nossos pontos! Poderá ter que atualizar, ou outros pontos podem ter que ser atualizados. - - - %d of last 100 blocks have unexpected version - %d dos últimos 100 blocos têm uma versão inesperada - - - -maxmempool must be at least %d MB - - máximo do banco de memória deverá ser pelo menos %d MB - - - Cannot resolve -%s address: '%s' - Não é possível resolver -%s endereço '%s' - - - Copyright (C) %i-%i - Direitos de Autor (C) %i-%i - - - Corrupted block database detected - Detetada cadeia de blocos corrompida - - - Do you want to rebuild the block database now? - Deseja reconstruir agora a base de dados de blocos. - - - Error initializing block database - Erro ao inicializar a cadeia de blocos - - - Error initializing wallet database environment %s! - Erro ao inicializar o ambiente %s da base de dados da carteira - - - Error loading %s - Erro ao carregar %s - - - Error loading %s: Wallet corrupted - Erro ao carregar %s: carteira corrompida - - - Error loading %s: Wallet requires newer version of %s - Erro ao carregar %s: a carteira requer a nova versão de %s - - - Error loading block database - Erro ao carregar base de dados de blocos - - - Error opening block database - Erro ao abrir a base de dados de blocos - - - Error: Disk space is low! - Erro: Pouco espaço em disco! - - - Failed to listen on any port. Use -listen=0 if you want this. - Falhou a escutar em qualquer porta. Use -listen=0 se quiser isto. - - - Failed to rescan the wallet during initialization - Reexaminação da carteira falhou durante a inicialização - - - Importing... - A importar... - - - Incorrect or no genesis block found. Wrong datadir for network? - Bloco génese incorreto ou nenhum bloco génese encontrado. Pasta de dados errada para a rede? - - - Initialization sanity check failed. %s is shutting down. - Verificação de integridade inicial falhou. O %s está a desligar-se. - - - Invalid amount for -%s=<amount>: '%s' - Valor inválido para -%s=<amount>: '%s' - - - Invalid amount for -fallbackfee=<amount>: '%s' - Valor inválido para -fallbackfee=<amount>: '%s' - - - Specified blocks directory "%s" does not exist. - -A pasta de blocos especificados "%s" não existe. - - - Loading P2P addresses... - A carregar endereços de P2P... - - - Loading banlist... - A carregar a lista de banir... - - - Not enough file descriptors available. - Os descritores de ficheiros disponíveis são insuficientes. - - - Prune cannot be configured with a negative value. - Poda não pode ser configurada com um valor negativo. - - - Prune mode is incompatible with -txindex. - Modo poda é incompatível com -txindex. - - - Replaying blocks... - Repetindo blocos... - - - Rewinding blocks... - A rebobinar blocos... - - - The source code is available from %s. - O código fonte está disponível pelo %s. - - - Transaction fee and change calculation failed - Cálculo da taxa de transação e de troco falhou - - - Unsupported argument -benchmark ignored, use -debug=bench. - Argumento não suportado -benchmark ignorado, use -debug=bench. - - - Unsupported argument -debugnet ignored, use -debug=net. - Argumento não suportado -debugnet ignorado, use -debug=net. - - - Unsupported argument -tor found, use -onion. - Argumento não suportado -tor encontrado, use -onion. - - - Upgrading UTXO database - A atualizar a base de dados UTXO - - - User Agent comment (%s) contains unsafe characters. - Comentário no User Agent (%s) contém caracteres inseguros. - - - Verifying blocks... - A verificar blocos... - - - Wallet needed to be rewritten: restart %s to complete - A carteira precisou de ser reescrita: reinicie %s para completar - - - Error: Listening for incoming connections failed (listen returned error %s) - Erro: A escuta de ligações de entrada falhou (escuta devolveu erro %s) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Montante inválido para -maxtxfee=<amount>: '%s' (deverá ser, no mínimo , a taxa mínima de propagação de %s, de modo a evitar transações bloqueadas) - - - The transaction amount is too small to send after the fee has been deducted - O montante da transação é demasiado baixo após a dedução da taxa - - - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain - Necessita reconstruir a base de dados, utilizando -reindex para voltar ao modo sem poda. Isto irá descarregar novamente a cadeia de blocos completa - - - Error reading from database, shutting down. - Erro ao ler da base de dados, encerrando. - - - Information - Informação - - - Invalid -onion address or hostname: '%s' - Endereço -onion ou hostname inválido: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Montante inválido para -paytxfee=<amount>: '%s' (deverá ser no mínimo %s) - - - Invalid netmask specified in -whitelist: '%s' - Máscara de rede inválida especificada em -whitelist: '%s' - - - Need to specify a port with -whitebind: '%s' - Necessário especificar uma porta com -whitebind: '%s' - - - Reducing -maxconnections from %d to %d, because of system limitations. - Reduzindo -maxconnections de %d para %d, devido a limitações no sistema. - - - Signing transaction failed - Falhou assinatura da transação - - - Specified -walletdir "%s" is not a directory - O -walletdir "%s" especificado não é uma pasta - - - The transaction amount is too small to pay the fee - O montante da transação é demasiado baixo para pagar a taxa - - - This is experimental software. - Isto é software experimental. - - - Transaction amount too small - Quantia da transação é muito baixa - - - Transaction too large for fee policy - Transação demasiado grande para a política de taxas - - - Transaction too large - Transação grande demais - - - Unable to bind to %s on this computer (bind returned error %s) - Incapaz de vincular à porta %s neste computador (vínculo retornou erro %s) - - - Unable to generate initial keys - Incapaz de gerar as chaves iniciais - - - Verifying wallet(s)... - A verificar a(s) carteira(s)... - - - Wallet %s resides outside wallet directory %s - A carteira %s reside fora da pasta da carteira %s - - - Warning - Aviso - - - Warning: unknown new rules activated (versionbit %i) - Aviso: ativadas novas regras desconhecidas (versionbit %i) - - - Zapping all transactions from wallet... - A limpar todas as transações da carteira... - - - -maxtxfee is set very high! Fees this large could be paid on a single transaction. - -maxtxfee está definido com um valor muito alto! Taxas desta magnitude podem ser pagas numa única transação. - - - This is the transaction fee you may pay when fee estimates are not available. - Esta é a taxa de transação que poderá pagar quando as estimativas da taxa não estão disponíveis. - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Este produto inclui software desenvolvido pelo Projeto de OpenSSL para utilização no OpenSSL Toolkit %s e software criptográfico escrito por Eric Young e software UPnP escrito por Thomas Bernard. - - - Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. - Comprimento total da entrada da versão de rede (%i) excede o comprimento máximo (%i). Reduzir o número ou o tamanho de uacomments. - - - Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Encontrado um argumento não suportado -socks. Definir a versão do SOCKS já não é possível, apenas proxies SOCKS5 são suportados. - - - Unsupported argument -whitelistalwaysrelay ignored, use -whitelistrelay and/or -whitelistforcerelay. - Argumento não suportado -whitelistalwaysrelay ignorado, utilize -whitelistrelay e/ou -whitelistforcerelay. - - - Warning: Unknown block versions being mined! It's possible unknown rules are in effect - Atenção: Versões desconhecidas de blocos estão a ser mineradas! É possível que regras desconhecias estão a ser efetuadas - - - %s is set very high! - %s está demasiado elevado! - - - The wallet will avoid paying less than the minimum relay fee. - A carteira evitará pagar menos que a taxa minima de propagação. - - - This is the minimum transaction fee you pay on every transaction. - Esta é a taxa minima de transação que paga em cada transação. - - - This is the transaction fee you will pay if you send a transaction. - Esta é a taxa de transação que irá pagar se enviar uma transação. - - - Transaction amounts must not be negative - Os valores da transação não devem ser negativos - - - Transaction has too long of a mempool chain - A transação é muito grande de uma cadeia do banco de memória - - - Transaction must have at least one recipient - A transação dever pelo menos um destinatário - - - Unknown network specified in -onlynet: '%s' - Rede desconhecida especificada em -onlynet: '%s' - - - Insufficient funds - Fundos insuficientes - - - Cannot write to data directory '%s'; check permissions. - Não foi possível escrever na pasta de dados '%s': verifique as permissões. - - - Loading block index... - A carregar o índice de blocos... - - - Loading wallet... - A carregar a carteira... - - - Cannot downgrade wallet - Impossível mudar a carteira para uma versão anterior - - - Rescanning... - Reexaminando... - - - Done loading - Carregamento concluído - - - Error - Erro - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_ro_RO.ts b/src/qt/locale/bitcoin_ro_RO.ts deleted file mode 100644 index 79c7d12a5c..0000000000 --- a/src/qt/locale/bitcoin_ro_RO.ts +++ /dev/null @@ -1,3659 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Click-dreapta pentru a edita adresa sau eticheta - - - Create a new address - Creează o adresă nouă - - - &New - &Nou - - - Copy the currently selected address to the system clipboard - Copiază adresa selectată în clipboard - - - &Copy - &Copiază - - - C&lose - Î&nchide - - - Delete the currently selected address from the list - Şterge adresa selectată din listă - - - Enter address or label to search - Introduceţi adresa sau eticheta pentru căutare - - - Export the data in the current tab to a file - Exportă datele din tab-ul curent într-un fişier - - - &Export - &Exportă - - - &Delete - &Şterge - - - Choose the address to send coins to - Alege $adresa unde să trimiteţi monede - - - Choose the address to receive coins with - Alege adresa la care sa primesti monedele cu - - - C&hoose - A&lege - - - Sending addresses - Adresa de trimitere - - - Receiving addresses - Adresa de primire - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Acestea sunt adresele tale Bitcoin pentru efectuarea platilor. Intotdeauna verifica atent suma de plata si adresa beneficiarului inainte de a trimite monede. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Acestea sunt adresele tale Bitcoin pentru receptionarea platilor. Este recomandat sa folosesti mereu o adresa noua pentru primirea platilor. - - - &Copy Address - &Copiază Adresa - - - Copy &Label - Copiaza si eticheteaza - - - &Edit - &Editare - - - Export Address List - Exportă listă de adrese - - - Comma separated file (*.csv) - Fisier cu separator virgulă (*.csv) - - - Exporting Failed - Export nereusit - - - There was an error trying to save the address list to %1. Please try again. - A apărut o eroare la salvarea listei de adrese la %1. Vă rugăm să încercaţi din nou. - - - - AddressTableModel - - Label - Etichetă - - - Address - Adresă - - - (no label) - (fără etichetă) - - - - AskPassphraseDialog - - Passphrase Dialog - Dialogul pentru fraza de acces - - - Enter passphrase - Introduceţi fraza de acces - - - New passphrase - Frază de acces nouă - - - Repeat new passphrase - Repetaţi noua frază de acces - - - Show password - Arata parola - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Introduceţi noua parolă a portofelului electronic.<br/>Vă rugăm să folosiţi o parolă de<b>minimum 10 caractere aleatoare</b>, sau <b>minimum 8 cuvinte</b>. - - - Encrypt wallet - Criptare portofel - - - This operation needs your wallet passphrase to unlock the wallet. - Această acţiune necesită introducerea parolei de acces pentru deblocarea portofelului. - - - Unlock wallet - Deblocare portofel - - - This operation needs your wallet passphrase to decrypt the wallet. - Această acţiune necesită introducerea parolei de acces pentru decriptarea portofelului. - - - Decrypt wallet - Decriptare portofel - - - Change passphrase - Schimbă parola - - - Enter the old passphrase and new passphrase to the wallet. - Introduceţi vechea şi noua parolă pentru portofel. - - - Confirm wallet encryption - Confirmaţi criptarea portofelului - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Atenţie: Dacă va criptati portofelul si ulterior pierdeti parola, <b>VEŢI PIERDE TOTI BITCOINII</b>! - - - Are you sure you wish to encrypt your wallet? - Sigur doriţi să criptaţi portofelul dvs.? - - - Wallet encrypted - Portofel criptat - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 se va închide acum pentru a termina procesul de criptare. Ţineţi minte că criptarea portofelului nu vă poate proteja în totalitate de furtul monedelor de către programe malware care vă infectează calculatorul. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANT: Orice copie de siguranţă făcută anterior portofelului dumneavoastră ar trebui înlocuită cu cea generată cel mai recent, fişier criptat al portofelului. Pentru siguranţă, copiile de siguranţă vechi ale portofelului ne-criptat vor deveni inutile imediat ce veţi începe folosirea noului fişier criptat al portofelului. - - - Wallet encryption failed - Criptarea portofelului a eşuat. - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Criptarea portofelului nu a reuşit din cauza unei erori interne. Portofelul dvs. nu a fost criptat. - - - The supplied passphrases do not match. - Parolele furnizate nu se potrivesc. - - - Wallet unlock failed - Deblocarea portofelului a esuat. - - - The passphrase entered for the wallet decryption was incorrect. - Parola introdusă pentru decriptarea portofelului a fost incorectă. - - - Wallet decryption failed - Decriptarea portofelului a esuat. - - - Wallet passphrase was successfully changed. - Parola portofelului a fost schimbata. - - - Warning: The Caps Lock key is on! - Atenţie! Caps Lock este pornit! - - - - BanTableModel - - IP/Netmask - IP/Netmask - - - Banned Until - Banat până la - - - - BitcoinGUI - - Sign &message... - Semnează &mesaj... - - - Synchronizing with network... - Se sincronizează cu reţeaua... - - - &Overview - &Imagine de ansamblu - - - Node - Nod - - - Show general overview of wallet - Arată o stare generală de ansamblu a portofelului - - - &Transactions - &Tranzacţii - - - Browse transaction history - Răsfoire istoric tranzacţii - - - E&xit - Ieşire - - - Quit application - Închide aplicaţia - - - &About %1 - &Despre %1 - - - Show information about %1 - Arată informaţii despre %1 - - - About &Qt - Despre &Qt - - - Show information about Qt - Arată informaţii despre Qt - - - &Options... - &Opţiuni... - - - Modify configuration options for %1 - Modifică opţiunile de configurare pentru %1 - - - &Encrypt Wallet... - Cript&ează portofelul... - - - &Backup Wallet... - Face o copie de siguranţă a portofelului... - - - &Change Passphrase... - S&chimbă parola... - - - &Sending addresses... - Adrese de trimitere... - - - &Receiving addresses... - Adrese de p&rimire... - - - Open &URI... - Deschide &URI... - - - Wallet: - Portofel: - - - default wallet - portofel implicit - - - Click to disable network activity. - Click pentru a opri activitatea retelei. - - - Network activity disabled. - Activitatea retelei a fost oprita. - - - Click to enable network activity again. - Click pentu a porni activitatea retelei. - - - Syncing Headers (%1%)... - Se sincronizeaza Header-ele (%1%)... - - - Reindexing blocks on disk... - Se reindexează blocurile pe disc... - - - Proxy is <b>enabled</b>: %1 - Proxy este<b>activat</b>:%1 - - - Send coins to a Bitcoin address - Trimite monede către o adresă Bitcoin - - - Backup wallet to another location - Creează o copie de rezervă a portofelului într-o locaţie diferită - - - Change the passphrase used for wallet encryption - Schimbă fraza de acces folosită pentru criptarea portofelului - - - &Debug window - Fereastra de &depanare - - - Open debugging and diagnostic console - Deschide consola de depanare şi diagnosticare - - - &Verify message... - &Verifică mesaj... - - - Bitcoin - Bitcoin - - - Wallet - Portofel - - - &Send - Trimite - - - &Receive - P&rimeşte - - - &Show / Hide - Arată/Ascunde - - - Show or hide the main Window - Arată sau ascunde fereastra principală - - - Encrypt the private keys that belong to your wallet - Criptează cheile private ale portofelului dvs. - - - Sign messages with your Bitcoin addresses to prove you own them - Semnaţi mesaje cu adresa dvs. Bitcoin pentru a dovedi că vă aparţin - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Verificaţi mesaje pentru a vă asigura că au fost semnate cu adresa Bitcoin specificată - - - &File - &Fişier - - - &Settings - &Setări - - - &Help - A&jutor - - - Tabs toolbar - Bara de unelte - - - Request payments (generates QR codes and bitcoin: URIs) - Cereţi plăţi (generează coduri QR şi bitcoin-uri: URls) - - - Show the list of used sending addresses and labels - Arată lista de adrese trimise şi etichetele folosite. - - - Show the list of used receiving addresses and labels - Arată lista de adrese pentru primire şi etichetele - - - Open a bitcoin: URI or payment request - Deschidere bitcoin: o adresa URI sau o cerere de plată - - - &Command-line options - Opţiuni linie de &comandă - - - %n active connection(s) to Bitcoin network - %n conexiune activă către reţeaua Bitcoin%n conexiuni active către reţeaua Bitcoin%n de conexiuni active către reţeaua Bitcoin - - - Indexing blocks on disk... - Se indexează blocurile pe disc... - - - Processing blocks on disk... - Se proceseaza blocurile pe disc... - - - Processed %n block(s) of transaction history. - S-a procesat %n bloc din istoricul tranzacţiilor.S-au procesat %n blocuri din istoricul tranzacţiilor.S-au procesat %n de blocuri din istoricul tranzacţiilor. - - - %1 behind - %1 în urmă - - - Last received block was generated %1 ago. - Ultimul bloc recepţionat a fost generat acum %1. - - - Transactions after this will not yet be visible. - Tranzacţiile după aceasta nu vor fi vizibile încă. - - - Error - Eroare - - - Warning - Avertisment - - - Information - Informaţie - - - Up to date - Actualizat - - - Show the %1 help message to get a list with possible Bitcoin command-line options - Arată mesajul de ajutor %1 pentru a obţine o listă cu opţiunile posibile de linii de comandă Bitcoin - - - %1 client - Client %1 - - - Connecting to peers... - Se conecteaza cu alte noduri... - - - Catching up... - Se actualizează... - - - Date: %1 - - Data: %1 - - - - Amount: %1 - - Sumă: %1 - - - - Wallet: %1 - - Portofel: %1 - - - - Type: %1 - - Tip: %1 - - - - Label: %1 - - Etichetă: %1 - - - - Address: %1 - - Adresă: %1 - - - - Sent transaction - Tranzacţie expediată - - - Incoming transaction - Tranzacţie recepţionată - - - HD key generation is <b>enabled</b> - Generarea de chei HD este <b>activata</b> - - - HD key generation is <b>disabled</b> - Generarea de chei HD este <b>dezactivata</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Portofelul este <b>criptat</b> iar în momentul de faţă este <b>deblocat</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Portofelul este <b>criptat</b> iar în momentul de faţă este <b>blocat</b> - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - A survenit o eroare fatală. Bitcoin nu mai poate continua în siguranţă şi se va opri. - - - - CoinControlDialog - - Coin Selection - Selectarea monedei - - - Quantity: - Cantitate: - - - Bytes: - Octeţi: - - - Amount: - Sumă: - - - Fee: - Taxă: - - - Dust: - Praf: - - - After Fee: - După taxă: - - - Change: - Schimb: - - - (un)select all - (de)selectare tot - - - Tree mode - Mod arbore - - - List mode - Mod listă - - - Amount - Sumă - - - Received with label - Primite cu eticheta - - - Received with address - Primite cu adresa - - - Date - Data - - - Confirmations - Confirmări - - - Confirmed - Confirmat - - - Copy address - Copiază adresa - - - Copy label - Copiază eticheta - - - Copy amount - Copiază suma - - - Copy transaction ID - Copiază ID tranzacţie - - - Lock unspent - Blocare necheltuiţi - - - Unlock unspent - Deblocare necheltuiţi - - - Copy quantity - Copiază cantitea - - - Copy fee - Copiază taxa - - - Copy after fee - Copiază după taxă - - - Copy bytes - Copiază octeţi - - - Copy dust - Copiază praf - - - Copy change - Copiază rest - - - yes - da - - - no - nu - - - This label turns red if any recipient receives an amount smaller than the current dust threshold. - Această etichetă devine roşie, dacă orice beneficiar primeşte o sumă mai mică decât pragul curent pentru praf. - - - Can vary +/- %1 satoshi(s) per input. - Poate varia +/- %1 satoshi pentru fiecare intrare. - - - (no label) - (fără etichetă) - - - change from %1 (%2) - restul de la %1 (%2) - - - (change) - (rest) - - - - EditAddressDialog - - Edit Address - Editează adresa - - - &Label - &Etichetă - - - The label associated with this address list entry - Eticheta asociată cu această intrare din listă. - - - The address associated with this address list entry. This can only be modified for sending addresses. - Adresa asociată cu această adresă din listă. Aceasta poate fi modificată doar pentru adresele de trimitere. - - - &Address - &Adresă - - - New sending address - Noua adresă de trimitere - - - Edit receiving address - Editează adresa de primire - - - Edit sending address - Editează adresa de trimitere - - - The entered address "%1" is not a valid Bitcoin address. - Adresa introdusă "%1" nu este o adresă Bitcoin validă. - - - Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. - Adresa "%1" exista deja ca si adresa de primire cu eticheta "%2" si deci nu poate fi folosita ca si adresa de trimitere. - - - The entered address "%1" is already in the address book with label "%2". - Adresa introdusa "%1" este deja in lista de adrese cu eticheta "%2" - - - Could not unlock wallet. - Portofelul nu a putut fi deblocat. - - - New key generation failed. - Generarea noii chei nu a reuşit. - - - - FreespaceChecker - - A new data directory will be created. - Va fi creat un nou dosar de date. - - - name - nume - - - Directory already exists. Add %1 if you intend to create a new directory here. - Dosarul deja există. Adaugă %1 dacă intenţionaţi să creaţi un nou dosar aici. - - - Path already exists, and is not a directory. - Calea deja există şi nu este un dosar. - - - Cannot create data directory here. - Nu se poate crea un dosar de date aici. - - - - HelpMessageDialog - - version - versiunea - - - (%1-bit) - (%1-bit) - - - About %1 - Despre %1 - - - Command-line options - Opţiuni linie de comandă - - - - Intro - - Welcome - Bun venit - - - Welcome to %1. - Bun venit la %1! - - - As this is the first time the program is launched, you can choose where %1 will store its data. - Deoarece este prima lansare a programului poți alege unde %1 va stoca datele sale. - - - When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. - Cand apasati OK, %1 va incepe descarcarea si procesarea intregului %4 blockchain (%2GB) incepand cu cele mai vechi tranzactii din %3 de la lansarea initiala a %4. - - - This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. - Sincronizarea initiala necesita foarte multe resurse, si poate releva probleme de hardware ale computerului care anterior au trecut neobservate. De fiecare data cand rulati %1, descarcarea va continua de unde a fost intrerupta. - - - If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. - Daca ati ales o limita pentru capacitatea de stocare a blockchainului (pruning), datele mai vechi tot trebuie sa fie descarcate si procesate, insa vor fi sterse ulterior pentru a reduce utilizarea harddiskului. - - - Use the default data directory - Foloseşte dosarul de date implicit - - - Use a custom data directory: - Foloseşte un dosar de date personalizat: - - - Bitcoin - Bitcoin - - - At least %1 GB of data will be stored in this directory, and it will grow over time. - Cel putin %1GB de date vor fi stocate in acest director, si aceasta valoare va creste in timp. - - - Approximately %1 GB of data will be stored in this directory. - Aproximativ %1 GB de date vor fi stocate in acest director. - - - %1 will download and store a copy of the Bitcoin block chain. - %1 va descarca si stoca o copie a blockchainului Bitcoin - - - The wallet will also be stored in this directory. - Portofelul va fi de asemeni stocat in acest director. - - - Error: Specified data directory "%1" cannot be created. - Eroare: Directorul datelor specificate "%1" nu poate fi creat. - - - Error - Eroare - - - %n GB of free space available - %n GB de spaţiu liber disponibil%n GB de spaţiu liber disponibil%n GB de spaţiu liber disponibil - - - (of %n GB needed) - (din %n GB necesar)(din %n GB necesari)(din %n GB necesari) - - - - ModalOverlay - - Form - Form - - - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Tranzactiile recente pot sa nu fie inca vizibile, de aceea balanta portofelului poate fi incorecta. Aceasta informatie va fi corecta de indata ce portofelul va fi complet sincronizat cu reteaua Bitcoin, asa cum este detaliat mai jos. - - - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Incercarea de a cheltui bitcoini care sunt afectati de tranzactii ce inca nu sunt afisate nu va fi acceptata de retea. - - - Number of blocks left - Numarul de blocuri ramase - - - Unknown... - Necunoscut... - - - Last block time - Data ultimului bloc - - - Progress - Progres - - - Progress increase per hour - Cresterea progresului per ora - - - calculating... - calculeaza... - - - Estimated time left until synced - Timp estimat pana la sincronizare - - - Hide - Ascunde - - - Unknown. Syncing Headers (%1)... - Necunoscut. Se sincronizeaza headerele (%1)... - - - - OpenURIDialog - - Open URI - Deschide URI - - - Open payment request from URI or file - Deschideţi cerere de plată prin intermediul adresei URI sau a fişierului - - - URI: - URI: - - - Select payment request file - Selectaţi fişierul cerere de plată - - - Select payment request file to open - Selectati care fisier de cerere de plata va fi deschis - - - - OptionsDialog - - Options - Opţiuni - - - &Main - Principal - - - Automatically start %1 after logging in to the system. - Porneşte automat %1 după logarea in sistem. - - - &Start %1 on system login - &Porneste %1 la logarea in sistem. - - - Size of &database cache - Mărimea bazei de &date cache - - - MB - MB - - - Number of script &verification threads - Numărul de thread-uri de &verificare - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Adresa IP a serverului proxy (de exemplu: IPv4: 127.0.0.1 / IPv6: ::1) - - - Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. - Arata daca proxy-ul SOCKS5 furnizat implicit este folosit pentru a gasi parteneri via acest tip de retea. - - - Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - Foloseste un proxy SOCKS&5 separat pentru a gasi parteneri via servicii TOR ascunse - - - Hide the icon from the system tray. - Ascunde icon-ul din system tray. - - - &Hide tray icon - &Ascunde icon-ul din system tray. - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Minimizează fereastra în locul părăsirii programului în momentul închiderii ferestrei. Cînd acestă opţiune e activă, aplicaţia se va opri doar în momentul selectării comenzii 'Închide aplicaţia' din menu. - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URL-uri terţe părţi (de exemplu, un explorator de bloc), care apar în tab-ul tranzacţiilor ca elemente de meniu contextual. %s în URL este înlocuit cu hash de tranzacţie. URL-urile multiple sînt separate prin bară verticală |. - - - Active command-line options that override above options: - Opţiuni linie de comandă active care oprimă opţiunile de mai sus: - - - Open the %1 configuration file from the working directory. - Deschide fisierul de configurare %1 din directorul curent. - - - Open Configuration File - Deschide fisierul de configurare. - - - Reset all client options to default. - Resetează toate setările clientului la valorile implicite. - - - &Reset Options - &Resetează opţiunile - - - &Network - Reţea - - - Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher. - Dezactiveaza unele caracteristici avansate insa toate blocurile vor fi validate pe deplin. Inversarea acestei setari necesita re-descarcarea intregului blockchain. Utilizarea reala a discului poate fi ceva mai mare. - - - Prune &block storage to - Reductie &block storage la - - - GB - GB - - - Reverting this setting requires re-downloading the entire blockchain. - Inversarea acestei setari necesita re-descarcarea intregului blockchain. - - - (0 = auto, <0 = leave that many cores free) - (0 = automat, <0 = lasă atîtea nuclee libere) - - - W&allet - Portofel - - - Expert - Expert - - - Enable coin &control features - Activare caracteristici de control ale monedei - - - If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Dacă dezactivaţi cheltuirea restului neconfirmat, restul dintr-o tranzacţie nu poate fi folosit pînă cînd tranzacţia are cel puţin o confirmare. Aceasta afectează de asemenea calcularea soldului. - - - &Spend unconfirmed change - Cheltuire rest neconfirmat - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Deschide automat în router portul aferent clientului Bitcoin. Funcţionează doar dacă routerul duportă UPnP şi e activat. - - - Map port using &UPnP - Mapare port folosind &UPnP - - - Accept connections from outside. - Acceptă conexiuni din exterior - - - Allow incomin&g connections - Permite conexiuni de intrar&e - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Conectare la reţeaua Bitcoin printr-un proxy SOCKS. - - - &Connect through SOCKS5 proxy (default proxy): - &Conectare printr-un proxy SOCKS (implicit proxy): - - - Proxy &IP: - Proxy &IP: - - - &Port: - &Port: - - - Port of the proxy (e.g. 9050) - Portul proxy (de exemplu: 9050) - - - Used for reaching peers via: - Folosit pentru a gasi parteneri via: - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Conectare la reteaua Bitcoin printr-un proxy SOCKS5 separat pentru serviciile TOR ascunse. - - - &Window - &Fereastră - - - Show only a tray icon after minimizing the window. - Arată doar un icon în tray la ascunderea ferestrei - - - &Minimize to the tray instead of the taskbar - &Minimizare în tray în loc de taskbar - - - M&inimize on close - M&inimizare fereastră în locul închiderii programului - - - &Display - &Afişare - - - User Interface &language: - &Limbă interfaţă utilizator - - - The user interface language can be set here. This setting will take effect after restarting %1. - Limba interfeţei utilizatorului poate fi setată aici. Această setare va avea efect după repornirea %1. - - - &Unit to show amounts in: - &Unitatea de măsură pentru afişarea sumelor: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Alegeţi subdiviziunea folosită la afişarea interfeţei şi la trimiterea de bitcoin. - - - Whether to show coin control features or not. - Arată controlul caracteristicilor monedei sau nu. - - - &Third party transaction URLs - URL-uri tranzacţii &terţe părţi - - - &OK - &OK - - - &Cancel - Renunţă - - - default - iniţial - - - none - nimic - - - Confirm options reset - Confirmă resetarea opţiunilor - - - Client restart required to activate changes. - Este necesară repornirea clientului pentru a activa schimbările. - - - Client will be shut down. Do you want to proceed? - Clientul va fi închis. Doriţi să continuaţi? - - - Configuration options - Optiuni de configurare - - - The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file. - Fisierul de configurare e folosit pentru a specifica optiuni utilizator avansate care modifica setarile din GUI. In plus orice optiune din linia de comanda va modifica acest fisier de configurare. - - - Error - Eroare - - - The configuration file could not be opened. - Fisierul de configurare nu a putut fi deschis. - - - This change would require a client restart. - Această schimbare necesită o repornire a clientului. - - - The supplied proxy address is invalid. - Adresa bitcoin pe care aţi specificat-o nu este validă. - - - - OverviewPage - - Form - Form - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Informaţiile afişate pot fi neactualizate. Portofelul dvs. se sincronizează automat cu reţeaua Bitcoin după ce o conexiune este stabilită, dar acest proces nu a fost finalizat încă. - - - Watch-only: - Doar-supraveghere: - - - Available: - Disponibil: - - - Your current spendable balance - Balanţa dvs. curentă de cheltuieli - - - Pending: - În aşteptare: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Totalul tranzacţiilor care nu sunt confirmate încă şi care nu sunt încă adunate la balanţa de cheltuieli - - - Immature: - Nematurizat: - - - Mined balance that has not yet matured - Balanţa minata ce nu s-a maturizat încă - - - Balances - Balanţă - - - Total: - Total: - - - Your current total balance - Balanţa totală curentă - - - Your current balance in watch-only addresses - Soldul dvs. curent în adresele doar-supraveghere - - - Spendable: - Cheltuibil: - - - Recent transactions - Tranzacţii recente - - - Unconfirmed transactions to watch-only addresses - Tranzacţii neconfirmate la adresele doar-supraveghere - - - Mined balance in watch-only addresses that has not yet matured - Balanţă minată în adresele doar-supraveghere care nu s-a maturizat încă - - - Current total balance in watch-only addresses - Soldul dvs. total în adresele doar-supraveghere - - - - PaymentServer - - Payment request error - Eroare la cererea de plată - - - Cannot start bitcoin: click-to-pay handler - Bitcoin nu poate porni: click-to-pay handler - - - URI handling - Gestionare URI - - - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' nu este un URI valid. Folositi 'bitcoin:' in loc. - - - Payment request fetch URL is invalid: %1 - URL-ul cererii de plată preluat nu este valid: %1 - - - Invalid payment address %1 - Adresă pentru plată invalidă %1 - - - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI nu poate fi analizat! Acest lucru poate fi cauzat de o adresă Bitcoin invalidă sau parametri URI deformaţi. - - - Payment request file handling - Manipulare fişier cerere de plată - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Fişierul cerere de plată nu poate fi citit! Cauza poate fi un fişier cerere de plată nevalid. - - - Payment request rejected - Cerere de plată refuzată - - - Payment request network doesn't match client network. - Cererea de plată din reţea nu se potriveşte cu clientul din reţea - - - Payment request expired. - Cerere de plată expirata - - - Payment request is not initialized. - Cererea de plată nu este iniţializată. - - - Unverified payment requests to custom payment scripts are unsupported. - Cererile nesecurizate către scripturi personalizate de plăți nu sunt suportate - - - Invalid payment request. - Cerere de plată invalidă. - - - Requested payment amount of %1 is too small (considered dust). - Suma cerută de plată de %1 este prea mică (considerată praf). - - - Refund from %1 - Rambursare de la %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Cererea de plată %1 este prea mare (%2 octeţi, permis %3 octeţi). - - - Error communicating with %1: %2 - Eroare la comunicarea cu %1: %2 - - - Payment request cannot be parsed! - Cererea de plată nu poate fi analizată! - - - Bad response from server %1 - Răspuns greşit de la server %1 - - - Network request error - Eroare în cererea de reţea - - - Payment acknowledged - Plată acceptată - - - - PeerTableModel - - User Agent - Agent utilizator - - - Node/Service - Nod/Serviciu - - - NodeId - NodeID - - - Ping - Ping - - - Sent - Expediat - - - Received - Recepţionat - - - - QObject - - Amount - Cantitate - - - Enter a Bitcoin address (e.g. %1) - Introduceţi o adresă Bitcoin (de exemplu %1) - - - %1 d - %1 z - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - None - Niciuna - - - N/A - N/A - - - %1 ms - %1 ms - - - %n second(s) - %n secunda%n secunde%n secunde - - - %n minute(s) - %n minut%n minute%n minute - - - %n hour(s) - %n ora%n ore%n ore - - - %n day(s) - %n zi%n zile%n zile - - - %n week(s) - %n saptamana%n saptamani%n saptamani - - - %1 and %2 - %1 şi %2 - - - %n year(s) - %n an%n ani%n ani - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - %1 didn't yet exit safely... - %1 nu a fost inchis in siguranta... - - - unknown - necunoscut - - - - QObject::QObject - - Error parsing command line arguments: %1. - Eroare la analiza argumentelor linie de comanda: %1 - - - Error: Specified data directory "%1" does not exist. - Eroare: Directorul de date specificat "%1" nu există. - - - Error: Cannot parse configuration file: %1. - Eroare: Nu se poate analiza fişierul de configuraţie: %1. - - - Error: %1 - Eroare: %1 - - - - QRImageWidget - - &Save Image... - &Salvează Imaginea... - - - &Copy Image - &Copiaza Imaginea - - - Save QR Code - Salvează codul QR - - - PNG Image (*.png) - Imagine de tip PNG (*.png) - - - - RPCConsole - - N/A - Nespecificat - - - Client version - Versiune client - - - &Information - &Informaţii - - - Debug window - Fereastra de depanare - - - General - General - - - Using BerkeleyDB version - Foloseşte BerkeleyDB versiunea - - - Datadir - Dirdate - - - Startup time - Ora de pornire - - - Network - Reţea - - - Name - Nume - - - Number of connections - Numărul de conexiuni - - - Block chain - Lanţ de blocuri - - - Current number of blocks - Numărul curent de blocuri - - - Memory Pool - Pool Memorie - - - Current number of transactions - Numărul curent de tranzacţii - - - Memory usage - Memorie folosită - - - Wallet: - Portofel: - - - (none) - (nimic) - - - &Reset - &Resetare - - - Received - Recepţionat - - - Sent - Expediat - - - &Peers - &Parteneri - - - Banned peers - Terti banati - - - Select a peer to view detailed information. - Selectaţi un partener pentru a vedea informaţiile detaliate. - - - Whitelisted - Whitelisted - - - Direction - Direcţie - - - Version - Versiune - - - Starting Block - Bloc de început - - - Synced Headers - Headere Sincronizate - - - Synced Blocks - Blocuri Sincronizate - - - User Agent - Agent utilizator - - - Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. - Deschide fişierul jurnal depanare %1 din directorul curent. Aceasta poate dura cateva secunde pentru fişierele mai mari. - - - Decrease font size - Micsoreaza fontul - - - Increase font size - Mareste fontul - - - Services - Servicii - - - Ban Score - Scor Ban - - - Connection Time - Timp conexiune - - - Last Send - Ultima trimitere - - - Last Receive - Ultima primire - - - Ping Time - Timp ping - - - The duration of a currently outstanding ping. - Durata ping-ului intarziat. - - - Ping Wait - Asteptare ping - - - Min Ping - Min Ping - - - Time Offset - Diferenta timp - - - Last block time - Data ultimului bloc - - - &Open - &Deschide - - - &Console - &Consolă - - - &Network Traffic - Trafic reţea - - - Totals - Totaluri - - - In: - Intrare: - - - Out: - Ieşire: - - - Debug log file - Fişier jurnal depanare - - - Clear console - Curăţă consola - - - 1 &hour - 1 &oră - - - 1 &day - 1 &zi - - - 1 &week - 1 &săptămână - - - 1 &year - 1 &an - - - &Disconnect - &Deconectare - - - Ban for - Interzicere pentru - - - &Unban - &Unban - - - default wallet - portofel implicit - - - Welcome to the %1 RPC console. - Bun venit la consola %1 RPC. - - - Use up and down arrows to navigate history, and %1 to clear screen. - Folosiţi săgetile sus şi jos pentru a naviga în istoric şi %1 pentru a curăţa ecranul. - - - Type %1 for an overview of available commands. - Tastati %1 pentru o recapitulare a comenzilor disponibile. - - - For more information on using this console type %1. - Pentru mai multe informatii despre folosirea acestei console tastati %1. - - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - ATENTIONARE: Sunt excroci care instruiesc userii sa introduca aici comenzi, pentru a le fura continutul portofelelor. Nu folositi aceasta consolă fara a intelege pe deplin ramificatiile unei comenzi. - - - Network activity disabled - Activitatea retelei a fost oprita. - - - Executing command without any wallet - Executarea comenzii fara nici un portofel. - - - Executing command using "%1" wallet - Executarea comenzii folosind portofelul "%1" - - - (node id: %1) - (node id: %1) - - - via %1 - via %1 - - - never - niciodată - - - Inbound - Intrare - - - Outbound - Ieşire - - - Yes - Da - - - No - Nu - - - Unknown - Necunoscut - - - - ReceiveCoinsDialog - - &Amount: - Sum&a: - - - &Label: - &Etichetă: - - - &Message: - &Mesaj: - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Un mesaj opţional de ataşat la cererea de plată, care va fi afişat cînd cererea este deschisă. Notă: Acest mesaj nu va fi trimis cu plata către reţeaua Bitcoin. - - - An optional label to associate with the new receiving address. - O etichetă opţională de asociat cu adresa de primire. - - - Use this form to request payments. All fields are <b>optional</b>. - Foloseşte acest formular pentru a solicita plăţi. Toate cîmpurile sînt <b>opţionale</b>. - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - O sumă opţională de cerut. Lăsaţi gol sau zero pentru a nu cere o sumă anume. - - - Clear all fields of the form. - Curăţă toate cîmpurile formularului. - - - Clear - Curăţă - - - Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. - Adresele native segwit (aka Bech32 sau BIP-173) vor reduce mai tarziu comisioanele de tranzactionare si vor oferi o mai buna protectie impotriva introducerii gresite, dar portofelele vechi nu sunt compatibile. Daca optiunea nu e bifata, se va crea o adresa compatibila cu portofelele vechi. - - - Generate native segwit (Bech32) address - Genereaza adresa nativa segwit (Bech32) - - - Requested payments history - Istoricul plăţilor cerute - - - &Request payment - &Cerere plată - - - Show the selected request (does the same as double clicking an entry) - Arată cererea selectată (acelaşi lucru ca şi dublu-clic pe o înregistrare) - - - Show - Arată - - - Remove the selected entries from the list - Înlătură intrările selectate din listă - - - Remove - Înlătură - - - Copy URI - Copiază URl - - - Copy label - Copiază eticheta - - - Copy message - Copiază mesajul - - - Copy amount - Copiază suma - - - - ReceiveRequestDialog - - QR Code - Cod QR - - - Copy &URI - Copiază &URl - - - Copy &Address - Copiază &adresa - - - &Save Image... - &Salvează imaginea... - - - Request payment to %1 - Cere plata pentru %1 - - - Payment information - Informaţiile plată - - - URI - URI - - - Address - Adresă - - - Amount - Cantitate - - - Label - Etichetă - - - Message - Mesaj - - - Wallet - Portofel - - - Resulting URI too long, try to reduce the text for label / message. - URI rezultat este prea lung, încearcă să reduci textul pentru etichetă / mesaj. - - - Error encoding URI into QR Code. - Eroare la codarea URl-ului în cod QR. - - - - RecentRequestsTableModel - - Date - Data - - - Label - Etichetă - - - Message - Mesaj - - - (no label) - (fără etichetă) - - - (no message) - (nici un mesaj) - - - (no amount requested) - (nici o sumă solicitată) - - - Requested - Ceruta - - - - SendCoinsDialog - - Send Coins - Trimite monede - - - Coin Control Features - Caracteristici de control ale monedei - - - Inputs... - Intrări... - - - automatically selected - selecţie automată - - - Insufficient funds! - Fonduri insuficiente! - - - Quantity: - Cantitate: - - - Bytes: - Octeţi: - - - Amount: - Sumă: - - - Fee: - Comision: - - - After Fee: - După taxă: - - - Change: - Rest: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Dacă este activat, dar adresa de rest este goală sau nevalidă, restul va fi trimis la o adresă nou generată. - - - Custom change address - Adresă personalizată de rest - - - Transaction Fee: - Taxă tranzacţie: - - - Choose... - Alegeţi... - - - Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. - Folosirea taxei implicite poate rezulta in trimiterea unei tranzactii care va dura cateva ore sau zile (sau niciodata) pentru a fi confirmata. Luati in considerare sa setati manual taxa sau asteptati pana ati validat complet lantul. - - - Warning: Fee estimation is currently not possible. - Avertisment: Estimarea comisionului nu s-a putut efectua. - - - collapse fee-settings - inchide setarile de taxare - - - Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. - -Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis. - Specificati o taxa anume pe kB (1000 byte) din marimea virtuala a tranzactiei. - -Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o tranzactie de 500 byte (jumatate de kB) va produce o taxa de doar 50 satoshi. - - - per kilobyte - per kilooctet - - - Hide - Ascunde - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Plata unei taxe minime de tranzactie este in regula atata timp cat exista mai mult spatiu in blocuri dacat sunt tranzactii. Insa trebuie sa fiti constienti ca acest lucru poate conduce la tranzactii care nu vor fi niciodata confirmate in cazul in care exista cerere de tranzactii mai mare decat poate procesa reteaua. - - - (read the tooltip) - (citeste tooltip) - - - Recommended: - Recomandat: - - - Custom: - Personalizat: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Taxa smart nu este inca initializata. Aceasta poate dura cateva blocuri...) - - - Send to multiple recipients at once - Trimite simultan către mai mulţi destinatari - - - Add &Recipient - Adaugă destinata&r - - - Clear all fields of the form. - Şterge toate câmpurile formularului. - - - Dust: - Praf: - - - Confirmation time target: - Timp confirmare tinta: - - - Enable Replace-By-Fee - Autorizeaza Replace-By-Fee - - - With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk. - Cu Replace-By-Fee (BIP-125) se poate creste taxa unei tranzactii dupa ce a fost trimisa. Fara aceasta optiune, o taxa mai mare e posibil sa fie recomandata pentru a compensa riscul crescut de intarziere a tranzactiei. - - - Clear &All - Curăţă to&ate - - - Balance: - Balanţă: - - - Confirm the send action - Confirmă operaţiunea de trimitere - - - S&end - Trimit&e - - - Copy quantity - Copiază cantitea - - - Copy amount - Copiază suma - - - Copy fee - Copiază taxa - - - Copy after fee - Copiază după taxă - - - Copy bytes - Copiază octeţi - - - Copy dust - Copiază praf - - - Copy change - Copiază rest - - - %1 (%2 blocks) - %1(%2 blocuri) - - - %1 to %2 - %1 la %2 - - - Are you sure you want to send? - Sigur doriţi să trimiteţi? - - - or - sau - - - You can increase the fee later (signals Replace-By-Fee, BIP-125). - Puteti creste taxa mai tarziu (semnaleaza Replace-By-Fee, BIP-125). - - - from wallet %1 - de la portofelul %1 - - - Please, review your transaction. - Va rugam sa revizuiti tranzactia. - - - Transaction fee - Taxă tranzacţie - - - Not signalling Replace-By-Fee, BIP-125. - Nu se semnalizeaza Replace-By-Fee, BIP-125 - - - Total Amount - Suma totală - - - Confirm send coins - Confirmă trimiterea monedelor - - - The recipient address is not valid. Please recheck. - Adresa destinatarului nu este validă. Rugăm să reverificaţi. - - - The amount to pay must be larger than 0. - Suma de plată trebuie să fie mai mare decît 0. - - - The amount exceeds your balance. - Suma depăşeşte soldul contului. - - - The total exceeds your balance when the %1 transaction fee is included. - Totalul depăşeşte soldul contului dacă se include şi plata taxei de %1. - - - Duplicate address found: addresses should only be used once each. - Adresă duplicat găsită: fiecare adresă ar trebui folosită o singură dată. - - - Transaction creation failed! - Creare tranzacţie nereuşită! - - - The transaction was rejected with the following reason: %1 - Tranzactia a fost refuzata pentru urmatorul motiv: %1 - - - A fee higher than %1 is considered an absurdly high fee. - O taxă mai mare de %1 este considerată o taxă absurd de mare - - - Payment request expired. - Cerere de plată expirata - - - Pay only the required fee of %1 - Plăteşte doar taxa solicitata de %1 - - - Estimated to begin confirmation within %n block(s). - Se estimeaza inceperea confirmarii in %n bloc.Se estimeaza inceperea confirmarii in %n blocuri.Se estimeaza inceperea confirmarii in %n blocuri. - - - Warning: Invalid Bitcoin address - Atenţie: Adresa bitcoin nevalidă! - - - Warning: Unknown change address - Atenţie: Adresă de rest necunoscută - - - Confirm custom change address - Confirmati adresa personalizata de rest - - - The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? - Adresa selectata pentru rest nu face parte din acest portofel. Orice suma, sau intreaga suma din portofel poate fi trimisa la aceasta adresa. Sunteti sigur? - - - (no label) - (fără etichetă) - - - - SendCoinsEntry - - A&mount: - Su&mă: - - - Pay &To: - Plăteşte că&tre: - - - &Label: - &Etichetă: - - - Choose previously used address - Alegeţi adrese folosite anterior - - - This is a normal payment. - Aceasta este o tranzacţie normală. - - - The Bitcoin address to send the payment to - Adresa bitcoin către care se face plata - - - Alt+A - Alt+A - - - Paste address from clipboard - Lipeşte adresa din clipboard - - - Alt+P - Alt+P - - - Remove this entry - Înlătură această intrare - - - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Taxa va fi scazuta in suma trimisa. Destinatarul va primi mai putini bitcoin decat ati specificat in campul sumei trimise. Daca au fost selectati mai multi destinatari, taxa se va imparti in mod egal. - - - S&ubtract fee from amount - S&cade taxa din suma - - - Use available balance - Folosește balanța disponibilă - - - Message: - Mesaj: - - - This is an unauthenticated payment request. - Aceasta este o cerere de plata neautentificata. - - - This is an authenticated payment request. - Aceasta este o cerere de plata autentificata. - - - Enter a label for this address to add it to the list of used addresses - Introduceţi eticheta pentru ca această adresa să fie introdusă în lista de adrese folosite - - - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - un mesaj a fost ataşat la bitcoin: URI care va fi stocat cu tranzacţia pentru referinţa dvs. Notă: Acest mesaj nu va fi trimis către reţeaua bitcoin. - - - Pay To: - Plăteşte către: - - - Memo: - Memo: - - - Enter a label for this address to add it to your address book - Introduceţi o etichetă pentru această adresă pentru a fi adăugată în lista dvs. de adrese - - - - SendConfirmationDialog - - Yes - Da - - - - ShutdownWindow - - %1 is shutting down... - %1 se închide - - - Do not shut down the computer until this window disappears. - Nu închide calculatorul pînă ce această fereastră nu dispare. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Semnaturi - Semnează/verifică un mesaj - - - &Sign Message - &Semnează mesaj - - - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Puteţi semna mesaje/contracte cu adresele dvs. pentru a demostra ca puteti primi bitcoini trimisi la ele. Aveţi grijă să nu semnaţi nimic vag sau aleator, deoarece atacurile de tip phishing vă pot păcăli să le transferaţi identitatea. Semnaţi numai declaraţiile detaliate cu care sînteti de acord. - - - The Bitcoin address to sign the message with - Adresa cu care semnaţi mesajul - - - Choose previously used address - Alegeţi adrese folosite anterior - - - Alt+A - Alt+A - - - Paste address from clipboard - Lipeşte adresa copiată din clipboard - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Introduceţi mesajul pe care vreţi să-l semnaţi, aici - - - Signature - Semnătură - - - Copy the current signature to the system clipboard - Copiază semnatura curentă în clipboard-ul sistemului - - - Sign the message to prove you own this Bitcoin address - Semnează mesajul pentru a dovedi ca deţineţi acestă adresă Bitcoin - - - Sign &Message - Semnează &mesaj - - - Reset all sign message fields - Resetează toate cîmpurile mesajelor semnate - - - Clear &All - Curăţă to&ate - - - &Verify Message - &Verifică mesaj - - - Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! - Introduceţi adresa de semnatură, mesajul (asiguraţi-vă că aţi copiat spaţiile, taburile etc. exact) şi semnatura dedesubt pentru a verifica mesajul. Aveţi grijă să nu citiţi mai mult în semnatură decît mesajul în sine, pentru a evita să fiţi păcăliţi de un atac de tip man-in-the-middle. De notat ca aceasta dovedeste doar ca semnatarul primeste odata cu adresa, nu dovedesta insa trimiterea vreunei tranzactii. - - - The Bitcoin address the message was signed with - Introduceţi o adresă Bitcoin - - - Verify the message to ensure it was signed with the specified Bitcoin address - Verificaţi mesajul pentru a vă asigura că a fost semnat cu adresa Bitcoin specificată - - - Verify &Message - Verifică &mesaj - - - Reset all verify message fields - Resetează toate cîmpurile mesajelor semnate - - - Click "Sign Message" to generate signature - Faceţi clic pe "Semneaza msaj" pentru a genera semnătura - - - The entered address is invalid. - Adresa introdusă este invalidă. - - - Please check the address and try again. - Vă rugăm verificaţi adresa şi încercaţi din nou. - - - The entered address does not refer to a key. - Adresa introdusă nu se referă la o cheie. - - - Wallet unlock was cancelled. - Deblocarea portofelului a fost anulata. - - - Private key for the entered address is not available. - Cheia privată pentru adresa introdusă nu este disponibila. - - - Message signing failed. - Semnarea mesajului nu a reuşit. - - - Message signed. - Mesaj semnat. - - - The signature could not be decoded. - Semnatura nu a putut fi decodată. - - - Please check the signature and try again. - Vă rugăm verificaţi semnătura şi încercaţi din nou. - - - The signature did not match the message digest. - Semnatura nu se potriveşte cu mesajul. - - - Message verification failed. - Verificarea mesajului nu a reuşit. - - - Message verified. - Mesaj verificat. - - - - SplashScreen - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - Deschis pentru inca un blocDeschis pentru inca %n blocuriDeschis pentru inca %n blocuri - - - Open until %1 - Deschis pînă la %1 - - - conflicted with a transaction with %1 confirmations - in conflict cu o tranzactie cu %1 confirmari - - - 0/unconfirmed, %1 - 0/neconfirmat, %1 - - - in memory pool - in memory pool - - - not in memory pool - nu e in memory pool - - - abandoned - abandonat - - - %1/unconfirmed - %1/neconfirmat - - - %1 confirmations - %1 confirmări - - - Status - Stare - - - Date - Data - - - Source - Sursa - - - Generated - Generat - - - From - De la - - - unknown - necunoscut - - - To - Către - - - own address - adresa proprie - - - watch-only - doar-supraveghere - - - label - etichetă - - - Credit - Credit - - - matures in %n more block(s) - se matureaza intr-un blocse matureaza in %n blocurise matureaza in %n blocuri - - - not accepted - neacceptat - - - Debit - Debit - - - Total debit - Total debit - - - Total credit - Total credit - - - Transaction fee - Taxă tranzacţie - - - Net amount - Suma netă - - - Message - Mesaj - - - Comment - Comentariu - - - Transaction ID - ID tranzacţie - - - Transaction total size - Dimensiune totala tranzacţie - - - Transaction virtual size - Dimensiune virtuala a tranzactiei - - - Output index - Index debit - - - Merchant - Comerciant - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Monedele generate se pot cheltui doar dupa inca %1 blocuri. După ce a fost generat, s-a propagat în reţea, urmând să fie adăugat in blockchain. Dacă nu poate fi inclus in lanţ, starea sa va deveni "neacceptat" si nu va putea fi folosit la tranzacţii. Acest fenomen se întâmplă atunci cand un alt nod a generat un bloc la o diferenţa de câteva secunde. - - - Debug information - Informaţii pentru depanare - - - Transaction - Tranzacţie - - - Inputs - Intrări - - - Amount - Cantitate - - - true - adevărat - - - false - fals - - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Acest panou arată o descriere detaliată a tranzacţiei - - - Details for %1 - Detalii pentru %1 - - - - TransactionTableModel - - Date - Data - - - Type - Tip - - - Label - Etichetă - - - Open until %1 - Deschis pînă la %1 - - - Unconfirmed - Neconfirmat - - - Abandoned - Abandonat - - - Confirming (%1 of %2 recommended confirmations) - Confirmare (%1 din %2 confirmari recomandate) - - - Confirmed (%1 confirmations) - Confirmat (%1 confirmari) - - - Conflicted - În conflict - - - Immature (%1 confirmations, will be available after %2) - Imatur (%1 confirmari, va fi disponibil după %2) - - - Generated but not accepted - Generat dar neacceptat - - - Received with - Recepţionat cu - - - Received from - Primit de la - - - Sent to - Trimis către - - - Payment to yourself - Plată către dvs. - - - Mined - Minat - - - watch-only - doar-supraveghere - - - (n/a) - (indisponibil) - - - (no label) - (fără etichetă) - - - Transaction status. Hover over this field to show number of confirmations. - Starea tranzacţiei. Treceţi cu mouse-ul peste acest cîmp pentru afişarea numărului de confirmari. - - - Date and time that the transaction was received. - Data şi ora la care a fost recepţionată tranzacţia. - - - Type of transaction. - Tipul tranzacţiei. - - - Whether or not a watch-only address is involved in this transaction. - Indiferent dacă sau nu o adresa doar-suăpraveghere este implicată în această tranzacţie. - - - User-defined intent/purpose of the transaction. - Intentie/scop al tranzactie definit de user. - - - Amount removed from or added to balance. - Suma extrasă sau adăugată la sold. - - - - TransactionView - - All - Toate - - - Today - Astăzi - - - This week - Saptamana aceasta - - - This month - Luna aceasta - - - Last month - Luna trecuta - - - This year - Anul acesta - - - Range... - Interval... - - - Received with - Recepţionat cu - - - Sent to - Trimis către - - - To yourself - Către dvs. - - - Mined - Minat - - - Other - Altele - - - Enter address, transaction id, or label to search - Introduceți adresa, ID-ul tranzacției, sau eticheta pentru a căuta - - - Min amount - Suma minimă - - - Abandon transaction - Abandoneaza tranzacţia - - - Increase transaction fee - Cresteti comisionul pentru tranzacţie - - - Copy address - Copiază adresa - - - Copy label - Copiază eticheta - - - Copy amount - Copiază suma - - - Copy transaction ID - Copiază ID tranzacţie - - - Copy raw transaction - Copiază tranzacţia bruta - - - Copy full transaction details - Copiaza toate detaliile tranzacţiei - - - Edit label - Editează eticheta - - - Show transaction details - Arată detaliile tranzacţiei - - - Export Transaction History - Export istoric tranzacţii - - - Comma separated file (*.csv) - Fisier .csv cu separator - virgula - - - Confirmed - Confirmat - - - Watch-only - Doar-supraveghere - - - Date - Data - - - Type - Tip - - - Label - Etichetă - - - Address - Adresă - - - ID - ID - - - Exporting Failed - Exportarea a eșuat - - - There was an error trying to save the transaction history to %1. - S-a produs o eroare la salvarea istoricului tranzacţiilor la %1. - - - Exporting Successful - Export reuşit - - - The transaction history was successfully saved to %1. - Istoricul tranzacţiilor a fost salvat cu succes la %1. - - - Range: - Interval: - - - to - către - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Unitatea în care sînt arătate sumele. Faceţi clic pentru a selecta o altă unitate. - - - - WalletFrame - - No wallet has been loaded. - Nu a fost încărcat nici un portofel. - - - - WalletModel - - Send Coins - Trimite monede - - - Fee bump error - Eroare in cresterea taxei - - - Increasing transaction fee failed - Cresterea comisionului pentru tranzactie a esuat. - - - Do you want to increase the fee? - Doriti sa cresteti taxa de tranzactie? - - - Current fee: - Comision curent: - - - Increase: - Crestere: - - - New fee: - Noul comision: - - - Confirm fee bump - Confirma cresterea comisionului - - - Can't sign transaction. - Nu s-a reuşit semnarea tranzacţiei - - - Could not commit transaction - Tranzactia nu a putut fi consemnata. - - - - WalletView - - &Export - &Export - - - Export the data in the current tab to a file - Exportă datele din tab-ul curent într-un fişier - - - Backup Wallet - Backup portofelul electronic - - - Wallet Data (*.dat) - Date portofel (*.dat) - - - Backup Failed - Backup esuat - - - There was an error trying to save the wallet data to %1. - S-a produs o eroare la salvarea datelor portofelului la %1. - - - Backup Successful - Backup efectuat cu succes - - - The wallet data was successfully saved to %1. - Datele portofelului s-au salvat cu succes la %1. - - - Cancel - Anulare - - - - bitcoin-core - - Distributed under the MIT software license, see the accompanying file %s or %s - Distribuit sub licenţa de programe MIT, vezi fişierul însoţitor %s sau %s - - - Prune configured below the minimum of %d MiB. Please use a higher number. - Reductia e configurata sub minimul de %d MiB. Rugam folositi un numar mai mare. - - - Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) - Reductie: ultima sincronizare merge dincolo de datele reductiei. Trebuie sa faceti -reindex (sa descarcati din nou intregul blockchain in cazul unui nod redus) - - - Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. - Rescanarile nu sunt posibile in modul redus. Va trebui sa folositi -reindex, ceea ce va descarca din nou intregul blockchain. - - - Error: A fatal internal error occurred, see debug.log for details - Eroare: S-a produs o eroare interna fatala, vedeti debug.log pentru detalii - - - Pruning blockstore... - Reductie blockstore... - - - Unable to start HTTP server. See debug log for details. - Imposibil de pornit serverul HTTP. Pentru detalii vezi logul de depanare. - - - Bitcoin Core - Nucleul Bitcoin - - - The %s developers - Dezvoltatorii %s - - - Cannot obtain a lock on data directory %s. %s is probably already running. - Nu se poate obține o blocare a directorului de date %s. %s probabil rulează deja. - - - Cannot provide specific connections and have addrman find outgoing connections at the same. - Nu se pot furniza conexiuni specifice in acelasi timp in care addrman este folosit pentru a gasi conexiuni de iesire. - - - Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Eroare la citirea %s! Toate cheile sînt citite corect, dar datele tranzactiei sau anumite intrări din agenda sînt incorecte sau lipsesc. - - - Group outputs by address, selecting all or none, instead of selecting on a per-output basis. Privacy is improved as an address is only used once (unless someone sends to it after spending from it), but may result in slightly higher fees as suboptimal coin selection may result due to the added limitation (default: %u) - Gruparea a iesirilor pe adrese, selectand totul sau nimic, in loc de selectarea bazata per-iesire. Intimitatea este imbunatatita deoarece o adresa este folosita doar o singura data (cu exceptia cuiva care trimite catre aceiasi adresa dup ce cheltuie din ea), dar se pot genera taxe mai mari deoarece poate rezulta o selectare suboptimala a monedelor datorata limitarii impuse (implicit: %u) - - - Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. - Vă rugăm verificaţi dacă data/timpul calculatorului dvs. sînt corecte! Dacă ceasul calcultorului este gresit, %s nu va funcţiona corect. - - - Please contribute if you find %s useful. Visit %s for further information about the software. - Va rugam sa contribuiti daca apreciati ca %s va este util. Vizitati %s pentru mai multe informatii despre software. - - - The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct - Baza de date a blocurilor contine un bloc ce pare a fi din viitor. Acest lucru poate fi cauzat de setarea incorecta a datei si orei in computerul dvs. Reconstruiti baza de date a blocurilor doar daca sunteti sigur ca data si ora calculatorului dvs sunt corecte. - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Aceasta este o versiune de test preliminară - vă asumaţi riscul folosind-o - nu folosiţi pentru minerit sau aplicaţiile comercianţilor - - - This is the transaction fee you may discard if change is smaller than dust at this level - Aceasta este taxa de tranzactie la care puteti renunta daca restul este mai mic decat praful la acest nivel. - - - Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate. - Imposibil de refacut blocurile. Va trebui sa reconstruiti baza de date folosind -reindex-chainstate. - - - Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain - Imposibil de a readuce baza de date la statusul pre-fork. Va trebui redescarcat blockchainul. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Atenţie: Reţeaua nu pare să fie de acord în totalitate! Aparent nişte mineri au probleme. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Atenţie: Aparent, nu sîntem de acord cu toţi partenerii noştri! Va trebui să faceţi o actualizare, sau alte noduri necesită actualizare. - - - %d of last 100 blocks have unexpected version - %d din ultimele 100 blocuri a o versiune neasteptata - - - %s corrupt, salvage failed - %s corupt, salvare nereuşită - - - -maxmempool must be at least %d MB - -maxmempool trebuie sa fie macar %d MB - - - Cannot resolve -%s address: '%s' - Nu se poate rezolva adresa -%s: '%s' - - - Change index out of range - Indexul de schimbare este iesit din parametrii - - - Copyright (C) %i-%i - Copyright (C) %i-%i - - - Corrupted block database detected - Bloc defect din baza de date detectat - - - Do you want to rebuild the block database now? - Doriţi să reconstruiţi baza de date blocuri acum? - - - Error creating %s: You can't create non-HD wallets with this version. - Eroare la crearea %s: Nu se pot crea portofele non-HD cu aceasta versiune. - - - Error initializing block database - Eroare la iniţializarea bazei de date de blocuri - - - Error initializing wallet database environment %s! - Eroare la iniţializarea mediului de bază de date a portofelului %s! - - - Error loading %s - Eroare la încărcarea %s - - - Error loading %s: Private keys can only be disabled during creation - Eroare la incarcarea %s: Cheile private pot fi dezactivate doar in momentul crearii - - - Error loading %s: Wallet corrupted - Eroare la încărcarea %s: Portofel corupt - - - Error loading %s: Wallet requires newer version of %s - Eroare la încărcarea %s: Portofelul are nevoie de o versiune %s mai nouă - - - Error loading block database - Eroare la încărcarea bazei de date de blocuri - - - Error opening block database - Eroare la deschiderea bazei de date de blocuri - - - Error: Disk space is low! - Eroare: Spaţiu pe disc redus! - - - Failed to listen on any port. Use -listen=0 if you want this. - Nu s-a reuşit ascultarea pe orice port. Folosiţi -listen=0 dacă vreţi asta. - - - Failed to rescan the wallet during initialization - Rescanarea portofelului in timpul initializarii a esuat. - - - Importing... - Import... - - - Incorrect or no genesis block found. Wrong datadir for network? - Incorect sau nici un bloc de geneza găsit. Directorul de retea greşit? - - - Initialization sanity check failed. %s is shutting down. - Nu s-a reuşit iniţierea verificării sănătăţii. %s se inchide. - - - Invalid amount for -%s=<amount>: '%s' - Sumă nevalidă pentru -%s=<amount>: '%s' - - - Invalid amount for -discardfee=<amount>: '%s' - Sumă nevalidă pentru -discardfee=<amount>: '%s' - - - Invalid amount for -fallbackfee=<amount>: '%s' - Suma nevalidă pentru -fallbackfee=<amount>: '%s' - - - Specified blocks directory "%s" does not exist. - Directorul de blocuri "%s" specificat nu exista. - - - Upgrading txindex database - Actualizarea bazei de date txindex - - - Loading P2P addresses... - Încărcare adrese P2P... - - - Loading banlist... - Încărcare banlist... - - - Not enough file descriptors available. - Nu sînt destule descriptoare disponibile. - - - Prune cannot be configured with a negative value. - Reductia nu poate fi configurata cu o valoare negativa. - - - Prune mode is incompatible with -txindex. - Modul redus este incompatibil cu -txindex. - - - Replaying blocks... - Se reiau blocurile... - - - Rewinding blocks... - Se deruleaza blocurile... - - - The source code is available from %s. - Codul sursa este disponibil la %s. - - - Transaction fee and change calculation failed - Calcului taxei de tranzactie si a restului a esuat. - - - Unable to bind to %s on this computer. %s is probably already running. - Nu se poate efectua legatura la %s pe acest computer. %s probabil ruleaza deja. - - - Unable to generate keys - Nu s-au putut genera cheile - - - Unsupported argument -benchmark ignored, use -debug=bench. - Argumentul nesuportat -benchmark este ignorat, folositi debug=bench. - - - Unsupported argument -debugnet ignored, use -debug=net. - Argument nesuportat -debugnet ignorat, folosiţi -debug=net. - - - Unsupported argument -tor found, use -onion. - Argument nesuportat -tor găsit, folosiţi -onion. - - - Unsupported logging category %s=%s. - Categoria de logging %s=%s nu este suportata. - - - Upgrading UTXO database - Actualizarea bazei de date UTXO - - - User Agent comment (%s) contains unsafe characters. - Comentariul (%s) al Agentului Utilizator contine caractere nesigure. - - - Verifying blocks... - Se verifică blocurile... - - - Error: Listening for incoming connections failed (listen returned error %s) - Eroare: Ascultarea conexiunilor de intrare nu a reuşit (ascultarea a reurnat eroarea %s) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Sumă nevalidă pentru -maxtxfee=<amount>: '%s' (trebuie să fie cel puţin taxa minrelay de %s pentru a preveni blocarea tranzactiilor) - - - The transaction amount is too small to send after the fee has been deducted - Suma tranzactiei este prea mica pentru a fi trimisa dupa ce se scade taxa. - - - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain - Trebuie reconstruita intreaga baza de date folosind -reindex pentru a va intoarce la modul non-redus. Aceasta va determina descarcarea din nou a intregului blockchain - - - Error loading %s: You can't disable HD on an already existing HD wallet - Eroare la incarcarea %s: Nu se poate dezactiva HD la un portofel care este deja HD. - - - Error reading from database, shutting down. - Eroare la citirea bazei de date. Oprire. - - - Error upgrading chainstate database - Eroare la actualizarea bazei de date chainstate - - - Information - Informaţie - - - Invalid -onion address or hostname: '%s' - Adresa sau hostname -onion invalide: '%s' - - - Invalid -proxy address or hostname: '%s' - Adresa sau hostname -proxy invalide: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Sumă nevalidă pentru -paytxfee=<suma>: '%s' (trebuie să fie cel puţin %s) - - - Invalid netmask specified in -whitelist: '%s' - Mască reţea nevalidă specificată în -whitelist: '%s' - - - Need to specify a port with -whitebind: '%s' - Trebuie să specificaţi un port cu -whitebind: '%s' - - - Reducing -maxconnections from %d to %d, because of system limitations. - Se micsoreaza -maxconnections de la %d la %d, datorita limitarilor de sistem. - - - Signing transaction failed - Nu s-a reuşit semnarea tranzacţiei - - - Specified -walletdir "%s" does not exist - Nu exista -walletdir "%s" specificat - - - Specified -walletdir "%s" is a relative path - -walletdir "%s" specificat este o cale relativa - - - The transaction amount is too small to pay the fee - Suma tranzactiei este prea mica pentru plata taxei - - - This is experimental software. - Acesta este un program experimental. - - - Transaction amount too small - Suma tranzacţionată este prea mică - - - Transaction too large for fee policy - Tranzacţia are suma prea mare pentru a beneficia de gratuitate - - - Transaction too large - Tranzacţie prea mare - - - Unable to bind to %s on this computer (bind returned error %s) - Nu se poate lega la %s pe acest calculator. (Legarea a întors eroarea %s) - - - Unable to generate initial keys - Nu s-au putut genera cheile initiale - - - Verifying wallet(s)... - Se verifică portofelul(ele)... - - - Wallet %s resides outside wallet directory %s - Portofelul %s se află în afara directorului portofelului %s - - - Warning - Avertisment - - - Warning: unknown new rules activated (versionbit %i) - Atentie: se activeaza reguli noi necunoscute (versionbit %i) - - - Zapping all transactions from wallet... - Şterge toate tranzacţiile din portofel... - - - -maxtxfee is set very high! Fees this large could be paid on a single transaction. - -maxtxfee este setata foarte sus! Se pot plati taxe de aceasta marime pe o singura tranzactie. - - - Error loading %s: You can't enable HD on an already existing non-HD wallet - Eroare la incarcarea %s: Nu se poate activa HD la un portofel care este deja non-HD. - - - This is the transaction fee you may pay when fee estimates are not available. - Aceasta este taxa de tranzactie pe care este posibil sa o platiti daca estimarile de taxe nu sunt disponibile. - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Acest produs include software dezvoltat de OpenSSL Project pentru a fi folosit in Toolkitul OpenSSL %s, software criptografic scris de Eric Young si software UPnP scris de Thomas Bernard. - - - Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. - Lungimea totala a sirului versiunii retelei (%i) depaseste lungimea maxima (%i). Reduceti numarul sa dimensiunea uacomments. - - - Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - S-a gasit un argument -socks nesuportat. Setarea versiunii SOCKS nu mai este posibila, sunt suportate doar proxiurile SOCKS5. - - - Unsupported argument -whitelistalwaysrelay ignored, use -whitelistrelay and/or -whitelistforcerelay. - Se ignora argumentul nesuportat -whitelistalwaysrelay, folositi -whitelistrelay si/sau -whitelistforcerelay. - - - Warning: Unknown block versions being mined! It's possible unknown rules are in effect - Atentie: se mineaza blocuri cu versiune necunoscuta! Este posibil sa fie in vigoare reguli necunoscute. - - - Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. - Atenţie: fişierul portofelului este corupt, date salvate! Fişierul %s a fost salvat ca %s in %s; dacă balanta sau tranzactiile sunt incorecte ar trebui să restauraţi dintr-o copie de siguranţă. - - - %s is set very high! - %s este setata foarte sus! - - - Error loading wallet %s. Duplicate -wallet filename specified. - Eroare la incarcarea portofelului %s. Este specificat un fisier -wallet duplicat. - - - Keypool ran out, please call keypoolrefill first - Keypool epuizat, folositi intai functia keypoolrefill - - - Starting network threads... - Se pornesc threadurile retelei... - - - The wallet will avoid paying less than the minimum relay fee. - Portofelul va evita sa plateasca mai putin decat minimul taxei de retransmisie. - - - This is the minimum transaction fee you pay on every transaction. - Acesta este minimum de taxa de tranzactie care va fi platit la fiecare tranzactie. - - - This is the transaction fee you will pay if you send a transaction. - Aceasta este taxa de tranzactie pe care o platiti cand trimiteti o tranzactie. - - - Transaction amounts must not be negative - Sumele tranzactionate nu pot fi negative - - - Transaction has too long of a mempool chain - Tranzacţia are o lungime prea mare in lantul mempool - - - Transaction must have at least one recipient - Tranzactia trebuie sa aiba cel putin un destinatar - - - Unknown network specified in -onlynet: '%s' - Reţeaua specificată în -onlynet este necunoscută: '%s' - - - Insufficient funds - Fonduri insuficiente - - - Can't generate a change-address key. Private keys are disabled for this wallet. - Nu se poate genera o adresa pentru rest. Cheile private sunt dezactivate pentru acest portofel. - - - Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee. - Estimarea taxei a esuat. Taxa implicita este dezactivata. Asteptati cateva blocuri, sau activati -fallbackfee. - - - Warning: Private keys detected in wallet {%s} with disabled private keys - Atentie: S-au detectat chei private in portofelul {%s} cu cheile private dezactivate - - - Cannot write to data directory '%s'; check permissions. - Nu se poate scrie in directorul de date '%s"; verificati permisiunile. - - - Loading block index... - Încărcare index bloc... - - - Loading wallet... - Încărcare portofel... - - - Cannot downgrade wallet - Nu se poate retrograda portofelul - - - Rescanning... - Rescanare... - - - Done loading - Încărcare terminată - - - Error - Eroare - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_ru_RU.ts b/src/qt/locale/bitcoin_ru_RU.ts deleted file mode 100644 index 430f2e4191..0000000000 --- a/src/qt/locale/bitcoin_ru_RU.ts +++ /dev/null @@ -1,2407 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Кликните правой кнопкой мыши для редактирования адреса или метки - - - Create a new address - Создать новый адрес - - - &New - Новый - - - Copy the currently selected address to the system clipboard - Скопировать выбранный адрес в буфер обмена - - - &Copy - Копировать - - - C&lose - &Закрыть - - - Delete the currently selected address from the list - Удалить выбранный адрес из списка - - - Enter address or label to search - Введите адрес или метку для поиска - - - Export the data in the current tab to a file - Экспортировать данные текущей вкладки в файл - - - &Export - Экспортировать - - - &Delete - Удалить - - - Choose the address to send coins to - Выбрать адрес для отправки монет - - - Choose the address to receive coins with - Выбрать адрес для получения монет - - - C&hoose - Выбрать - - - Sending addresses - Адреса отправки - - - Receiving addresses - Адреса получения - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Это ваши Bitcoin адреса для отправки платежа. Всегда проверяйте сумму и адрес получателя перед отправкой платежа. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Это ваши Bitcoin адреса для получения платежей. Настоятельно рекомендуем использовать новые адреса для получения каждой транзакции. - - - &Copy Address - &Копировать адрес - - - Copy &Label - Копировать &метку - - - &Edit - &Редактировать - - - Export Address List - Экспортировать список адресов - - - Exporting Failed - Экспорт не удался - - - There was an error trying to save the address list to %1. Please try again. - Произошла ошибка при попытке сохранения списка адресов в %1. Пожалуйста попробуйте позже. - - - - AddressTableModel - - Label - Метка - - - Address - Адрес - - - (no label) - (нет метки) - - - - AskPassphraseDialog - - Passphrase Dialog - Ввод пароля - - - Enter passphrase - Введите пароль - - - New passphrase - Новый пароль - - - Repeat new passphrase - Повторите новый пароль - - - Show password - Отобразить пароль - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Введите новый пароль для кошелька.<br/> Пожалуйста используйте пароль из <b> десяти или более произвольных символов</b>, или <b>восемь или более слов</b> - - - Encrypt wallet - Зашифровать кошелек - - - This operation needs your wallet passphrase to unlock the wallet. - Эта операция требует вашего пароля для разблокировки кошелька - - - Unlock wallet - Разблокировать кошелек - - - This operation needs your wallet passphrase to decrypt the wallet. - Эта операция требует пароль от вашего кошелька для его расшифровки. - - - Decrypt wallet - Расшифровать кошелек - - - Change passphrase - Изменить пароль - - - Enter the old passphrase and new passphrase to the wallet. - Введите старый и новый пароль к кошельку. - - - Confirm wallet encryption - Подтвердите шифрование кошелька - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Внимание: если вы зашифруете ваш кошелек и потеряете ваш пароль, то вы <b>ПОТЕРЯЕТЕ ВСЕ ВАШИ БИТКОЙНЫ</b>! - - - Are you sure you wish to encrypt your wallet? - Вы уверены, что вы хотите зашифровать ваш кошелек? - - - Wallet encrypted - Кошелек зашифрован - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 закроется сейчас для завершения процесса шифрования. Запомните что шифрование вашего кошелька не сможет полностью защитить ваши биткойны от кражи при помощи вредоносного ПО, заразившего ваш компьютер. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - ВАЖНО: любые предыдущие резервные копия вашего кошелька, выполненные вами, необходимо заменить новым сгенерированным, зашифрованным файлом кошелька. В целях безопасности, предыдущие резервные копии незашифрованного файла кошелька утратят пригодность после начала использования нового зашифрованного кошелька. - - - Wallet encryption failed - Шифрование кошелька завершилось неудачно. - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Шифрование кошелька завершилось неудачно из-за внутренней ошибки. Ваш кошелек не был зашифрован. - - - The supplied passphrases do not match. - Пароли не совпадают. - - - Wallet unlock failed - Ошибка разблокировки кошелька - - - The passphrase entered for the wallet decryption was incorrect. - Пароль, введенный при шифровании кошелька, некорректен. - - - Wallet decryption failed - Расшифровка кошелька завершилась неудачно. - - - Wallet passphrase was successfully changed. - Пароль для кошелька был успешно изменен. - - - Warning: The Caps Lock key is on! - Внимание: клавиша CapsLock включена! - - - - BanTableModel - - IP/Netmask - IP / маска подсети - - - Banned Until - Заблокировано до - - - - BitcoinGUI - - Sign &message... - Подписать &сообщение... - - - Synchronizing with network... - Синхронизация с сетью... - - - &Overview - &Обзор - - - Node - Узел - - - Show general overview of wallet - Отобразить главное окно кошелька - - - &Transactions - &Транзакции - - - Browse transaction history - Просмотр истории транзакций - - - E&xit - В&ыход - - - Quit application - Выйти - - - &About %1 - &О программе %1 - - - Show information about %1 - Показать информацию о %1 - - - About &Qt - О библиотеке &Qt - - - Show information about Qt - Показать информацию о библиотеке Qt - - - &Options... - &Опции... - - - Modify configuration options for %1 - Изменить опции конфигурации для %1 - - - &Encrypt Wallet... - &Зашифровать кошелёк - - - &Backup Wallet... - &Создать резервную копию кошелька - - - &Change Passphrase... - &Изменить пароль... - - - &Sending addresses... - &Адреса для отправки... - - - &Receiving addresses... - &Адреса для получения... - - - Open &URI... - Открыть &URI... - - - Wallet: - Кошелек: - - - default wallet - Кошелек по умолчанию - - - Click to disable network activity. - Нажмите для отключения взаимодействия с сетью. - - - Network activity disabled. - Взаимодействие с сетью отключено. - - - Click to enable network activity again. - Нажмите для включения взаимодействия с сетью. - - - Syncing Headers (%1%)... - Синхронизация заголовков (%1%)... - - - Reindexing blocks on disk... - Реиндексация блоков на диске... - - - Proxy is <b>enabled</b>: %1 - Прокси <b>включен</b>: %1 - - - Send coins to a Bitcoin address - Послать средства на биткойн адрес - - - Backup wallet to another location - Выполнить резервное копирование кошелька в другом месте расположения - - - Change the passphrase used for wallet encryption - Изменить пароль, используемый для шифрования кошелька - - - &Debug window - &Окно отладки - - - Open debugging and diagnostic console - Открыть консоль отладки и диагностики - - - &Verify message... - &Проверить сообщение... - - - Bitcoin - Bitcoin Core - - - Wallet - Кошелек - - - &Send - &Отправить - - - &Receive - &Получить - - - &Show / Hide - &Показать / Спрятать - - - Show or hide the main Window - Показать или скрыть главное окно - - - Encrypt the private keys that belong to your wallet - Зашифровать приватные ключи, принадлежащие вашему кошельку - - - Sign messages with your Bitcoin addresses to prove you own them - Подписывайте сообщения Bitcoin адресами чтобы подтвердить что это написали именно Вы - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Проверяйте сообщения чтобы убедиться что они подписаны конкретными Bitcoin адресами - - - &File - &Файл - - - &Settings - &Настройки - - - &Help - &Помощь - - - Tabs toolbar - Панель вкладок - - - Request payments (generates QR codes and bitcoin: URIs) - Запросить платеж - - - Show the list of used sending addresses and labels - Показать список использованных адресов и меток получателей - - - Show the list of used receiving addresses and labels - Показать список использованных адресов и меток получателей - - - Open a bitcoin: URI or payment request - Открыть биткойн: URI или запрос платежа - - - &Command-line options - Опции командной строки - - - %n active connection(s) to Bitcoin network - %n активное подключение к сети Bitcoin%n активных подключения к сети Bitcoin%n активных подключений к сети Bitcoin%n активных подключений к сети Bitcoin - - - Indexing blocks on disk... - Выполняется индексирование блоков на диске... - - - Processing blocks on disk... - Выполняется обработка блоков на диске... - - - Processed %n block(s) of transaction history. - Обработан %n блок истории транзакций.Обработано %n блока истории транзакций.Обработано %n блоков истории транзакций.Обработано %n блоков истории транзакций. - - - %1 behind - Выполнено %1 - - - Last received block was generated %1 ago. - Последний полученный блок был сгенерирован %1 назад. - - - Transactions after this will not yet be visible. - После этого транзакции больше не будут видны. - - - Error - Ошибка - - - Warning - Предупреждение - - - Information - Информация - - - Up to date - Готов - - - Connecting to peers... - Подключение к пирам... - - - Catching up... - Синхронизация... - - - Date: %1 - - Дата: %1 - - - - Amount: %1 - - Объем: %1 - - - - Wallet: %1 - - Кошелек: %1 - - - - Type: %1 - - Тип: %1 - - - - Label: %1 - - Ярлык: %1 - - - - Address: %1 - - Адрес: %1 - - - - Sent transaction - Отправленная транзакция - - - Incoming transaction - Входящая транзакция - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Кошелек <b>зашифрован</b> и сейчас <b>разблокирован</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Кошелек <b>зашифрован</b> и сейчас <b>заблокирован</b> - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Произошла критическая ошибка. Bitcoin больше не может продолжать безопасную работу и будет закрыт. - - - - CoinControlDialog - - Coin Selection - Выбор коинов - - - Quantity: - Количество: - - - Bytes: - Байтов: - - - Amount: - Количество: - - - Fee: - Комиссия: - - - Dust: - Пыль: - - - After Fee: - После комиссии: - - - Change: - Сдача: - - - (un)select all - Выбрать все - - - Tree mode - Режим дерева - - - List mode - Режим списка - - - Amount - Количество - - - Received with label - Получено с меткой - - - Received with address - Получено с адресом - - - Date - Дата - - - Confirmations - Подтверждения - - - Confirmed - Подтвержденные - - - Copy address - Копировать адрес - - - Copy label - Копировать метку - - - Copy amount - Копировать сумму - - - Copy transaction ID - Копировать ID транзакции - - - Lock unspent - Заблокировать непотраченное - - - Unlock unspent - Разблокировать непотраченное - - - Copy quantity - Копировать количество - - - Copy fee - Скопировать комиссию - - - Copy after fee - Скопировать после комиссии - - - Copy bytes - Скопировать байты - - - Copy dust - Скопировать пыль - - - Copy change - Скопировать сдачу - - - yes - да - - - no - нет - - - (no label) - (нет метки) - - - (change) - (сдача) - - - - EditAddressDialog - - Edit Address - Изменить адрес - - - &Label - &Метка - - - &Address - &Адрес - - - New sending address - Новый адрес отправки - - - Edit receiving address - Изменить адрес получения - - - Edit sending address - Изменить адрес отправки - - - The entered address "%1" is already in the address book with label "%2". - Введённый адрес "%1" уже существует в адресной книге с меткой "%2". - - - Could not unlock wallet. - Невозможно разблокировать кошелек. - - - New key generation failed. - Произошла ошибка при генерации нового ключа. - - - - FreespaceChecker - - A new data directory will be created. - Будет создана новая директория данных. - - - name - имя - - - Directory already exists. Add %1 if you intend to create a new directory here. - Каталог уже существует. Добавьте %1, если хотите создать новую директорию здесь. - - - Path already exists, and is not a directory. - Данный путь уже существует и это не каталог. - - - Cannot create data directory here. - Невозможно создать директорию данных здесь. - - - - HelpMessageDialog - - version - версия - - - About %1 - Около %1 - - - Command-line options - Опции командной строки - - - - Intro - - Welcome - Добро пожаловать - - - Welcome to %1. - Добро пожаловать в %1. - - - As this is the first time the program is launched, you can choose where %1 will store its data. - Поскольку программа запущена впервые, вы должны указать где %1 будет хранить данные. - - - If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. - Если вы указали сокращать объём хранимого блокчейна (pruning), все исторические данные все равно должны быть скачаны и обработаны, но впоследствии они будут удалены для экономии места на диске. - - - Use the default data directory - Использовать стандартную директорию данных - - - Use a custom data directory: - Использовать пользовательскую директорию данных - - - Bitcoin - Bitcoin Core - - - At least %1 GB of data will be stored in this directory, and it will grow over time. - Как минимум %1 ГБ данных будет сохранен в эту директорию. Со временем размер будет увеличиваться. - - - Approximately %1 GB of data will be stored in this directory. - Приблизительно %1 ГБ данных будет сохранено в эту директорию. - - - The wallet will also be stored in this directory. - Кошелек также будет сохранен в эту директорию. - - - Error: Specified data directory "%1" cannot be created. - Ошибка: невозможно создать указанную директорию данных "%1". - - - Error - Ошибка - - - - ModalOverlay - - Form - Форма - - - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Последние транзакции пока могут быть не видны, поэтому вы можете видеть некорректный баланс ваших кошельков. Отображаемая информация будет верна после завершения синхронизации. Прогресс синхронизации вы можете видеть ниже. - - - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Попытка потратить средства, использованные в транзакциях, которые ещё не синхронизированы, будет отклонена сетью. - - - Number of blocks left - Количество оставшихся блоков - - - Unknown... - Неизвестно... - - - Last block time - Время последнего блока - - - Progress - Прогресс - - - Progress increase per hour - Прогресс за час - - - calculating... - выполняется вычисление... - - - Estimated time left until synced - Расчетное время, оставшееся до синхронизации - - - Hide - Спрятать - - - Unknown. Syncing Headers (%1)... - Не известно. Синхронизация заголовков (%1)... - - - - OpenURIDialog - - Open URI - Открыть URI - - - URI: - URI: - - - Select payment request file - Выберите файл запроса платежа - - - Select payment request file to open - Выберите файл запроса платежа для открытия - - - - OptionsDialog - - Options - Опции - - - Automatically start %1 after logging in to the system. - Автоматически запускать %1 после входа в систему. - - - Size of &database cache - Размер кеша &базы данных - - - MB - МБ - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - IP-адрес прокси-сервера (к примеру, IPv4: 127.0.0.1 / IPv6: ::1) - - - Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - Использовать отдельные SOCKS&5 прокси для подключения к пирам через Tor hidden services: - - - Hide the icon from the system tray. - Убрать значок с области уведомлений. - - - &Hide tray icon - &Спрятать иконку в трее - - - Open Configuration File - Открыть файл конфигурации - - - Reset all client options to default. - Сбросить все опции клиента к значениям по умолчанию. - - - &Reset Options - &Сбросить опции - - - &Network - &Сеть - - - Prune &block storage to - Сокращать объём хранимого блокчейна до - - - GB - ГБ - - - Reverting this setting requires re-downloading the entire blockchain. - Отмена этой настройки требует повторного скачивания всего блокчейна. - - - W&allet - К&ошелёк - - - Expert - Эксперт - - - Enable coin &control features - Включить возможность &управления монетами - - - &Spend unconfirmed change - &Тратить неподтвержденную сдачу - - - Map port using &UPnP - Пробросить порт через &UPnP - - - Accept connections from outside. - Принимать внешние подключения - - - Allow incomin&g connections - Разрешить входящие соединения - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Подключится к сети Bitcoin через SOCKS5 прокси. - - - &Connect through SOCKS5 proxy (default proxy): - &Выполнить подключение через прокси-сервер SOCKS5 (прокси-сервер по умолчанию): - - - Proxy &IP: - IP прокси: - - - &Port: - &Порт: - - - Port of the proxy (e.g. 9050) - Порт прокси: (напр. 9050) - - - Used for reaching peers via: - Используется для подключения к пирам по: - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Соединяться к Биткоин-сети через отдельные SOCKS5 прокси через Tor hidden services: - - - &Window - &Окно - - - Show only a tray icon after minimizing the window. - Отобразить только значок в области уведомлений после сворачивания окна. - - - M&inimize on close - З&акрыть при сворачивании - - - User Interface &language: - Язык пользовательского интерфейса: - - - The user interface language can be set here. This setting will take effect after restarting %1. - Здесь можно выбрать язык пользовательского интерфейса. Параметры будут применены после перезапуска %1 - - - Whether to show coin control features or not. - Показывать ли опцию управления монетами. - - - &OK - &ОК - - - &Cancel - &Отмена - - - default - по умолчанию - - - Confirm options reset - Подтвердить сброс опций - - - Client restart required to activate changes. - Для активации изменений необходим перезапуск клиента. - - - Client will be shut down. Do you want to proceed? - Клиент будет закрыт. Продолжить далее? - - - Configuration options - Опции конфигурации - - - Error - Ошибка - - - The configuration file could not be opened. - Невозможно открыть файл конфигурации. - - - This change would require a client restart. - Это изменение потребует перезапуск клиента. - - - The supplied proxy address is invalid. - Введенный адрес прокси-сервера недействителен. - - - - OverviewPage - - Form - Форма - - - Watch-only: - Только просмотр: - - - Available: - Доступно: - - - Your current spendable balance - Ваш доступный баланс - - - Pending: - В ожидании: - - - Immature: - Незрелые: - - - Balances - Балансы - - - Total: - Всего: - - - Your current total balance - Ваш текущий баланс: - - - Your current balance in watch-only addresses - Ваш текущий баланс (только чтение): - - - Spendable: - Доступно: - - - Recent transactions - Последние транзакции - - - - PaymentServer - - Payment request error - Ошибка запроса платежа - - - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' не верный URI. Используйте 'bitcoin:' вместо этого. - - - Invalid payment address %1 - Неверный адрес %1 - - - Payment request rejected - Запрос платежа отклонен - - - Payment request expired. - Истекло время ожидания запроса платежа - - - Payment request is not initialized. - Запрос платежа не инициализирован - - - Invalid payment request. - Неверный запрос платежа. - - - Error communicating with %1: %2 - Ошибка связи с %1: %2 - - - Bad response from server %1 - Неправильный ответ от сервера %1 - - - Payment acknowledged - Оплата подтверждена - - - - PeerTableModel - - User Agent - Пользовательский агент - - - Node/Service - Узел/служба - - - NodeId - Идентификатор узла - - - Sent - Отправлено - - - Received - Получено - - - - QObject - - Amount - Количество - - - Enter a Bitcoin address (e.g. %1) - Введите биткоин-адрес (напр. %1) - - - %1 d - %1 д - - - %1 h - %1 ч - - - %1 m - %1 м - - - %1 s - %1 с - - - N/A - Н/Д - - - %1 and %2 - %1 и %2 - - - %1 B - %1 Б - - - %1 KB - %1 КБ - - - %1 MB - %1 МБ - - - %1 GB - %1 ГБ - - - unknown - неизвестно - - - - QObject::QObject - - Error: Specified data directory "%1" does not exist. - Ошибка: указанная директория данных "%1" не существует. - - - Error: %1 - Ошибка: %1 - - - - QRImageWidget - - &Save Image... - &Сохранить изображение... - - - &Copy Image - &Копировать изображение - - - Save QR Code - Сохранить QR-код - - - PNG Image (*.png) - PNG Картинка (*.png) - - - - RPCConsole - - N/A - Н/Д - - - Client version - Версия клиента - - - &Information - Информация - - - Debug window - Окно отладки - - - Network - Сеть - - - Name - Название - - - Number of connections - Количество соединений - - - Block chain - Блокчейн - - - Current number of blocks - Текущее количество блоков - - - Memory Pool - Пул памяти - - - Current number of transactions - Текущее количество транзакций - - - Memory usage - Использование памяти - - - Wallet: - Кошелек: - - - &Reset - &Сбросить - - - Received - Получено - - - Sent - Отправлено - - - &Peers - &Пиры - - - Banned peers - Заблокированные пиры - - - Select a peer to view detailed information. - Выберите пира для просмотра детальной информации. - - - Version - Версия - - - Synced Headers - Синхронизировано заголовков - - - Synced Blocks - Синхронизировано блоков - - - User Agent - Пользовательский агент - - - Decrease font size - Уменьшить размер шрифта - - - Increase font size - Увеличить размер шрифта - - - Services - Сервисы - - - Connection Time - Время соединения - - - Last Send - Последние отправленные - - - Last Receive - Последние полученные - - - Ping Time - Время отклика Ping - - - Min Ping - Минимальное время отклика Ping - - - Last block time - Время последнего блока - - - &Open - &Открыть - - - &Console - &Консоль - - - &Network Traffic - &Сетевой трафик - - - In: - Вход: - - - Out: - Выход: - - - 1 &hour - 1 &час - - - 1 &day - 1 &день - - - 1 &week - 1 &неделя - - - 1 &year - 1 &год - - - default wallet - Кошелек по умолчанию - - - Type %1 for an overview of available commands. - Ввести %1 для обзора доступных команд. - - - never - никогда - - - Yes - Да - - - No - Нет - - - Unknown - Неизвестно - - - - ReceiveCoinsDialog - - &Label: - &Метка: - - - &Message: - &Сообщение: - - - Clear all fields of the form. - Очистить все поля формы. - - - Clear - Отчистить - - - Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. - "Родные" segwit адреса (Bech32 или BIP-173) в дальнейшем уменьшат комиссии ваших транзакций и предоставят улучшенную защиту от опечаток, однако старые кошельки не поддерживают эти адреса. Если не выбрано, будет создан совместимый со старыми кошелёк. - - - Generate native segwit (Bech32) address - Создать "родной" segwit (Bech32) адрес - - - Requested payments history - История платежных запросов - - - &Request payment - &Запросить платеж - - - Show the selected request (does the same as double clicking an entry) - Отобразить выбранный запрос (выполняет то же, что и двойной щелчок на записи) - - - Show - Показать - - - Remove the selected entries from the list - Удалить выбранные записи со списка - - - Remove - Удалить - - - Copy URI - Копировать URI - - - Copy label - Копировать метку - - - Copy message - Копировать сообщение - - - Copy amount - Копировать сумму - - - - ReceiveRequestDialog - - QR Code - QR-код - - - Copy &URI - Копировать &URI - - - Copy &Address - Копировать &Адрес - - - &Save Image... - &Сохранить изображение... - - - Payment information - Информация о платеже - - - URI - URI - - - Address - Адрес - - - Amount - Количество - - - Label - Метка - - - Message - Сообщение - - - Wallet - Кошелек - - - Error encoding URI into QR Code. - Ошибка преобразования URI в QR-код. - - - - RecentRequestsTableModel - - Date - Дата - - - Label - Метка - - - Message - Сообщение - - - (no label) - (нет метки) - - - (no message) - (нет сообщений) - - - (no amount requested) - (не указана запрашиваемая сумма) - - - Requested - Запрошено - - - - SendCoinsDialog - - Send Coins - Отправить монеты - - - Coin Control Features - Опции управления монетами - - - Inputs... - Входы... - - - automatically selected - выбрано автоматически - - - Insufficient funds! - Недостаточно средств! - - - Quantity: - Количество: - - - Bytes: - Байтов: - - - Amount: - Количество: - - - Fee: - Комиссия: - - - After Fee: - После комиссии: - - - Change: - Сдача: - - - Custom change address - Указать адрес для сдачи - - - Transaction Fee: - Комиссия за транзакцию: - - - Choose... - Выбрать... - - - Warning: Fee estimation is currently not possible. - Предупреждение: оценка комиссии в данный момент невозможна. - - - collapse fee-settings - свернуть настройки комиссионных - - - per kilobyte - за килобайт - - - Hide - Спрятать - - - Recommended: - Рекомендованное значение: - - - Custom: - Пользовательское значение: - - - Send to multiple recipients at once - Отправить нескольким получателям сразу - - - Add &Recipient - Добавить &получателя - - - Clear all fields of the form. - Очистить все поля формы. - - - Dust: - Пыль: - - - Confirmation time target: - Целевое время подтверждения - - - Enable Replace-By-Fee - Включить Replace-By-Fee - - - Balance: - Баланс: - - - Confirm the send action - Подтвердить отправку - - - Copy quantity - Копировать количество - - - Copy amount - Копировать сумму - - - Copy fee - Скопировать комиссию - - - Copy after fee - Скопировать после комиссии - - - Copy bytes - Скопировать байты - - - Copy dust - Скопировать пыль - - - Copy change - Скопировать сдачу - - - Are you sure you want to send? - Вы действительно хотите выполнить отправку? - - - or - или - - - Transaction fee - Комиссия - - - Confirm send coins - Подтвердить отправку монет - - - The amount to pay must be larger than 0. - Сумма оплаты должна быть больше 0. - - - The amount exceeds your balance. - Количество превышает ваш баланс. - - - Transaction creation failed! - Создание транзакции завершилось неудачей! - - - The transaction was rejected with the following reason: %1 - Транзакция была отменена по следующей причине: %1 - - - A fee higher than %1 is considered an absurdly high fee. - Комиссия более чем в %1 считается абсурдно высокой. - - - Payment request expired. - Истекло время ожидания запроса платежа - - - Warning: Invalid Bitcoin address - Предупреждение: Неверный Bitcoin адрес - - - Warning: Unknown change address - Предупреждение: Неизвестный адрес сдачи - - - (no label) - (нет метки) - - - - SendCoinsEntry - - &Label: - &Метка: - - - Choose previously used address - Выбрать предыдущий использованный адрес - - - Alt+A - Alt+A - - - Paste address from clipboard - Вставить адрес из буфера обмена - - - Alt+P - Alt+P - - - Remove this entry - Удалить эту запись - - - Use available balance - Использовать доступный баланс - - - Message: - Сообщение: - - - Pay To: - Выполнить оплату в пользу: - - - - SendConfirmationDialog - - Yes - Да - - - - ShutdownWindow - - %1 is shutting down... - %1 завершает работу... - - - - SignVerifyMessageDialog - - Choose previously used address - Выбрать предыдущий использованный адрес - - - Alt+A - Alt+A - - - Paste address from clipboard - Вставить адрес из буфера обмена - - - Alt+P - Alt+P - - - Signature - Подпись - - - Copy the current signature to the system clipboard - Скопировать текущую подпись в буфер обмена системы - - - The entered address is invalid. - Введенный адрес недействителен. - - - Please check the address and try again. - Необходимо проверить адрес и выполнить повторную попытку. - - - Wallet unlock was cancelled. - Разблокирование кошелька было отменено. - - - Message signed. - Сообщение подписано. - - - The signature could not be decoded. - Невозможно расшифровать подпись. - - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - in memory pool - в мемпуле - - - not in memory pool - не в мемпуле - - - Status - Статус - - - Date - Дата - - - Source - Источник - - - From - От - - - unknown - неизвестно - - - watch-only - только просмотр - - - Transaction fee - Комиссия - - - Message - Сообщение - - - Comment - Комментарий - - - Transaction ID - ID транзакции - - - Transaction - Транзакция - - - Amount - Количество - - - - TransactionDescDialog - - Details for %1 - Детальная информация по %1 - - - - TransactionTableModel - - Date - Дата - - - Type - Тип - - - Label - Метка - - - Received with - Получено на - - - Sent to - Отправить - - - Mined - Добыто - - - watch-only - только просмотр - - - (no label) - (нет метки) - - - Transaction status. Hover over this field to show number of confirmations. - Статус транзакции. Для отображения количества подтверждений необходимо навести курсор на это поле. - - - Date and time that the transaction was received. - Дата и время получения транзакции. - - - Type of transaction. - Тип транзакции. - - - - TransactionView - - All - Все - - - Today - Сегодня - - - This week - Эта неделя - - - This month - Этот месяц - - - Last month - Последний месяц - - - This year - Этот год - - - Range... - Диапазон... - - - Received with - Получено на - - - Sent to - Отправить - - - To yourself - Себе - - - Mined - Добыто - - - Enter address, transaction id, or label to search - Введите адрес, ID транзакции или метку для поиска - - - Min amount - Минимальное количество - - - Abandon transaction - Отказ от транзакции - - - Increase transaction fee - Увеличить комиссию за транзакцию - - - Copy address - Копировать адрес - - - Copy label - Копировать метку - - - Copy amount - Копировать сумму - - - Copy transaction ID - Копировать ID транзакции - - - Copy raw transaction - Копировать raw транзакцию - - - Copy full transaction details - Копировать все детали транзакции - - - Edit label - Изменить метку - - - Show transaction details - Отобразить детали транзакции - - - Confirmed - Подтвержденные - - - Date - Дата - - - Type - Тип - - - Label - Метка - - - Address - Адрес - - - ID - ИН - - - Exporting Failed - Экспорт не удался - - - There was an error trying to save the transaction history to %1. - При попытке сохранения истории транзакций в %1 произошла ошибка. - - - Exporting Successful - Экспорт выполнен успешно - - - The transaction history was successfully saved to %1. - Историю транзакций было успешно сохранено в %1. - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - Send Coins - Отправить монеты - - - Increasing transaction fee failed - Увеличение комиссии за транзакцию завершилось неудачей - - - Do you want to increase the fee? - Желаете увеличить комиссию? - - - Current fee: - Текущее значение комиссии - - - Increase: - Увеличить - - - New fee: - Новое значение комиссии: - - - Can't sign transaction. - Невозможно подписать транзакцию - - - Could not commit transaction - Не удалось выполнить транзакцию - - - - WalletView - - &Export - Экспортировать - - - Export the data in the current tab to a file - Экспортировать данные в текущей вкладке в файл - - - Backup Wallet - Создать резервную копию кошелька - - - Wallet Data (*.dat) - Данные кошелька (*.dat) - - - Backup Failed - Создание резервной копии кошелька завершилось неудачей - - - There was an error trying to save the wallet data to %1. - При попытке сохранения данных кошелька в %1 произошла ошибка. - - - Backup Successful - Резервное копирование выполнено успешно - - - The wallet data was successfully saved to %1. - Данные кошелька были успешно сохранены в %1. - - - - bitcoin-core - - Error: A fatal internal error occurred, see debug.log for details - Ошибка: произошла критическая внутренняя ошибка, для получения деталей см. debug.log - - - Unable to start HTTP server. See debug log for details. - Невозможно запустить HTTP-сервер. Для получения более детальной информации необходимо обратиться к журналу отладки. - - - Bitcoin Core - Bitcoin Core - - - The %s developers - Разработчики %s - - - %d of last 100 blocks have unexpected version - %d из последних 100 блоков имеют неожиданную версию - - - Copyright (C) %i-%i - Авторское право (©) %i-%i - - - Error loading %s - Ошибка загрузки %s - - - Error loading %s: Wallet corrupted - Ошибка загрузки %s: кошелек поврежден - - - Error loading %s: Wallet requires newer version of %s - Ошибка загрузки %s: кошелек требует более поздней версии %s - - - Error: Disk space is low! - Ошибка: место на диске заканчивается! - - - Importing... - Выполняется импорт... - - - Loading P2P addresses... - Выполняется загрузка P2P-адресов... - - - Loading banlist... - Загрузка черного списка... - - - Not enough file descriptors available. - Недоступно достаточного количества дескрипторов файла. - - - Transaction fee and change calculation failed - Не удалось рассчитать комиссию и сдачу для транзакции - - - Unsupported argument -debugnet ignored, use -debug=net. - Неподдерживаемый аргумент -debugnet пропущен, необходимо использовать -debug=net. - - - Unsupported argument -tor found, use -onion. - Обнаружен неподдерживаемый аргумент -tor, необходимо использовать -onion. - - - Verifying blocks... - Проверка блоков... - - - Error reading from database, shutting down. - Ошибка чтения с базы данных, выполняется закрытие. - - - Information - Информация - - - Signing transaction failed - Подписание транзакции завершилось неудачей - - - Transaction amount too small - Размер транзакции слишком мал - - - Transaction too large - Транзакция слишком большая - - - Warning - Предупреждение - - - Starting network threads... - Запуск сетевых потоков... - - - This is the minimum transaction fee you pay on every transaction. - Это минимальная комиссия, которую вы платите для любой транзакции - - - This is the transaction fee you will pay if you send a transaction. - Это размер комиссии, которую вы заплатите при отправке транзакции - - - Transaction amounts must not be negative - Размер транзакции не может быть отрицательным - - - Transaction must have at least one recipient - Транзакция должна иметь хотя бы одного получателя - - - Insufficient funds - Недостаточно средств - - - Loading block index... - Загрузка индекса блоков... - - - Loading wallet... - Выполняется загрузка кошелька... - - - Cannot downgrade wallet - Невозможно выполнить переход на более раннюю версию кошелька - - - Rescanning... - Выполняется повторное сканирование... - - - Done loading - Загрузка завершена - - - Error - Ошибка - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_sk_SK.ts b/src/qt/locale/bitcoin_sk_SK.ts deleted file mode 100644 index 68a41c2d9a..0000000000 --- a/src/qt/locale/bitcoin_sk_SK.ts +++ /dev/null @@ -1,3651 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Kliknite pravým tlačidlom myši pre úpravu adresy alebo štítku - - - Create a new address - Vytvoriť novú adresu - - - &New - &Nový - - - Copy the currently selected address to the system clipboard - Skopírovať aktuálne označenú adresu do schránky - - - &Copy - &Skopírovať - - - C&lose - C& - - - Delete the currently selected address from the list - Vymazať aktuálne označenú adresu zo zoznamu - - - Enter address or label to search - Pre vyhľadávanie zadajte adresu alebo štítok - - - Export the data in the current tab to a file - Exportovať dáta z aktuálnej karty do súboru - - - &Export - &Exportovať - - - &Delete - &Vymazať - - - Choose the address to send coins to - Vyberte adresu do ktorej chcete poslať mince - - - Choose the address to receive coins with - Vyberte adresu do ktorej chcete prijímať mince - - - C&hoose - Vy&brať - - - Sending addresses - Adresa odosielateľa - - - Receiving addresses - Adresa prijímaťeľa - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Toto je vaša Bitcoin adresa pre odosielanie platieb. Vždy si overte hodnotu a adresu prijímateľa pred odoslaním vaších mincí. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Toto je vaša Bitcoin adresa pre prijímanie platieb. Odporúčame Vám používať vždy novú adresu pre každú transakciu. - - - &Copy Address - &Skopírovať adresu - - - Copy &Label - Skopírvať &Štítok - - - &Edit - &Upraviť - - - Export Address List - Exportovať zoznam adries - - - Comma separated file (*.csv) - Čiarkou oddelené súbory (*.csv) - - - Exporting Failed - Exportovanie zlyhalo - - - - AddressTableModel - - Label - Štítok - - - Address - Adresa - - - (no label) - (žiadny štítok) - - - - AskPassphraseDialog - - Passphrase Dialog - Prístupové frázy - - - Enter passphrase - Zadajte vašu frázu - - - New passphrase - Nová fráza - - - Repeat new passphrase - Zopakujte novú frázu - - - Show password - Ukázať heslo - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Vložte novú frázu do peňaženky.<br/>Prosím použite frázu pozostávajúcu z<b>desiatich, alebo viacerých náhodných charakterov, alebo pozostávajúcu z <b> alebo viacerých slov</b>. - - - Encrypt wallet - Zašifrovať peňaženku - - - This operation needs your wallet passphrase to unlock the wallet. - Táto operácia si vyžaduje frázu Vašej peňaženky na jej odomknutie. - - - Unlock wallet - Odomknúť peňaženku - - - This operation needs your wallet passphrase to decrypt the wallet. - Táto operácia si vyžaduje frázu vašej peňaženky na jej dešifrovanie. - - - Decrypt wallet - Dešifrovanie peňaženky - - - Change passphrase - Zmeniť frázu - - - Enter the old passphrase and new passphrase to the wallet. - Zadajte starú a novú frázu do vašej peňaženky. - - - Confirm wallet encryption - Potvrďiť zašifrovanie peňaženky - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Upozornenie: Keď si zašifrujete vašu peňaženku a stratíte svoju frázu, <b> STRATÍTE VŠETKY VAŠE BITCOINY </b>! - - - Are you sure you wish to encrypt your wallet? - Ste si istý že si želáte svoju peňaženku zašifrovať? - - - Wallet encrypted - Peňaženka zašifrovaná - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 sa teraz zatvorí aby sa dokončil proces šifrovania. Zapamätajte si, že zašifrovanie vašej peňaženky nemôže úplne ochrániť vaše bitcoiny od ukradnutia malvérom ktorý môže infikovať Váš počítač. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - DÔLEŽITÉ: Všetky predošlé zálohy vašej peňaženky by mali byť nahradené na novo vygenerovaným zašifrovaným súborom. Z bezpečnostných dôvodov, predošlé zálohy nezašifrovaného súboru s peňaženkou budú nefunkčné hneď ako začnete používať vašu novú, zašifrovanú peňaženku. - - - Wallet encryption failed - Šifrovanie peňaženky zlyhalo - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Zašifrovanie peňaženky zlyhalo kvôli vnútornej chybe. Vaša peňaženka nebola zašifrovaná. - - - The supplied passphrases do not match. - Zadané frázy sa nezhodujú. - - - Wallet unlock failed - Odomknutie peňaženky zlyhalo - - - The passphrase entered for the wallet decryption was incorrect. - Zadaná fráza na dešifrovanie peňaženky je nesprávna. - - - Wallet decryption failed - Odšifrovanie peňaženky zlyhalo. - - - Wallet passphrase was successfully changed. - Fráza peňaženky bola úspešne zmenená. - - - Warning: The Caps Lock key is on! - Upozornenie: Máte zapnutý Caps Lock! - - - - BanTableModel - - IP/Netmask - IP/Netmask - - - Banned Until - Zablokovaný do - - - - BitcoinGUI - - Sign &message... - Podpísať &správu... - - - Synchronizing with network... - Synchronizujem so sieťou... - - - &Overview - &Prehľad - - - Node - Uzol - - - Show general overview of wallet - Ukázať celkový prehľad penňaženky - - - &Transactions - &Transakcie - - - Browse transaction history - Prehľadávať históriu transakcií - - - E&xit - U&končiť - - - Quit application - Odísť z peňaženky - - - &About %1 - &O %1 - - - Show information about %1 - Ukázať informácie o %1 - - - About &Qt - O &Qt - - - Show information about Qt - Ukázať informácie o Qt - - - &Options... - &Možnosti - - - Modify configuration options for %1 - Modifikovať konfigurácie nastavení pre %1 - - - &Encrypt Wallet... - &Zašifrovať peňaženku - - - &Backup Wallet... - &Zálohovať peňaženku - - - &Change Passphrase... - &Zmeniť prístupovú frázu - - - &Sending addresses... - &Adresy odosielateľov... - - - &Receiving addresses... - &Adresy prijímateľov... - - - Open &URI... - Otvoriť &URL - - - Wallet: - Peňaženka: - - - default wallet - Predvolená peňaženka - - - Click to disable network activity. - Kliknite pre odpojenie sieťovej aktivity. - - - Network activity disabled. - Aktivity siete boli odpojené. - - - Click to enable network activity again. - Kliknite pre obnovenie sieťovej aktivity. - - - Syncing Headers (%1%)... - Synchronizujem Hlavičky (%1%)... - - - Reindexing blocks on disk... - Reindexujem bloky na disk - - - Proxy is <b>enabled</b>: %1 - Proxy je <b>povolené</b>: %1 - - - Send coins to a Bitcoin address - Poslať mince do Bitcoin adresy - - - Backup wallet to another location - Zálohovať peňaženku na inú lokáciu - - - Change the passphrase used for wallet encryption - Zmeniť prístupovú frázu použitú pri šifrovaní peňaženky - - - &Debug window - &Ladiace okno - - - Open debugging and diagnostic console - Otvoriť ladiacu a diagnostickú konzolu - - - &Verify message... - &Overiť správu... - - - Bitcoin - Bitcoin - - - Wallet - Peňaženka - - - &Send - &Poslať - - - &Receive - &Prijať - - - &Show / Hide - &Ukázať / skryť - - - Show or hide the main Window - Ukázať alebo zakázať hlavné Okno - - - Encrypt the private keys that belong to your wallet - Zašifrovať súkromné kľúče patriace k vašej peňaženke - - - Sign messages with your Bitcoin addresses to prove you own them - Podpísať správu s vašou Bitcoin adresou pre dokázanie že ich vlastníte - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Overiť správy pre zaručenie že boli podpísané špecifickými Bitcoin adresami - - - &File - &Súbor - - - &Settings - &Nastavenia - - - &Help - &Pomoc - - - Tabs toolbar - Panel nástrojov - - - Request payments (generates QR codes and bitcoin: URIs) - Vyžiadať platby (vygeneruje sa QR kód a bitcoin: URI) - - - Show the list of used sending addresses and labels - Ukázať zoznam použitých odosielacích adries a štítkov - - - Show the list of used receiving addresses and labels - Ukázať zoznam použitých prijímacích adries a štítkov - - - Open a bitcoin: URI or payment request - Otvoriť Bitcoin: URI alebo vyžiadanie platby - - - &Command-line options - &Možnosti príkazového riadku - - - %n active connection(s) to Bitcoin network - %n aktívne pripojenia na Bitcoin sieti%n aktívne pripojenia na Bitcoin sieti%n aktívne pripojenia na Bitcoin sieti%n aktívne pripojenia na Bitcoin sieti - - - Indexing blocks on disk... - Indexovať bloky na disku - - - Processing blocks on disk... - Spracovávam bloky na disku - - - Processed %n block(s) of transaction history. - Spracovaných %n blokov s históriou transakcií.Spracovaných %n blokov s históriou transakcií.Spracovaných %n blokov s históriou transakcií.Spracovaných %n blokov s históriou transakcií. - - - %1 behind - %1 za - - - Last received block was generated %1 ago. - Posledný prijatý blok bol vygenerovaný pred %1 . - - - Transactions after this will not yet be visible. - Transakcie po tejto ešte nebudú viditeľné - - - Error - Chyba - - - Warning - Upozornenie - - - Information - Informácie - - - Up to date - Aktuálne - - - Show the %1 help message to get a list with possible Bitcoin command-line options - Ukázať %1 pomocnú správu na dostanie zoznamu s možnými možnosťami v Bitcoin príkazovom riadku - - - %1 client - %1 klient - - - Connecting to peers... - Pripája sa k Peerom - - - Catching up... - Dobieham... - - - Date: %1 - - Dátum: %1 - - - - Amount: %1 - - Čiastka: %1 - - - - Wallet: %1 - - Peňaženka: %1 - - - - Type: %1 - - Typ: %1 - - - - Label: %1 - - Štítok: %1 - - - - Address: %1 - - Adresa: %1 - - - - Sent transaction - Odoslané transakcie - - - Incoming transaction - Prichádzajúca transakcia - - - HD key generation is <b>enabled</b> - Generácia HD kľúča je <b>zapnutá</b> - - - HD key generation is <b>disabled</b> - Generácia HD kľúča je <b>vypnutá</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Peňaženka je <b>zašifrovaná</b> a aktuálne <b>odomknutá</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Peňaženka je <b>zašifrovaná</b> a aktuálne <b>zamknutá</b> - - - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Nastala fatálna chyba. Bitcoin už nemôže pokračovať bezpečne a vypne sa. - - - - CoinControlDialog - - Coin Selection - Výber mincí - - - Quantity: - Množstvo: - - - Bytes: - Bajty: - - - Amount: - Čiastka: - - - Fee: - Poplatok: - - - Dust: - Prach: - - - After Fee: - Po zaplatení poplatku: - - - Change: - Zmena: - - - (un)select all - (od)značiť všetky - - - Tree mode - Stromový režim - - - List mode - Režim zoznamu - - - Amount - Čiastka - - - Received with label - Prijaté so štítkom - - - Received with address - Prijaté s adresou - - - Date - Dátum - - - Confirmations - Potvrdenia - - - Confirmed - Potvrdenie - - - Copy address - Kopírovať adresu - - - Copy label - Kopírovať štítok - - - Copy amount - Kopírovať čiastku - - - Copy transaction ID - Kopírovať ID transakcie - - - Lock unspent - Zamknúť nevyužité - - - Unlock unspent - Odomknúť nevyužité - - - Copy quantity - Kopírovať množstvo - - - Copy fee - Kopírovať poplatok - - - Copy after fee - Kopírovať po zaplatení poplatku - - - Copy bytes - Kopírovať bajty - - - Copy dust - Kopírovať prach - - - Copy change - Kopírovať zmenu - - - (%1 locked) - (%1 zamknuté) - - - yes - áno - - - no - nie - - - This label turns red if any recipient receives an amount smaller than the current dust threshold. - Tento štítok sa zmení na červený ak nejaký prijímateľ obdrží čiastku menšiu ako je aktuálny prah prachu - - - Can vary +/- %1 satoshi(s) per input. - Môže sa kolísať o +/- %1 satoshi() za vstup - - - (no label) - (žiadny štítok) - - - change from %1 (%2) - zmeniť z %1 (%2) - - - (change) - (zmena) - - - - EditAddressDialog - - Edit Address - Upraviť adresu - - - &Label - &Štítok - - - The label associated with this address list entry - Štítok priradený k tejto položke zoznamu adries - - - The address associated with this address list entry. This can only be modified for sending addresses. - Adresa priradená k tejto položke zoznamu adries. Toto je možné upraviť iba pre odosielanie adries. - - - &Address - &Adresa - - - New sending address - Nová odosielacia adresa - - - Edit receiving address - Upraviť príjimaciu adresu - - - Edit sending address - Upraviť odosielaciu adresu - - - The entered address "%1" is not a valid Bitcoin address. - Vložená adresa ''%1'' nie je platná Bitcoin adresa. - - - Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. - Adresa ''%1'' už existuje ako prijímacia adresa so štítkom ''%2'' .Nemôže tak byť pridaná ako odosielacia adresa. - - - The entered address "%1" is already in the address book with label "%2". - Vložená adresa ''%1'' sa už nachádza v knihe adries so štítokm ''%2''. - - - Could not unlock wallet. - Nebolo možné odomknúť peňaženku. - - - New key generation failed. - Generovanie nového kľúča zlyhalo. - - - - FreespaceChecker - - A new data directory will be created. - Bude vytvorený nový adresár dát. - - - name - meno - - - Directory already exists. Add %1 if you intend to create a new directory here. - Tento adresár už existuje. Pridajte %1 ak ste tu chceli vytvoriť nový adresár. - - - Path already exists, and is not a directory. - Cesta už existuje, a nie je to adresár. - - - Cannot create data directory here. - Nemôžem tu vytvoriť adresár dát. - - - - HelpMessageDialog - - version - verzia - - - (%1-bit) - (%1-bit) - - - About %1 - O %1 - - - Command-line options - Možnosti príkazového riadku - - - - Intro - - Welcome - Vitajte - - - Welcome to %1. - Vitajte v %1 - - - As this is the first time the program is launched, you can choose where %1 will store its data. - Kedže toto je prvé spustenie programu, si môžete vybrať kde %1 bude ukladať svoje dáta. - - - When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. - Keď kliknete na OK tak %1 začne sťahovanie a spracuje celý %4 blockchain (%2GB) počnúc najmladšími transakciami v %3 keď sa %4 prvý krát spustil. - - - This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. - Počiatočná synchronizácia je veľmi náročná a môže odhaliť hardvérove problémy vo vašom počítači o ktorých ste do teraz nevedeli. Vždy keď zapnete %1 tak sa sťahovanie začne presne tam kde bolo pred vypnutím. - - - If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. - Keď ste si vybrali limit na uloženie blockchainu (zmenšenie) tak sa historické dáta budú musieť aj tak sťiahnuť a spracovať ale potom budú zmazané aby sa používanie disku znížilo. - - - Use the default data directory - Použiť predvolený dátový adresár - - - Use a custom data directory: - Použiť vlastný dátový adresár: - - - Bitcoin - Bitcoin - - - At least %1 GB of data will be stored in this directory, and it will grow over time. - V tomto adresári bude uložené minimálne %1 GB dát, časom sa využité dáta zvýšia. - - - Approximately %1 GB of data will be stored in this directory. - V tomto adresári bude uložených približne %1 GB dát. - - - %1 will download and store a copy of the Bitcoin block chain. - %1 stiahne a bude uchovávať kópiu Bitcoin blockchainu. - - - The wallet will also be stored in this directory. - Peňaženka bude tiež uložená v tomto adresári. - - - Error: Specified data directory "%1" cannot be created. - Chyba: Špecifický dátový adresár ''%1'' nemôže byť vytvorený. - - - Error - Chyba - - - %n GB of free space available - Je voľných %n GB miesta na diskuJe voľných %n GB miesta na diskuJe voľných %n GB miesta na diskuJe voľných %n GB miesta na disku - - - (of %n GB needed) - (z %n GB potrebných)(z %n GB potrebných)(z %n GB potrebných)(z %n GB potrebných) - - - - ModalOverlay - - Form - Forma - - - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Nedávne transakcie ešte nemusia byť viditeľné takže zostatok vo vašej peňaženke môže byť nesprávny. Táto informácia sa opraví keď sa vaša peňaženka zosynchronizuje s Bitcoin sieťou ako je popísané nižšie. - - - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Pokusy o minutie bitcoinov ktoré sú ovplyvnené ešte nezobrazenými transakciami nebudú prijaté sieťou. - - - Number of blocks left - Číslo zostávajúcich blokov - - - Unknown... - Neznáme... - - - Last block time - Čas predošlého bloku - - - Progress - Pokrok - - - Progress increase per hour - Zvýšenie pokroku za hodinu - - - calculating... - kalkulujem... - - - Estimated time left until synced - Predpokladaný čas do zosynchronizovania - - - Hide - Skryť - - - Unknown. Syncing Headers (%1)... - Neznáme. Synchronizujem Hlavičky (%1)... - - - - OpenURIDialog - - Open URI - otvoriť URI - - - Open payment request from URI or file - Otvoriť žiadosť o platbu z URI alebo súboru - - - URI: - URI: - - - Select payment request file - Vyberte súbor s požiadavkou o platbu - - - Select payment request file to open - Vyberte súbor s požiadavkou o platbu na otvorenie - - - - OptionsDialog - - Options - Možnosti - - - &Main - &Hlavné - - - Automatically start %1 after logging in to the system. - Automaticky spustiť %1 po prihlásení sa do systému - - - &Start %1 on system login - &Spustiť %1 pri prihlásení sa do systému - - - Size of &database cache - Veľkosť &databázy cache - - - MB - MB - - - Number of script &verification threads - Číslo skriptu a &overovacích vlákien - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - IP adresa proxy (napr. IPv4: 127.0.0.1 / IPv6::1) - - - Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. - Ukázať či predvolene dodané SOCKS5 proxy je používané nadosiahnutie peerov cez tento typ siete. - - - Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - Použiť oddelené SOCKS&5 proxy na dosiahnutie peerov cez skryté služby Toru: - - - Hide the icon from the system tray. - Skryť ikony na systémovej lište. - - - &Hide tray icon - &Skryť lištu s ikonami - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Minimalizovať namiesto zatvorenia aplikácie keď je okno zatvorené. Keď je táto možnosť zapnutá tak sa aplikácia zatvorí len po tom čo ju zatvoríte v menu. - - - Active command-line options that override above options: - Aktívne možnosti príkazového riadku ktoré potláčajú vyššie uvedené možnosti: - - - Open the %1 configuration file from the working directory. - Otvoriť %1 konfiguračný súbor z fungujúceho adresára. - - - Open Configuration File - Otvoriť konfiguračný súbor - - - Reset all client options to default. - Resetovať všetky možnosti klienta na predvolené. - - - &Reset Options - &Resetovať možnosti - - - &Network - &Sieť - - - Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher. - Zakáže niektoré pokročilé funkcie, ale všetky bloky budú stále plne overené. Obnovenie tohto nastavenia vyžaduje opätovné prevzatie celého blockchainu. Skutočné využitie disku môže byť o niečo vyššie. - - - Prune &block storage to - Zmenšiť &blok úložisko na - - - GB - GB - - - Reverting this setting requires re-downloading the entire blockchain. - Obnovenie tohto nastavenia vyžaduje opätovné prevzatie celého blockchainu. - - - (0 = auto, <0 = leave that many cores free) - (0 = automaticky, <0 = nechajte toľko jadier voľných) - - - W&allet - P&eňaženka - - - Expert - Expert - - - Enable coin &control features - Povoliť funkcie "&coin control" - - - If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Ak vypnete míňanie nepotvrdeného výdavku tak výdavok z transakcie bude možné použiť až keď daná transakcia bude mať aspoň jedno potvrdenie. Toto má vplyv aj na výpočet vášho zostatku. - - - &Spend unconfirmed change - &Míňať nepotvrdené mince - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Automaticky otvoriť port Bitcoin klienta na routeri. Toto funguje len vtedy, keď Váš router podporuje a má zapnuté UPnP - - - Map port using &UPnP - Zmapovať port za pomoci &UPnP - - - Accept connections from outside. - Povoliť pripojenia z vonku. - - - Allow incomin&g connections - Povoliť prichá&dzajúce spojenia - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Pripojiť sa k Bitcoin sieti cez SOCKS5 proxy. - - - &Connect through SOCKS5 proxy (default proxy): - &Pripojiť cez SOCKS5 proxy (predvolené proxy). - - - Proxy &IP: - Proxy &IP: - - - &Port: - &Port - - - Port of the proxy (e.g. 9050) - Port proxy (napr. 9050) - - - Used for reaching peers via: - Používa sa na oslovenie peerov prostredníctvom: - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Pripojiť sa k Bitcoin sieti cez osobitné SOCKS5 proxy pre skryté služby Toru - - - &Window - &Okno - - - Show only a tray icon after minimizing the window. - Ukázať lištu s ikonami len po minimalizovaní okna. - - - &Minimize to the tray instead of the taskbar - &Minimalizovať na lištu namiesto hlavného panelu - - - M&inimize on close - M&inimalizovať pri zavretí - - - &Display - &Ukázať - - - User Interface &language: - &Jazyk používateľského rozhrania: - - - The user interface language can be set here. This setting will take effect after restarting %1. - Tu môžete nastaviť jazyk užívateľského rozhrania. Tieto nastavenia sa uskutočnia po reštarte %1 - - - &Unit to show amounts in: - Ukazovať čiastky v &Jednotke - - - Choose the default subdivision unit to show in the interface and when sending coins. - Vybrať predvolené pododdelenie jednotky na ukázanie v rozhraní a posielaní mincí. - - - Whether to show coin control features or not. - Chcete zobrazovať funkcie mince alebo nie. - - - &Third party transaction URLs - URL transakcií &Tretej strany - - - &OK - &OK - - - &Cancel - &Zrušiť - - - default - predvolené - - - none - žiadne - - - Confirm options reset - Potvrdiť zresetovanie nastavení - - - Client restart required to activate changes. - Vyžaduje sa reštart klienta na aktivovanie zmien. - - - Client will be shut down. Do you want to proceed? - Klient sa vypne. Chcete pokračovať? - - - Configuration options - Nastavenia konfigurácií - - - The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file. - Konfiguračný súbor slúži na zadanie pokročilých používateľských možností, ktoré prekonávajú nastavenia GUI. Okrem toho všetky možnosti príkazového riadku prekonajú tento konfiguračný súbor. - - - Error - Chyba - - - The configuration file could not be opened. - Konfiguračný súbor nemohol byť otvorený. - - - This change would require a client restart. - Táto zmena by si vyžadovala reštart klienta. - - - The supplied proxy address is invalid. - Zadaná proxy adresa je nesprávna. - - - - OverviewPage - - Form - Forma - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Ukázaná informácia už môže byť zastaraná. Vaša peňaženka sa automaticky zosynchronizuje s Bitcoin sieťou po tom, čo bude pripojená k internetu , tento proces sa zatiaľ nedokončil. - - - Watch-only: - Len sledovať - - - Available: - Dostupné: - - - Your current spendable balance - Váš aktuálny vyčerpateľný zostatok - - - Pending: - Prebieha: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Celkový počet transakcií, ktoré ešte treba potvrdiť a zatiaľ sa nezapočítavajú do vyčerpateľného zostatku - - - Immature: - Nezrelý: - - - Mined balance that has not yet matured - Vyťažený zostatok ešte nevyspel - - - Balances - Zostatky - - - Total: - Spolu: - - - Your current total balance - Váš aktuálny zostatok - - - Your current balance in watch-only addresses - Váš aktuálny zostatok v adresách watch-only - - - Spendable: - Minuteľné: - - - Recent transactions - Nedávne transakcie - - - Unconfirmed transactions to watch-only addresses - Nepotvrdené transakcie vo watch-only adresách - - - Mined balance in watch-only addresses that has not yet matured - Vyťažený zostatok vo watch-only adresách ktorý ešte nevyspel - - - Current total balance in watch-only addresses - Aktuálny celkový zostatok v adresách iba na sledovanie - - - - PaymentServer - - Payment request error - Chyba pri žiadosti o platbu - - - Cannot start bitcoin: click-to-pay handler - Nemôžem spustiť Bitcoin: click-to-pay handler - - - URI handling - Narábanie s URI - - - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' je nesprávna URI. Namiesto toho použite 'bitcoin'. - - - Payment request fetch URL is invalid: %1 - URL pre stiahnutie výzvy na zaplatenie je neplatná: %1 - - - Invalid payment address %1 - Neplatná platobná adresa %1 - - - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI nemohla byť analyzovaná. Môže to byť spôsobené neplatnou Bitcoin adresou alebo chybnými parametrami URI. - - - Payment request file handling - Spracovanie súboru so žiadosťou o platbu. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Súbor so žiadosťou o platbu nemohol byť otvorený! Toto môže byť zapríčinrné nesprávnym súborom so žiadosťou o platbu. - - - Payment request rejected - Žiadosť o platbu bola zamietnutá - - - Payment request network doesn't match client network. - Sieť požiadavky na platbu nie je zhodná so sieťou klienta. - - - Payment request expired. - Žiadosť o platbu vypršala. - - - Payment request is not initialized. - Žiadosť o platbu nebola inicializovaná. - - - Unverified payment requests to custom payment scripts are unsupported. - Program nepodporuje neoverené platobné požiadavky na vlastné skripty. - - - Invalid payment request. - Neplatná žiadosť o platbu. - - - Requested payment amount of %1 is too small (considered dust). - Vyžiadaná čiastka %1 je príliš malá (je považovaná za prach). - - - Refund from %1 - Vrátiť z %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Žiadosť o platbu %1 je veľmi veľká (%2 bajtov, povolená je veľkosť do %3 bajtov). - - - Error communicating with %1: %2 - Nastala chyba pri komunikácii %1: s %2 - - - Payment request cannot be parsed! - Žiadosť o platbu nemôže byť analyzovaná! - - - Bad response from server %1 - Zlá odpoveď zo servera %1 - - - Network request error - Chyba požiadavky siete - - - Payment acknowledged - Platba potvrdená - - - - PeerTableModel - - User Agent - Užívateľský agent - - - Node/Service - Uzol/Servis - - - NodeId - ID uzla - - - Ping - Ping - - - Sent - Odoslané - - - Received - Doručené - - - - QObject - - Amount - Čiastka - - - Enter a Bitcoin address (e.g. %1) - Vložte bitcoin adresu (napr. %1) - - - %1 d - %1 d - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - None - Žiadne - - - N/A - Nie je dostupné - - - %1 ms - %1 ms - - - %n second(s) - %n sekunda%n sekúnd%n sekúnd%n sekúnd - - - %n minute(s) - %n minúta%n minút%n minút%n minút - - - %n hour(s) - %n hodina%n hodín%n hodín%n hodín - - - %n day(s) - %n deň%n dní%n dní%n dní - - - %n week(s) - %n týždeň%n týždňov%n týždňov%n týždňov - - - %1 and %2 - %1 a %2 - - - %n year(s) - %n rok%n rokov%n rokov%n rokov - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - %1 didn't yet exit safely... - %1 sa zatiaľ nevyplo bezpečne - - - unknown - neznáme - - - - QObject::QObject - - Error parsing command line arguments: %1. - Chyba pri analyzovaní argumentov príkazového riadku: %1. - - - Error: Specified data directory "%1" does not exist. - Chyba: špecifikovaný dátový adresár ''%1'' neexistuje. - - - Error: Cannot parse configuration file: %1. - Chyba: Nemôžem analyzovať konfiguračný súbor: %1. - - - Error: %1 - Chyba: %1 - - - - QRImageWidget - - &Save Image... - &Uložiť obrázok... - - - &Copy Image - &Kopírovať obrázok - - - Save QR Code - Uložiť QR kód - - - PNG Image (*.png) - Obrázok vo formáte PNG (*.png) - - - - RPCConsole - - N/A - Nie je dostupné - - - Client version - Verzia klienta - - - &Information - &Informácie - - - Debug window - Ladiace okno - - - General - Všeobecné - - - Using BerkeleyDB version - Používam verziu BerkeleyDB - - - Datadir - Datadir - - - Startup time - Čas spustenia - - - Network - Sieť - - - Name - Meno - - - Number of connections - Číslo pripojení - - - Block chain - Blockchain - - - Current number of blocks - Aktuálny počet blokov - - - Memory Pool - Memory Pool - - - Current number of transactions - Aktuálny počet transakcií - - - Memory usage - Použitie pamäte - - - Wallet: - Peňaženka: - - - (none) - (žiadne) - - - &Reset - &Reštart - - - Received - Doručené - - - Sent - Odoslané - - - &Peers - &Peeri - - - Banned peers - Zablokovaný Peeri - - - Select a peer to view detailed information. - Vyberte si peera aby ste si mohli pozrieť bližšie informácie. - - - Whitelisted - Na zozname povolených - - - Direction - Smer - - - Version - Verzia - - - Starting Block - Počiatočný blok - - - Synced Headers - Zosynchronizované hlavičky - - - Synced Blocks - Zosynchronizované bloky - - - User Agent - Užívateľský agent - - - Decrease font size - Znížiť veľkosť písma - - - Increase font size - Zvýšiť veľkosť písma - - - Services - Služby - - - Ban Score - Skóre zákazu - - - Connection Time - Čas pripojenia - - - Last Send - Naposledy odoslané - - - Last Receive - Naposledy doručené - - - Ping Time - Čas pingu - - - The duration of a currently outstanding ping. - Trvanie momentálne nevyriešeného pingu. - - - Ping Wait - Čakanie pingu - - - Min Ping - Minimálny ping - - - Time Offset - Čas vyváženia - - - Last block time - Čas predošlého bloku - - - &Open - &Otvoriť - - - &Console - &Konzola - - - &Network Traffic - &Sieťová prevádzka - - - Totals - Spolu - - - In: - Do: - - - Out: - Z: - - - Debug log file - Debugovať súbor s logom - - - Clear console - Vyčistiť konzolu - - - 1 &hour - 1 &hodina - - - 1 &day - 1 &deň - - - 1 &week - 1 &týždeň - - - 1 &year - 1 &rok - - - &Disconnect - &Odpojiť - - - Ban for - Zablokovať na - - - &Unban - &Odblokovať - - - default wallet - Predvolená peňaženka - - - Welcome to the %1 RPC console. - Vitajte v %1 RPC konzole. - - - Type %1 for an overview of available commands. - Napíšte %1 pre prehľad dostupných príkazov. - - - For more information on using this console type %1. - Pre viac informácii na používanie tejto konzoly napíšte %1. - - - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - UPOZORNENIE: Podvodníci sú aktívny. Podvodníci hovoria používateľom aby tu písali rôzne príkazy čím ukradnú obsah ich peňaženiek. Nepoužívajte túto konzolu bez toho, aby ste vedeli čo presne tieto príkazy znamenajú. - - - Network activity disabled - Aktivita siete bola vypnutá - - - Executing command without any wallet - Vykonávam príkaz bez peňaženky - - - Executing command using "%1" wallet - Vykonávam príkaz za použitia peňaženky ''%1'' - - - (node id: %1) - (ID uzla: %1) - - - via %1 - cez %1 - - - never - nikdy - - - Inbound - Prichádzajúci - - - Outbound - Odchádzajúci - - - Yes - Áno - - - No - Nie - - - Unknown - Neznáme - - - - ReceiveCoinsDialog - - &Amount: - &Čiastka: - - - &Label: - &Štítok: - - - &Message: - &Správa: - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Nepovinná správa ktorá bude pripojená k žiadosti o platbu. Správa bude zobrazená po otvorení žiadosti o platbu. Táto správa nebude odoslaná spolu s platbou na Bitcoin sieti. - - - An optional label to associate with the new receiving address. - Nepovinný štítok na priradenie k novej príjimaciej adrese. - - - Use this form to request payments. All fields are <b>optional</b>. - Používajte túto formu pri vyžiadaní platieb. Všetky políčka sú <b>nepovinné</b>. - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Voliteľná čiastka na vyžiadanie. Ak nechce vyžiadať špecifickú čiastku tak zanechajte pole prázdne alebo doň napíšte nulu. - - - Clear all fields of the form. - Zmazať všetky políčka formulára. - - - Clear - Zmazať - - - Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. - Natívne segwit adresy (ako Bech32 alebo BIP-173) neskôr zredukujú váš transakčný poplatok a ponúkajú lepšiu ochranu proti preklepom, staré peňaženky ich ale nepodporujú. Keď toto pole nie je začiarknuté tak sa vytvorí adresa ktorá bude kompatibilná so starými peňaženkami. - - - Generate native segwit (Bech32) address - Vygenerovať natívnu segwit (Bech32) adresu - - - Requested payments history - História vyžiadaných platieb - - - &Request payment - &Vyžiadať platbu - - - Show the selected request (does the same as double clicking an entry) - Ukázať vybranú žiadosť (rovnaké ako dvojité kliknutie na položku) - - - Show - Ukázať - - - Remove the selected entries from the list - Vymazať vybrané položky zo zoznamu - - - Remove - Vymazať - - - Copy URI - Skopírovať URI - - - Copy label - Kopírovať štítok - - - Copy message - Skopírovať správu - - - Copy amount - Kopírovať čiastku - - - - ReceiveRequestDialog - - QR Code - QR kód - - - Copy &URI - Skopírovať &URI - - - Copy &Address - Skopírovať &Adresu - - - &Save Image... - &Uložiť obrázok... - - - Request payment to %1 - Vyžiadať platbu do %1 - - - Payment information - Informácie o platbe - - - URI - URI - - - Address - Adresa - - - Amount - Čiastka - - - Label - Štítok - - - Message - Správa - - - Wallet - Peňaženka - - - Resulting URI too long, try to reduce the text for label / message. - Výsledná URI je príliš dlhá, skúste zmenšiť text pre štítok / správu. - - - Error encoding URI into QR Code. - Chyba pri kódovaní URI do QR kódu - - - - RecentRequestsTableModel - - Date - Dátum - - - Label - Štítok - - - Message - Správa - - - (no label) - (žiadny štítok) - - - (no message) - (žiadna správa) - - - (no amount requested) - (nebola vyžiadaná žiadna čiastka) - - - Requested - Vyžiadané - - - - SendCoinsDialog - - Send Coins - Poslať mince - - - Coin Control Features - Funkcie kontroly mincí - - - Inputs... - Vstupy... - - - automatically selected - automaticky vybrané - - - Insufficient funds! - Nedostatok mincí! - - - Quantity: - Množstvo: - - - Bytes: - Bajty: - - - Amount: - Čiastka: - - - Fee: - Poplatok: - - - After Fee: - Po zaplatení poplatku: - - - Change: - Zmena: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Ak je táto možnosť aktivovaná ale adresa pre výdavok je prázdna alebo neplatná, výdavok bude poslaný na novovytvorenú adresu. - - - Custom change address - Vlastná adresa zmeny - - - Transaction Fee: - Transakčný poplatok: - - - Choose... - Vybrať... - - - Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. - Použitie fallbackfee môže vyústiť v transakciu, ktorá bude trvať hodiny alebo dni (prípadne večnosť) , kým bude potvrdená. Zvážte preto manuálne nastavenie poplatku, alebo počkajte kým sa Vám kompletne zvaliduje reťazec blokov. - - - Warning: Fee estimation is currently not possible. - Upozornenie: Momentálne nie je možné odhadnúť cenu transakčného poplatku. - - - collapse fee-settings - zbaliť nastavenia poplatkov - - - Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. - -Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis. - Špecifikujte vlastný transakčný polatok za 1 kB (1000 bajtov) virtuálnej veľkosti transakcie. - -Zapamätajte si: Keďže cena poplatku je počítaná za bajt, tak poplatok o hodnote ''100 satoshi za kB'' pri veľkosti transakcie 500 bajtov (polovica z 1kB) by stál len 50 satoshi. - - - per kilobyte - za kilobajt - - - Hide - Skryť - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Zaplatenie len minimálneho poplatku je v poriadku, pokiaľ existuje menej transakcií ako miesta v blokoch. Uvedomte si však, že ak bude vyšší dopyt po transakciách ako dokáže sieť spracovať, môže byť vaša transakcia oneskorená alebo dokonca nikdy nepotvrdená. - - - (read the tooltip) - (prečítajte si radu) - - - Recommended: - Odporúčané: - - - Custom: - Vlastné: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - ( ,,Múdre'' poplatky zatiaľ neboli začané. Malo by to zvyčajne zabrať pár blokov...) - - - Send to multiple recipients at once - Poslať viacerím príjimateľom na raz - - - Add &Recipient - Pridať &Prijímateľa - - - Clear all fields of the form. - Zmazať všetky políčka formulára. - - - Dust: - Prach: - - - Confirmation time target: - Časový cieľ na potvrdenie: - - - Enable Replace-By-Fee - Povoliť nahradenie poplatkom - - - With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk. - S nahradením poplatkov (BIP-125) môžete zvýšiť transakčný poplatok po tom, čo je transakcia odoslaná. Bez tejto funkcie je odporúčaný vyšší poplatok aby sa predišlo oneskoreniu transakcie. - - - Clear &All - Vymazať &Všetko - - - Balance: - Zostatok: - - - Confirm the send action - Potvrdiť odoslanie - - - S&end - P&oslať - - - Copy quantity - Kopírovať množstvo - - - Copy amount - Kopírovať čiastku - - - Copy fee - Kopírovať poplatok - - - Copy after fee - Kopírovať po zaplatení poplatku - - - Copy bytes - Kopírovať bajty - - - Copy dust - Kopírovať prach - - - Copy change - Kopírovať zmenu - - - %1 (%2 blocks) - %1 (%2 blokov) - - - %1 to %2 - %1 do %2 - - - Are you sure you want to send? - Ste si istý že chcete odoslať? - - - or - alebo - - - You can increase the fee later (signals Replace-By-Fee, BIP-125). - Poplatok môžete zvýšiť neskôr (signalizácia nahradenia poplatku, BIP-125). - - - from wallet %1 - z peňaženky %1 - - - Please, review your transaction. - Prosím, skontrolujte svoju transakciu. - - - Transaction fee - Transakčný poplatok - - - Not signalling Replace-By-Fee, BIP-125. - Nesignalizujem nahradenie poplatku, BIP-125 - - - Total Amount - Celková Čiastka - - - Confirm send coins - Potvrdiť odoslanie mincí - - - The recipient address is not valid. Please recheck. - Adresa príjimateľa je nesprávna. Prosím skontrolujte ju. - - - The amount to pay must be larger than 0. - Čiastka na zaplatenie musí byť väčšia ako 0. - - - The amount exceeds your balance. - Táto čiastka je väčšia ako váš zostatok. - - - The total exceeds your balance when the %1 transaction fee is included. - Celková suma presahuje váš zostatok po tom, čo je k sume pridaný %1 transakčný poplatok. - - - Duplicate address found: addresses should only be used once each. - Boli nájdené duplicitné adresy: každá adresa by sa mala použiť len raz. - - - Transaction creation failed! - Vytvorenie transakcie zlyhalo! - - - The transaction was rejected with the following reason: %1 - Transakcia bola odmietnutá kvôli: %1 - - - A fee higher than %1 is considered an absurdly high fee. - Poplatok väčší ako %1 je považovaný za absurdne veľký poplatok. - - - Payment request expired. - Žiadosť o platbu vypršala. - - - Pay only the required fee of %1 - Zaplaťte len vyžadovaný poplatok %1 - - - Estimated to begin confirmation within %n block(s). - Predpoklad na začanie potvrdenia do %n bloku.Predpoklad na začanie potvrdenia do %n blokov.Predpoklad na začanie potvrdenia do %n blokov.Predpoklad na začanie potvrdenia do %n blokov. - - - Warning: Invalid Bitcoin address - Upozornenie: Nesprávna Bitcoin adresa - - - Warning: Unknown change address - Upozornenie: Neznáma zmena adresy - - - Confirm custom change address - Potvrďte vlastnú zmenu adresy - - - The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? - Adresa ktorú chcete zmeniť nie je súčasťou tejto peňaženky. Všetky peňažné prostriedky z Vašej peňaženky môžu byť poslané na túto adresu. Ste si istý? - - - (no label) - (žiadny štítok) - - - - SendCoinsEntry - - A&mount: - Č&iastka - - - Pay &To: - Zaplatiť &to - - - &Label: - &Štítok: - - - Choose previously used address - Vyberte si predchádzajcu použitú adresu - - - This is a normal payment. - Toto je normálna platba - - - The Bitcoin address to send the payment to - Bitcoin adresa do ktorej môžete poslať platbu - - - Alt+A - Alt+A - - - Paste address from clipboard - Prilepiť adresu zo schránky - - - Alt+P - Alt+P - - - Remove this entry - Vymazať tento vstup - - - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Poplatok bude odčítaný z čiastky ktorá bola odoslaná. Prijímateľ obdrží menej Bitcoinov ako vložíte do poľa s čiastkou. Ak ste si vybrali viacerích prijímateľov tak bude poplatok rozdelený rovnomerne. - - - S&ubtract fee from amount - O&dčítať poplatok z čiastky - - - Use available balance - Použiť dostupný zostatok - - - Message: - Správa: - - - This is an unauthenticated payment request. - Toto je neoverená žiadosť o platbu. - - - This is an authenticated payment request. - Toto je overená žiadosť o platbu. - - - Enter a label for this address to add it to the list of used addresses - Zadajte štítok pre túto adresu aby ste ju pridali do zoznamu použitých adries. - - - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Správa pripojená k Bitcoin URI ktorá bude uložená spolu s transakciou pre vašu referenciu. Poznámka: Táto správa nebude odoslaná cez Bitcoin sieť. - - - Pay To: - Zaplatiť: - - - Memo: - Poznámka: - - - Enter a label for this address to add it to your address book - Zadajte štítok pre túto adresu aby ste ju pridali do vašej knihy adries - - - - SendConfirmationDialog - - Yes - Áno - - - - ShutdownWindow - - %1 is shutting down... - %1 sa vypína... - - - Do not shut down the computer until this window disappears. - Nevypínajte počítač pokým toto okno nezmizne. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Podpisy - Podpísať / overiť Správu - - - &Sign Message - &Podpísať Správu - - - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Môžete podpísať správy / dohody s vašimi adresami, aby ste dokázali, že môžete obdržať Bitcoiny ktoré tam boli zaslané. Buďte opatrný a nikdy nepodpodpisujte nič náhodné alebo nejasné, kedže phishing útoky sa vás môžu pokúsiť naviesť na podpísanie vašej indentity. Podpisujte len podrobné vyhlásenia s ktorými súhlasíte. - - - The Bitcoin address to sign the message with - Bitcoin adresa na podpísanie správy - - - Choose previously used address - Vyberte si predchádzajcu použitú adresu - - - Alt+A - Alt+A - - - Paste address from clipboard - Prilepiť adresu zo schránky - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Tu vložte správu ktorú chcete podpísať - - - Signature - Podpis - - - Copy the current signature to the system clipboard - Skopírovať aktuálny podpis do clipboardu systému - - - Sign the message to prove you own this Bitcoin address - Podpíšte túto správu na overenie vlastníctva tejto Bitcoin adresy - - - Sign &Message - Podpísať &Správu - - - Reset all sign message fields - Resetovať všetky políčka s podpisovaním správy - - - Clear &All - Vymazať &Všetko - - - &Verify Message - &Overiť správu - - - Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! - Vložte adresu príjemcu a správu (uistite sa, že presne kopírujete ukončenia riadkov, medzery, odseky atď.) a podpis pre potvrdenie správy. Buďte opatrní a nedomýšľajte si viac než je uvedené v samotnej podpísanej správe a môžete sa tak vyhnúť podvodu Man-in-the-middle útokom. Poznámka: Toto len potvrdzuje, že podpisujúca strana môže prijímať na tejto adrese, nepotvrdzuje to vlastníctvo žiadnej transakcie! - - - The Bitcoin address the message was signed with - Bitcoin adresa s ktorou bola táto správa podpísaná - - - Verify the message to ensure it was signed with the specified Bitcoin address - Overte správu aby ste sa uistili že bola podpísaná so špecifickou Bitcoin adresou - - - Verify &Message - Overiť &Správu - - - Reset all verify message fields - Resetovať všetky políčka overenia správy - - - Click "Sign Message" to generate signature - Kliknite na ''Podpísať Správu'' na vygenerovanie podpisu. - - - The entered address is invalid. - Zadaná adresa je nesprávna. - - - Please check the address and try again. - Prosím skontrolujte adresu a skúste to znova. - - - The entered address does not refer to a key. - Zadaná adresa neodkazuje na kľúč. - - - Wallet unlock was cancelled. - Odomknutie peňaženky bolo zatvorené. - - - Private key for the entered address is not available. - Súkromný kľúč pre zadanú adresu nie je dostupný. - - - Message signing failed. - Podpísanie správy zlyhalo. - - - Message signed. - Správa bola podpísaná. - - - The signature could not be decoded. - Podpis nemohol byť dekódovaný. - - - Please check the signature and try again. - Prosím skontrolujte podpis a skúste to znova. - - - The signature did not match the message digest. - Podpis sa nezhoduje s výťahom zo správy. - - - Message verification failed. - Overenie správy zlyhalo. - - - Message verified. - Správa overená. - - - - SplashScreen - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - Otvorené ešte %n blokovOtvorené ešte %n blokovOtvorené ešte %n blokovOtvorené ešte %n blokov - - - Open until %1 - Otvorené do %1 - - - conflicted with a transaction with %1 confirmations - stretnutie s transakciou s %1 potvrdeniami - - - 0/unconfirmed, %1 - 0/nepotvrdené, %1 - - - in memory pool - v memory poole - - - not in memory pool - nenachádza sa v memory poole - - - abandoned - opustené - - - %1/unconfirmed - %1/nepotvrdené - - - %1 confirmations - %1 potvrdení - - - Status - Status - - - Date - Dátum - - - Source - Zdroj - - - Generated - Generované - - - From - Z - - - unknown - neznáme - - - To - Do - - - own address - vlastná adresa - - - watch-only - len na sledovanie - - - label - štítok - - - Credit - Kredit - - - matures in %n more block(s) - Vyzrie o %n blokovVyzrie o %n blokovVyzrie o %n blokovVyzrie o %n blokov - - - not accepted - neprijaté - - - Debit - Dlh - - - Total debit - Dlh spolu - - - Total credit - Kredit spolu - - - Transaction fee - Transakčný poplatok - - - Net amount - Čistá čiastka - - - Message - Správa - - - Comment - Komentár - - - Transaction ID - ID transakcie - - - Transaction total size - Celková veľkosť transakcie - - - Transaction virtual size - Virtuálna veľkosť transakcie - - - Output index - Výstupný index - - - Merchant - Obchodník - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Vygenerované mince musia vyzrieť %1 blokov kým môžu byť minuté. Keď ste vytvorili tento blok tak bol odoslaný do siete aby sa pridal do blockchainu. Keď sa nedostane do reťaze tak sa neho stav zmení na ''Zamietnutý'' a nebude sa dať míňať. Toto sa môže príležitostne stať keď iný uzol vygeneruje block pár sekúnd prev vaším. - - - Debug information - Informácie o ladení - - - Transaction - Transakcia - - - Inputs - Vstupy - - - Amount - Čiastka - - - true - pravda - - - false - nepravda - - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Táto tabuľa ukazuje detailný popis transakcie - - - Details for %1 - Detaily pre %1 - - - - TransactionTableModel - - Date - Dátum - - - Type - Typ - - - Label - Štítok - - - Open for %n more block(s) - Otvorené ešte %n blokovOtvorené ešte %n blokovOtvorené ešte %n blokovOtvorené ešte %n blokov - - - Open until %1 - Otvorené do %1 - - - Unconfirmed - Nepotvrdené - - - Abandoned - Opustené - - - Confirming (%1 of %2 recommended confirmations) - Potvrdzujem (%1 z %2 odporúčaných potvrdení) - - - Confirmed (%1 confirmations) - Potvrdené (%1 potvrdení) - - - Conflicted - Konfliktné - - - Immature (%1 confirmations, will be available after %2) - Nevyzrelý (%1 potvrdení, bude dostupné po %2 potvrdeniach1ň - - - Generated but not accepted - Vygenerované ale neprijaté - - - Received with - Prijaté s - - - Received from - Prijaté od - - - Sent to - Odoslané do - - - Payment to yourself - Platba pre samého seba - - - Mined - Vyťažené - - - watch-only - len na sledovanie - - - (n/a) - (nie je dostupné) - - - (no label) - (žiadny štítok) - - - Transaction status. Hover over this field to show number of confirmations. - Status transakcie. Namierte kurzor na toto pole aby ste videli počet potvrdení. - - - Date and time that the transaction was received. - Dátum a čas prijata transakcie. - - - Type of transaction. - Typ transakcie. - - - Whether or not a watch-only address is involved in this transaction. - Či sa táto adresa určená len na sledovanie zapojila v tejto transakcii alebo nie. - - - User-defined intent/purpose of the transaction. - Užívateľom definovaný zámer/ účel transakcie. - - - Amount removed from or added to balance. - Čiastka zmazaná alebo pridaná do zostatku. - - - - TransactionView - - All - Všetko - - - Today - Dnes - - - This week - Tento týždeň - - - This month - Tento mesiac - - - Last month - Minulý mesiac - - - This year - Tento rok - - - Range... - Rozsah... - - - Received with - Doručené s - - - Sent to - Odoslané do - - - To yourself - Sebe - - - Mined - Vyťažené - - - Other - Ostatné - - - Enter address, transaction id, or label to search - Zadajte adresu, ID transakcie alebo štítok aby ste mohli vyhľadávať - - - Min amount - Minimálna čiastka - - - Abandon transaction - Opustiť transakciu - - - Increase transaction fee - Zvýšiť transakčný poplatok - - - Copy address - Kopírovať adresu - - - Copy label - Kopírovať štítok - - - Copy amount - Kopírovať čiastku - - - Copy transaction ID - Kopírovať ID transakcie - - - Copy raw transaction - Skopírovať raw transakciu - - - Copy full transaction details - Skopírovať všetky detaily transakcie - - - Edit label - Upraviť štítok - - - Show transaction details - Ukázať detaily transakcie - - - Export Transaction History - Exportovať Históriu Transakcií - - - Comma separated file (*.csv) - Čiarkou oddelené zložky (*.csv) - - - Confirmed - Potvrdenie - - - Watch-only - Len sledovať - - - Date - Dátum - - - Type - Typ - - - Label - Štítok - - - Address - Adresa - - - ID - ID - - - Exporting Failed - Exportovanie zlyhalo - - - There was an error trying to save the transaction history to %1. - Nastala chyba pri ukladaní histórie transakcií do %1. - - - Exporting Successful - Exportovanie úspešné. - - - The transaction history was successfully saved to %1. - História transakcií bola úspešne uložená do %1. - - - Range: - Rozsah... - - - to - do - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Jednotka v ktorej chete zobrazovať čiastky. Kliknite ak si chcete vybrať inú jednotku. - - - - WalletFrame - - No wallet has been loaded. - Nebola načítaná žiadna peňaženka. - - - - WalletModel - - Send Coins - Poslať mince - - - Fee bump error - Chyba pri zvyšovaní transakčného poplatku - - - Increasing transaction fee failed - Zvýšnie transakčného poplatku zlyhalo - - - Do you want to increase the fee? - Chcete zvýšiť transakčný poplatok? - - - Current fee: - Aktuálny transakčný poplatok: - - - Increase: - Navýšenie: - - - New fee: - Nový transakčný poplatok: - - - Confirm fee bump - Potvrdiť zvýšnie transakčného poplatku - - - Can't sign transaction. - Nemožno podpísať transakciu. - - - Could not commit transaction - Nemožno uskutočniť transakciu - - - - WalletView - - &Export - &Exportovať - - - Export the data in the current tab to a file - Exportovať dáta z aktuálnej karty do zložky - - - Backup Wallet - Zálohovať peňaženku - - - Wallet Data (*.dat) - Dáta Peňaženky (*.dat) - - - Backup Failed - Zálohovanie zlyhalo - - - There was an error trying to save the wallet data to %1. - Nastala chyba pri ukladaní dát peňaženky do %1. - - - Backup Successful - Zálohovanie úspešné - - - The wallet data was successfully saved to %1. - Dáta peňaženky boli úspešne uložené do %1. - - - Cancel - Zatvoriť - - - - bitcoin-core - - Distributed under the MIT software license, see the accompanying file %s or %s - Distribuované pod licenciou softvéru MIT, pozrite si sprevádzajúci súbor %s alebo %s - - - Prune configured below the minimum of %d MiB. Please use a higher number. - Zmenšenie nastavené pod minimálnu hodnotu %d MiB. Prosím použite vyššiu hodnotu. - - - Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) - Zmenšenie: posledná synchronizácia peňaženky prekračuje zmenšené dáta. Musíte použiť -reindex (opäť stiahnuť celý blockchain pre prípad zmenšeného uzla) - - - Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. - Prehľadnia nie v zmenšenom uzle možné. Butete musieť použiť -reindex, ktorý opäť stiahne celý blockchain. - - - Error: A fatal internal error occurred, see debug.log for details - Chyba: Nastala fatálna vnútorná chyba, pozrite si debug.log pre viac informácií - - - Pruning blockstore... - Zmenšujem blockstore... - - - Unable to start HTTP server. See debug log for details. - Nebolo možné spustiť HTTP server. Pozrite si debug log pre viac informácií. - - - Bitcoin Core - Bitcoin Core - - - The %s developers - Vývojári %s - - - Cannot obtain a lock on data directory %s. %s is probably already running. - Nebolo možné získať zámok v dátovom adresári %s. %s Je už pravdepodobne zapnuté. - - - Cannot provide specific connections and have addrman find outgoing connections at the same. - Nemožno zadať konkrétne spojenie a zároveň mať nastavený addrman pre hľadanie odchádzajúcich spojení. - - - Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Chyba pri čítaní %s! Všetky kľúče boli prečítané správne, ale dáta transakcie alebo knihy adries chýbajú alebo sú nesprávne. - - - Group outputs by address, selecting all or none, instead of selecting on a per-output basis. Privacy is improved as an address is only used once (unless someone sends to it after spending from it), but may result in slightly higher fees as suboptimal coin selection may result due to the added limitation (default: %u) - Skupinové výstupy z adresy, pri vybratí všetkých alebo žiadnych adries, namiesto vyberania na báze za výstup. Súkromie je vylepšené keďže adresa je použitá len raz (až na to, keď niekto na túto adresu niečo pošle po míňaní z tejto adresy), ale môže vyústiť v trochu väčšie poplatky keďže suboptimálny výber mincí môže vyústiť v pridanú limitáciu (predvolené: %u) - - - Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. - Prosím skontrolujte si, či má vaš počítač správne nastavený dátum a čas! Ak sú vaše hodiny nesprávne tak %s nebude fungovať tak, ako by malo, - - - Please contribute if you find %s useful. Visit %s for further information about the software. - Prosím prispejte ak %s považujete za užitočné. Navštívte %s pre viac informácií o softwéri, - - - The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct - Databáza blokov obsahuje blok, ktorý vyzerá ako blok z budúcnosti. Toto môže byť zapríčinené zle nastaveným časom a dátumom. Prestavajte databázu blokov len keď si ste istý, že váš čas a dátum je nastavený správne - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Toto je predbežné vydanie - používajte na vaše riziko - nepoužívajte na ťaženie alebo ak ste obchodník, na prijímanie platieb. - - - This is the transaction fee you may discard if change is smaller than dust at this level - Toto je transakčný poplatok ktorý môžete vyhodiť ak je zmena menšia ako úroveň prachu. - - - Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate. - Nebolo možné prehrať blok. Budete musieť prestavať databázu použitím -reindex-chainstate. - - - Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain - Nebolo možné vrátiť databázu do obdobia pred forkom. Budete musieť znovu stiahnuť blockchain. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Upozornenie: Sieť s týmto úplne nesúhlasí! Niektorí ťažiči majú problémy. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Upozornenie: My plne nesúhlasíme so svojimi peermi! Buď budete musieť aktualizovať svoj uzol vy, alebo ostatné uzly. - - - %d of last 100 blocks have unexpected version - %d z posledných 100 blokov má neočakávanú verziu - - - %s corrupt, salvage failed - %s bolo porušené, záchrana zlyhala - - - -maxmempool must be at least %d MB - -maxmempool musí mať minimálne %d MB - - - Change index out of range - Zmena indexu mimo rozsah - - - Copyright (C) %i-%i - Copyright (C) %i-%i - - - Corrupted block database detected - Bola zistená poškodená databáza blokov - - - Do you want to rebuild the block database now? - Chcete prestavať databázu blokov teraz? - - - Error creating %s: You can't create non-HD wallets with this version. - Chyba pri vytváraní %s: Nemôžete vytvoriť nie-HD peňaženku v tejto verzii. - - - Error initializing block database - Chyba pri inicializácii databázy blokov - - - Error initializing wallet database environment %s! - Chyba pri incializácii prostredia %s databázy peňaženky! - - - Error loading %s - Chyba pri načítavaní %s - - - Error loading %s: Private keys can only be disabled during creation - Chyba pri načítavaní %s: Súkromné kľúče môžu byť deaktivované len počas vytvárania - - - Error loading %s: Wallet corrupted - Chyba pri načítavaní %s: Peňaženka poškodená - - - Error loading %s: Wallet requires newer version of %s - Chyba pri načítavaní %s: Peňaženka si vyžaduje novšiu verziu %s - - - Error loading block database - Chyba pri načítavaní databázy blokov - - - Error opening block database - Chyba pri otváraní databázy blokov - - - Error: Disk space is low! - Chyba: Málo miesta na disku! - - - Failed to listen on any port. Use -listen=0 if you want this. - Chyba počúvania na ktoromkoľvek porte. Použi -listen=0 keď chcete urobiť toto. - - - Failed to rescan the wallet during initialization - Zlyhalo prehľadávanie peňaženky počas inicializácie - - - Importing... - Importujem... - - - Incorrect or no genesis block found. Wrong datadir for network? - Bol nájdený poškodený alebo žaidny počiatočný blok. Nesprávne datadir pre sieť? - - - Invalid amount for -%s=<amount>: '%s' - Nesprávna čiastka pre -%s=<amount>:'%s' - - - Invalid amount for -discardfee=<amount>: '%s' - Neplatná čiastka pre -discardfee=<amount>: '%s' - - - Invalid amount for -fallbackfee=<amount>: '%s' - Neplatná čiastka pre -fallbackfee=<amount>:'%s' - - - Specified blocks directory "%s" does not exist. - Špecifikovaný adresár blokov ''%s'' neexistuje. - - - Upgrading txindex database - Vylepšujem databázu txindex - - - Loading P2P addresses... - Načítavam P2P adresy... - - - Loading banlist... - Načítavam zoznam zablokovaných... - - - Not enough file descriptors available. - Nie je k dispozícii dostatok deskriptorov súborov. - - - Prune cannot be configured with a negative value. - Zmenšenie nemôže byť konfigurované s negatívnou hodnotou. - - - Prune mode is incompatible with -txindex. - Mód zmenšenia je nekompatibilný s -txindex - - - Replaying blocks... - Prehrávam bloky... - - - Rewinding blocks... - Pretáčam bloky... - - - The source code is available from %s. - Zdrojový kód je dostupný z %s. - - - Transaction fee and change calculation failed - Kalkulácia transakčného poplatku a zmeny zlyhala. - - - Unable to bind to %s on this computer. %s is probably already running. - Nebolo možné spojiť s %s na tomto počítači. %s už pravdepodoble je zapnuté. - - - Unable to generate keys - Nebolo možné vygenerovať kľúče. - - - Unsupported argument -benchmark ignored, use -debug=bench. - Nepodporovaný argument -benchmark bol ignorovaný, použite -debug=bench. - - - Unsupported argument -debugnet ignored, use -debug=net. - Nepodporovaný argument -debugnet bol ignorovaný, použite -debug=net. - - - Unsupported argument -tor found, use -onion. - Našiel sa nepodporovaný argument -tor , použite -onion. - - - Unsupported logging category %s=%s. - Nepodporovaná logovacia kategória %s=%s. - - - Upgrading UTXO database - Vylepšujem UTXO databázu - - - User Agent comment (%s) contains unsafe characters. - Komentár používateľského agenta (%s) obsahuje nebezpečné znaky. - - - Verifying blocks... - Overujem bloky... - - - Error: Listening for incoming connections failed (listen returned error %s) - Chyba: Počúvanie prichádzajúcich spojení zlyhalo (vrátená chyba je %s) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - transactions) Neplatná suma pre -maxtxfee=<amount>: '%s' (aby sa transakcia nezasekla, minimálny transakčný poplatok musí byť aspoň %s) - - - The transaction amount is too small to send after the fee has been deducted - Čiastka transakcie je po odčítaní transakčného poplatku veľmi malá - - - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain - Musíte znova prestavať databázu použitím -reindex aby ste sa mohli vrátiť to nezmenšeného módu. Toto stiahne celý blockchain od znova - - - Error loading %s: You can't disable HD on an already existing HD wallet - hyba pri načítavaní %s: nemôžeš vypnúť HD už existujúcej HD peňaženky - - - Error reading from database, shutting down. - Chyba pri čítaní z databázy, vypína sa. - - - Error upgrading chainstate database - Chyba pri aktualizovaní chainstate databázy - - - Information - Informácie - - - Invalid -onion address or hostname: '%s' - Nesprávna -onion adresa alebo hostname: '%s' - - - Invalid -proxy address or hostname: '%s' - Nesprávna -proxy adresa alebo hostname: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Neplatná čiastka pre -paytxfee=<amount>: '%s' (musí byť aspoň %s) - - - Invalid netmask specified in -whitelist: '%s' - Zadaná neplatná netmask vo -whitelist: '%s' - - - Need to specify a port with -whitebind: '%s' - Je potrebné zadať port s -whitebind: '%s' - - - Reducing -maxconnections from %d to %d, because of system limitations. - Zredukované -maxconnections z %d na %d kvôli systémovým obmedzeniam. - - - Signing transaction failed - Podpísanie transacie zlyhalo - - - Specified -walletdir "%s" does not exist - Špecifikované -walletdir ''%s'' neexistuje - - - Specified -walletdir "%s" is a relative path - Špecifikovaná -walletdir ''%s'' je príbuzná cesta - - - Specified -walletdir "%s" is not a directory - Špecifikované -walletdir ''%s'' nie je adresár - - - The transaction amount is too small to pay the fee - Transakčná čiastka je veľmi malá na zaplatenie poplatku - - - This is experimental software. - Toto je experimentálny softwér. - - - Transaction amount too small - Transakčná čiastka je veľmi malá - - - Transaction too large for fee policy - Transakcia je príliš veľká pre aktuálnu politiku poplatkov - - - Transaction too large - Transakcia je veľmi veľká - - - Unable to bind to %s on this computer (bind returned error %s) - Na tomto počítači sa nedá vytvoriť väzba %s (vytvorenie väzby vrátilo chybu %s) - - - Unable to generate initial keys - Nebolo možné vytvoriť počiatočné kľúče - - - Verifying wallet(s)... - Overujem peňaženku(y)... - - - Wallet %s resides outside wallet directory %s - Peňaženka %s sa nachádza mimo adresára s peňaženkou %s - - - Warning - Upozornenie - - - Warning: unknown new rules activated (versionbit %i) - Upozornenie: boli aktivované nové, neznáme pravidlá (versionbit %i) - - - Zapping all transactions from wallet... - Zmazať všetky transakcie z peňaženky... - - - -maxtxfee is set very high! Fees this large could be paid on a single transaction. - -maxtxfee je nastavená veľmi vysoko! Tak veľké polatky by boli zapatené na jedinú transakciu, - - - Error loading %s: You can't enable HD on an already existing non-HD wallet - Chyba pri načítavaní %s: Nemôžete povoliť HD na už existujúcich non-HD peňaženkách - - - This is the transaction fee you may pay when fee estimates are not available. - Toto je transakčný poplatok ktorý môžete zaplatiť keď odhady poplatkov nie sú dostupné. - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Tento produkt zahrňuje softwér vyvinutý projektom OpenSSL pre použite v OpenSSL Toolkite %s a kryptografický program od Erika Younga a program UPnP od Thomasa Bernarda. - - - Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. - Celková dĺžka verzie sieťového reťazca (%i) prekračuje maximálnu dĺžku (%i). Znížte počet a veľkosť komentárov. - - - Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Boli nájdené nepodporované -socks argumenty. Nastavenie SOCKS verzie už nie je možné, sú podporované len SOCKS5 proxy. - - - Unsupported argument -whitelistalwaysrelay ignored, use -whitelistrelay and/or -whitelistforcerelay. - Nepodporovaný argument -whitelistalwaysrelay ignorovaný, použite -whitelistrelay a/alebo -whitelistforcerelay. - - - Warning: Unknown block versions being mined! It's possible unknown rules are in effect - Upozornenie: Práve sa ťaží neznáma verzia bloku! Platia jeho možné neznáme pravidlá - - - Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. - Upozornenie: Súbor s peňaženkou bol poškodený, dáta boli zachránené. Originál %s uložený ako %s v %s; keď je váš zostatok alebo transakcie zobrazený nesprávne tak by ste mali obnoviť peňaženku zo zálohy. - - - %s is set very high! - %s je nastavené veľmi vysoko! - - - Error loading wallet %s. Duplicate -wallet filename specified. - Chyba pri načítavaní peňaženky %s. Zadaný duplicitný názov súboru -wallet. - - - Keypool ran out, please call keypoolrefill first - Vyčerpal sa keypool, najprv prosím zavolajte keypoolrefill - - - Starting network threads... - Spúšťam sieťové vlákna... - - - The wallet will avoid paying less than the minimum relay fee. - Peňaženka zabráni zaplateniu menšej sumy ako je minimálny poplatok. - - - This is the minimum transaction fee you pay on every transaction. - Toto je minimálny transakčný poplatok ktorý musíte zaplatiť za každú transakciu - - - This is the transaction fee you will pay if you send a transaction. - Toto je transakčný poplatok ktorý zaplatíte keď odošlete transakciu. - - - Transaction amounts must not be negative - Transakčná čiastka nemôže byť záporná. - - - Transaction has too long of a mempool chain - Transakcia má v mempoole príliš dlhý reťazec - - - Transaction must have at least one recipient - Transakcia musí mať aspoň jedného príjemcu - - - Unknown network specified in -onlynet: '%s' - Neznáma sieť špcifikovaná v -onlynet: '%s' - - - Insufficient funds - Nedostatočné prostriedky - - - Can't generate a change-address key. Private keys are disabled for this wallet. - Nemožno vygenerovať kľúč na zmenu adresy. Súkromné kľúče sú v tejto peňaženke zakázané. - - - Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified. - Nemožno vylepšiť non-HD oddelenú peňaženku bez aktualizovania na podporu keypoolu pre oddelením. Prosím použite -upgradewallet=169900 alebo -upgradewallet bez špecifikovanej verzie. - - - Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee. - Odhad poplatku zlyhal. Fallbackfee je zablokovaný. Počkajte niekoľko blokov alebo povoľte -fallbackfee - - - Warning: Private keys detected in wallet {%s} with disabled private keys - Upozornenie: Súkromné kľúče zistené v peňaženke {%s} so zakázanými súkromnými kľúčmi. - - - Cannot write to data directory '%s'; check permissions. - Nemožno písať do dátového adresára '%s'; skontrolujte povolenia. - - - Loading block index... - Načítavam index blokov... - - - Loading wallet... - Načítavam peňaženku... - - - Cannot downgrade wallet - Nemožno degradovať peňaženku - - - Rescanning... - Prehľadávam... - - - Done loading - Načítavanie dokončené - - - Error - Chyba - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_sl.ts b/src/qt/locale/bitcoin_sl.ts index dd003dda88..82d16acb91 100644 --- a/src/qt/locale/bitcoin_sl.ts +++ b/src/qt/locale/bitcoin_sl.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. To so vaši Bitcoin naslovi za pošiljanje. Pred pošiljanjem vedno preverite količino in prejemnikov naslov. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + To so vaši naslovi za prejemanje Bitcoinov. Če želite ustvariti nov naslov za prejemanje, uporabite gumb za ustvarjanje novih naslovov v zavihku "prejemanje". + &Copy Address &Kopiraj naslov @@ -179,6 +183,10 @@ Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. Vnesite novo geslo za denarnico. <br/>Prosimo, uporabite geslo z vsaj <b>10 ali več naključnimi simboli</b>, ali vsaj osmimi besedami.<b> + + Enter the old passphrase and new passphrase for the wallet. + Vnesite staro geslo in novo geslo za denarnico. + Wallet to be encrypted Denarnica, ki bo zašifrirana @@ -802,6 +810,14 @@ Encrypt Wallet Šifriraj denarnico + + Disable Private Keys + Onemogoči zasebne ključe + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Ustvari prazno denarnico. Prazne denarnice ne vključujejo zasebnih ključev ali skript. Pozneje lahko uvozite zasebne ključe ali vnesete HD seed. + Make Blank Wallet Ustvari prazno denarnico @@ -3444,6 +3460,10 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Initialization sanity check failed. %s is shutting down. Začetni sanity check neuspešen. %s se zapira. + + Invalid P2P permission: '%s' + Neveljavna pooblastila P2P: '%s' + Invalid amount for -%s=<amount>: '%s' Neveljavna količina za -%s=<amount>: '%s' diff --git a/src/qt/locale/bitcoin_sl_SI.ts b/src/qt/locale/bitcoin_sl_SI.ts deleted file mode 100644 index 08b00984c0..0000000000 --- a/src/qt/locale/bitcoin_sl_SI.ts +++ /dev/null @@ -1,1913 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Desni klik za urejanje naslovov ali oznak - - - Create a new address - Ustvari nov naslov - - - &New - &Novo - - - Copy the currently selected address to the system clipboard - Kopiraj trenutno izbrani naslov v odložišče - - - &Copy - &Kopiraj - - - C&lose - &Zapri - - - Delete the currently selected address from the list - Izbriši trenutno označeni naslov iz seznama - - - Enter address or label to search - Iščite po naslovu ali oznaki - - - Export the data in the current tab to a file - Izvozi podatke v trenutnem zavihku v datoteko - - - &Export - &Izvozi - - - &Delete - I&zbriši - - - Choose the address to send coins to - Izberi naslov prejemnika kovancev - - - Choose the address to receive coins with - Izberi naslov, na katerega želiš prejeti kovance - - - C&hoose - &Izberi - - - Sending addresses - Imenik naslovov za pošiljanje - - - Receiving addresses - Imenik naslovov za prejemanje - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - To so vaši Bitcoin naslovi za pošiljanje. Pred pošiljanjem vedno preverite količino in prejemnikov naslov. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - To so vaši Bitcoin naslovi za prejemanje. Priporočeno je, da za vsako transakcijo uporabite nov naslov. - - - &Copy Address - &Kopiraj naslov - - - Copy &Label - Kopiraj &oznako - - - &Edit - &Uredi - - - Export Address List - Izvozi seznam naslovov - - - Comma separated file (*.csv) - Podatki ločenimi z vejico (*.csv) - - - Exporting Failed - Podatkov ni bilo mogoče izvoziti. - - - - AddressTableModel - - Label - Oznaka - - - Address - Naslov - - - (no label) - (brez oznake) - - - - AskPassphraseDialog - - Passphrase Dialog - Vnos gesla - - - Enter passphrase - Vnesite geslo - - - New passphrase - Novo geslo - - - Repeat new passphrase - Ponovite novo geslo - - - Show password - Pokaži geslo - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Vnesite novo geslo za dostop do denarnice. Prosimo, da uporabite geslo sestavljeno iz <b>desetih ali več</b> naključnih znakov ali <b>osmih ali večih</b> besed. - - - Encrypt wallet - Šifriraj denarnico - - - This operation needs your wallet passphrase to unlock the wallet. - To dejanje zahteva geslo za odklepanje vaše denarnice. - - - Unlock wallet - Odkleni denarnico - - - This operation needs your wallet passphrase to decrypt the wallet. - To dejanje zahteva geslo za dešifriranje vaše denarnice. - - - Decrypt wallet - Odšifriraj denarnico - - - Change passphrase - Spremeni geslo - - - Enter the old passphrase and new passphrase to the wallet. - Vnesite staro in novo geslo denarnice. - - - Confirm wallet encryption - Potrdi šifriranje denarnice - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Opozorilo: V primeru izgube gesla šifrirane denarnice, boste <b>IZGUBILI VSE SVOJE BITCOINE</b>! - - - Are you sure you wish to encrypt your wallet? - Ali ste prepričani, da želite šifrirati svojo denarnico? - - - Wallet encrypted - Denarnica šifrirana - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 se bo zaprl, da bi dokončal postopek šifriranja. Zapomnite si, da šifriranje vaše denarnice vaših ne more popolnoma zaščititi vaših bitcoinov pred krajami zlonamernih programov, ki bi lahko bili nameščeni na vašem računalniku. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - POMEMBNO: Vse starejše varnostne kopije denarnice je potrebno zamenjati z novoizdelano, šifrirano, varnostno kopijo. Zaradi varnosti bodo stare varnostne kopije postale neuporabne takoj, ko začnete uporabljati novo, šifrirano denarnico. - - - Wallet encryption failed - Šifriranje denarnice ni uspelo - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Šifriranje denarnice ni uspelo zaradi notranje napake. Vaša denarnica ni bila šifrirana. - - - The supplied passphrases do not match. - Navedeni gesli se ne ujemata. - - - Wallet unlock failed - Denarnice ni bilo mogoče odkleniti. - - - The passphrase entered for the wallet decryption was incorrect. - Geslo za dešifriranje denarnice, ki ste ga vnesli, ni pravilno. - - - Wallet decryption failed - Dešifriranje denarnice ni uspelo - - - Wallet passphrase was successfully changed. - Geslo za dostop do denarnice je bilo uspešno spremenjeno. - - - Warning: The Caps Lock key is on! - Opozorilo: Vključena je tipka Caps Lock! - - - - BanTableModel - - IP/Netmask - IP/Netmaska - - - Banned Until - Prepoved do - - - - BitcoinGUI - - Sign &message... - Podpiši &sporočilo ... - - - Synchronizing with network... - Dohitevam omrežje ... - - - &Overview - Pre&gled - - - Node - Vozlišče - - - Show general overview of wallet - Oglejte si splošne informacije o vaši denarnici - - - &Transactions - &Transakcije - - - Browse transaction history - Brskajte po zgodovini transakcij - - - E&xit - I&zhod - - - Quit application - Ustavite program - - - &About %1 - &O nas%1 - - - Show information about %1 - Prikaži informacije o %1 - - - About &Qt - O &Qt - - - Show information about Qt - Oglejte si informacije o Qt - - - &Options... - &Možnosti ... - - - Modify configuration options for %1 - Spremeni možnosti konfiguracije za %1 - - - &Encrypt Wallet... - &Šifriraj denarnico ... - - - &Backup Wallet... - Shrani &varnostno kopijo denarnice ... - - - &Change Passphrase... - &Spremeni geslo ... - - - &Sending addresses... - Naslovi za po&šiljanje ... - - - &Receiving addresses... - Naslovi za &prejemanje... - - - Open &URI... - Odpri &URI ... - - - Wallet: - Denarnica: - - - default wallet - privzeta denarnica - - - Click to disable network activity. - Kliknite, da onemogočite omrežno aktivnosti. - - - Network activity disabled. - Omrežna aktivnost onemogočena. - - - Click to enable network activity again. - Kliknite, da ponovno vključite omrežno aktivnost. - - - Syncing Headers (%1%)... - Sinhronizacija glav (%1%)... - - - Reindexing blocks on disk... - Poustvarjam kazalo blokov na disku ... - - - Proxy is <b>enabled</b>: %1 - Namestniški strežnik je omogočen</b>: %1 - - - Send coins to a Bitcoin address - Izvedite plačilo na naslov Bitcoin - - - Backup wallet to another location - Shranite varnostno kopijo svoje denarnice na drugo lokacijo - - - Change the passphrase used for wallet encryption - Spremenite geslo za šifriranje denarnice - - - &Debug window - &Razhroščevalno okno - - - Open debugging and diagnostic console - Odprite razhroščevalno in diagnostično konzolo - - - &Verify message... - &Preveri sporočilo ... - - - Bitcoin - Bitcoin - - - Wallet - Denarnica - - - &Send - &Pošlji - - - &Receive - P&rejmi - - - &Show / Hide - &Prikaži / Skrij - - - Show or hide the main Window - Prikaži ali skrij glavno okno - - - Encrypt the private keys that belong to your wallet - Šifrirajte zasebne ključe, ki se nahajajo v denarnici - - - Sign messages with your Bitcoin addresses to prove you own them - Podpišite poljubno sporočilo z enim svojih naslovov Bitcoin, da prejemniku sporočila dokažete, da je ta naslov v vaši lasti. - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Preverite, če je bilo prejeto sporočilo podpisano z določenim naslovom Bitcoin - - - &File - &Datoteka - - - &Settings - &Nastavitve - - - &Help - &Pomoč - - - Tabs toolbar - Orodna vrstica zavihkov - - - Request payments (generates QR codes and bitcoin: URIs) - Zahtevajte plačilo (ustvarite zahtevek s kodo QR in URI tipa bitcoin:) - - - Show the list of used sending addresses and labels - Preglejte in uredite seznam naslovov, na katere ste kdaj poslali plačila - - - Show the list of used receiving addresses and labels - Preglejte in uredite seznam naslovov, na katere ste kdaj prejeli plačila - - - Open a bitcoin: URI or payment request - Izvedite plačilo iz zahtevka v datoteki ali iz URI tipa bitcoin: - - - &Command-line options - Opcije &ukazne vrstice - - - %n active connection(s) to Bitcoin network - %n aktivna povezava v omrežje Bitcoin%n aktivni povezavi v omrežje Bitcoin%n aktivne povezave v omrežje Bitcoin%n aktivnih povezav v omrežje Bitcoin - - - Indexing blocks on disk... - Indeksirani bloki na disku ... - - - Processing blocks on disk... - Obdelava blokov na disku ... - - - Processed %n block(s) of transaction history. - %n obdelan blok zgodovine transakcij.%n obdelana bloka zgodovine transakcij.%n obdelani bloki zgodovine transakcij.%n obdelanih blokov zgodovine transakcij. - - - %1 behind - imam še %1 zaostanka - - - Last received block was generated %1 ago. - Zadnji prejeti blok je star %1. - - - Transactions after this will not yet be visible. - Novejše transakcije še ne bodo vidne. - - - Error - Napaka - - - Warning - Opozorilo - - - Information - Informacije - - - Up to date - Posodobljeno - - - %1 client - %1 odjemalec - - - Catching up... - Dohitevam omrežje ... - - - Date: %1 - - Datum: %1 - - - - Amount: %1 - - Znesek: %1 - - - - Type: %1 - - Vrsta: %1 - - - - Label: %1 - - Oznaka: %1 - - - - Address: %1 - - Naslov: %1 - - - - Sent transaction - Odlivi - - - Incoming transaction - Prilivi - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Denarnica je <b>šifrirana</b> in trenutno <b>odklenjena</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Denarnica je <b>šifrirana</b> in trenutno <b>zaklenjena</b> - - - - CoinControlDialog - - Coin Selection - Izbira vhodnih kovancev - - - Quantity: - Št.vhodov: - - - Bytes: - Št.bajtov: - - - Amount: - Znesek: - - - Fee: - Provizija: - - - Dust: - Prah: - - - After Fee: - Po proviziji: - - - Change: - Vračilo: - - - (un)select all - izberi vse/nič - - - Tree mode - Drevesni prikaz - - - List mode - Seznam - - - Amount - Znesek - - - Received with label - Oznaka priliva - - - Received with address - Naslov priliva - - - Date - Datum - - - Confirmations - Potrditve - - - Confirmed - Potrjeno - - - (no label) - (brez oznake) - - - - EditAddressDialog - - Edit Address - Uredi naslov - - - &Label - &Oznaka - - - The label associated with this address list entry - Oznaka, pod katero je spodnji naslov naveden v vašem imeniku naslovov. - - - The address associated with this address list entry. This can only be modified for sending addresses. - Naslov tega vnosa v imeniku. Spremeniti ga je mogoče le pri vnosih iz imenika naslovov za pošiljanje. - - - &Address - &Naslov - - - - FreespaceChecker - - A new data directory will be created. - Ustvarjena bo nova podatkovna mapa. - - - name - ime - - - Directory already exists. Add %1 if you intend to create a new directory here. - Mapa že obstaja. Dodajte %1, če tu želite ustvariti novo mapo. - - - Path already exists, and is not a directory. - Pot že obstaja, vendar ni mapa. - - - Cannot create data directory here. - Na tem mestu ni mogoče ustvariti nove mape. - - - - HelpMessageDialog - - version - različica - - - (%1-bit) - (%1-bit) - - - About %1 - O %1 - - - Command-line options - Možnosti ukazne vrstice - - - - Intro - - Welcome - Dobrodošli - - - Welcome to %1. - Dobrodošli v %1 - - - Use the default data directory - Uporabi privzeto podatkovno mapo - - - Use a custom data directory: - Uporabi to podatkovno mapo: - - - Bitcoin - Bitcoin - - - Error: Specified data directory "%1" cannot be created. - Napaka: Ni mogoče ustvariti mape "%1". - - - Error - Napaka - - - %n GB of free space available - %n GiB prostega prostora na voljo%n GiB prostega prostora na voljo%n GiB prostega prostora na voljo%n GiB prostega prostora na voljo - - - (of %n GB needed) - (od potrebnih %n GiB)(od potrebnih %n GiB)(od potrebnih %n GiB)(od potrebnih %n GiB) - - - - ModalOverlay - - Form - Oblika - - - Last block time - Čas zadnjega bloka - - - Hide - Skrij - - - - OpenURIDialog - - Open URI - Odpri URl - - - Open payment request from URI or file - Vnesite zahtevek za plačilo iz URI ali pa ga naložite iz datoteke - - - URI: - URI: - - - Select payment request file - Izbiranje datoteke z zahtevkom za plačilo - - - - OptionsDialog - - Options - Možnosti - - - &Main - &Glavno - - - Size of &database cache - Velikost &predpomnilnika podatkovne baze - - - MB - MiB - - - Number of script &verification threads - Število programskih &niti za preverjanje - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Naslov IP posredniškega strežnika (npr. IPv4: 127.0.0.1 ali IPv6: ::1) - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Ko zaprete glavno okno programa, bo program tekel še naprej, okno pa bo zgolj minimirano. Program v tem primeru ustavite tako, da v meniju izberete ukaz Izhod. - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Naslovi URL tretjih oseb (npr. raziskovalec blokov), ki bodo navedeni v kontekstnem meniju seznama transakcij. Niz %s iz naslova URL je nadomeščen s hash vrednostjo transakcije. Več zaporednih naslovov URL je med seboj ločenih z znakom |. - - - Active command-line options that override above options: - Aktivne opcije iz ukazne vrstice, ki preglasijo zgornje opcije: - - - Reset all client options to default. - Ponastavi vse nastavitve programa na privzete vrednosti. - - - &Reset Options - &Ponastavi nastavitve - - - &Network - &Omrežje - - - (0 = auto, <0 = leave that many cores free) - (0 = samodejno, <0 = toliko procesorskih jeder naj ostane prostih) - - - W&allet - &Denarnica - - - Expert - Napredne možnosti - - - Enable coin &control features - Omogoči upravljanje s kovanci - - - If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Če onemogočite trošenje drobiža iz še nepotrjenih transakcij, potem vrnjenega drobiža ne morete uporabiti, dokler plačilo ni vsaj enkrat potrjeno. Ta opcija vpliva tudi na izračun stanja sredstev. - - - &Spend unconfirmed change - Omogoči &trošenje drobiža iz še nepotrjenih plačil - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Program samodejno odpre ustrezna vrata na usmerjevalniku. To deluje samo, če vaš usmerjevalnik podpira in ima omogočen UPnP. - - - Map port using &UPnP - Preslikaj vrata z uporabo &UPnP - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Poveži se v omrežje Bitcoin preko posredniškega strežnika SOCKS5. - - - &Connect through SOCKS5 proxy (default proxy): - &Poveži se preko posredniškega strežnika SOCKS5 (privzeti strežnik): - - - Proxy &IP: - Naslov &IP posredniškega strežnika: - - - &Port: - &Vrata: - - - Port of the proxy (e.g. 9050) - Vrata posredniškega strežnika (npr. 9050) - - - &Window - O&kno - - - Show only a tray icon after minimizing the window. - Po minimiranju okna samo prikaži ikono programa v pladnju. - - - &Minimize to the tray instead of the taskbar - &Minimiraj na pladenj namesto na opravilno vrstico - - - M&inimize on close - Ob zapiranju okno zgolj m&inimiraj - - - &Display - &Prikaz - - - User Interface &language: - &Jezik uporabniškega vmesnika: - - - &Unit to show amounts in: - &Enota za prikaz zneskov: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Izberite privzeto mersko enoto za prikaz v uporabniškem vmesniku in pri pošiljanju kovancev. - - - Whether to show coin control features or not. - Omogoči dodatno možnost podrobnega nadzora nad posameznimi kovanci v transakcijah. - - - &OK - &Potrdi - - - &Cancel - &Prekliči - - - default - privzeto - - - none - nič - - - Confirm options reset - Potrditev ponastavitve - - - Client restart required to activate changes. - Za uveljavitev sprememb je potreben ponoven zagon programa. - - - Client will be shut down. Do you want to proceed? - Program bo zaustavljen. Želite nadaljevati z izhodom? - - - Error - Napaka - - - This change would require a client restart. - Ta sprememba zahteva ponoven zagon programa. - - - The supplied proxy address is invalid. - Vnešeni naslov posredniškega strežnika ni veljaven. - - - - OverviewPage - - Form - Oblika - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Prikazani podatki so morda zastareli. Program ob vzpostavitvi povezave samodejno sinhronizira denarnico z omrežjem Bitcoin, a trenutno ta proces še ni zaključen. - - - Watch-only: - Opazovano: - - - Available: - Na voljo: - - - Your current spendable balance - Skupni znesek vaših sredstev, s katerimi lahko prosto razpolagate - - - Pending: - Nepotrjeno: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Skupni znesek sredstev s katerimi še ne razpolagate prosto, ker so del še nepotrjenih transakcij. - - - Immature: - Nedozorelo: - - - Mined balance that has not yet matured - Nedozorel narudarjeni znesek - - - Balances - Stanje sredstev - - - Total: - Skupaj: - - - Your current total balance - Trenutna vsota vseh vaših sredstev - - - Your current balance in watch-only addresses - Trenutno stanje vaših sredstev na opazovanih naslovih - - - Spendable: - Na voljo: - - - Recent transactions - Nedavne transakcije - - - Unconfirmed transactions to watch-only addresses - Nepotrjene transakcije na opazovanih naslovih - - - Mined balance in watch-only addresses that has not yet matured - Nedozoreli narudarjeni znesek na opazovanih naslovih - - - Current total balance in watch-only addresses - Trenutno skupno stanje sredstev na opazovanih naslovih - - - - PaymentServer - - - PeerTableModel - - User Agent - Ime agenta - - - Node/Service - Naslov - - - Sent - Oddano - - - Received - Prejeto - - - - QObject - - Amount - Znesek - - - Enter a Bitcoin address (e.g. %1) - Vnesite naslov Bitcoin (npr. %1): - - - %1 d - %1 d - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - None - Nič - - - N/A - Neznano - - - %1 ms - %1 ms - - - %1 and %2 - %1 in %2 - - - %1 B - %1 B - - - %1 KB - %1 KiB - - - %1 MB - %1 MiB - - - %1 GB - %1 GiB - - - unknown - neznano - - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - N/A - Neznano - - - Client version - Različica odjemalca - - - &Information - &Informacije - - - Debug window - Razhroščevalno okno - - - General - Splošno - - - Using BerkeleyDB version - BerkeleyDB različica v rabi - - - Startup time - Čas zagona - - - Network - Omrežje - - - Name - Ime - - - Number of connections - Število povezav - - - Block chain - Veriga blokov - - - Current number of blocks - Trenutno število blokov - - - Received - Prejeto - - - Sent - Oddano - - - &Peers - &Soležniki - - - Select a peer to view detailed information. - Izberite soležnika, o katerem si želite ogledati podrobnejše informacije. - - - Direction - Smer povezave - - - Version - Različica - - - User Agent - Ime agenta - - - Services - Storitve - - - Ban Score - Kazenske točke - - - Connection Time - Trajanje povezave - - - Last Send - Nazadje oddano - - - Last Receive - Nazadnje prejeto - - - Ping Time - Odzivni čas - - - Time Offset - Časovni odklon - - - Last block time - Čas zadnjega bloka - - - &Open - &Odpri - - - &Console - &Konzola - - - &Network Traffic - &Omrežni promet - - - Totals - Promet - - - In: - Dohodnih: - - - Out: - Odhodnih: - - - Debug log file - Razhroščevalni dnevnik - - - Clear console - Počisti konzolo - - - default wallet - privzeta denarnica - - - via %1 - preko %1 - - - never - nikoli - - - Inbound - Dohodna - - - Outbound - Odhodna - - - Yes - Da - - - No - Ne - - - Unknown - Neznano - - - - ReceiveCoinsDialog - - &Amount: - &Znesek: - - - &Label: - &Oznaka: - - - &Message: - &Sporočilo: - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Neobvezno sporočilo kot priponka zahtevku za plačilo, ki bo prikazano, ko bo zahtevek odprt. Opomba: Opravljeno plačilo.prek omrežja Bitcoin tega sporočila ne bo vsebovalo. - - - An optional label to associate with the new receiving address. - Oznaka novega sprejemnega naslova. - - - Use this form to request payments. All fields are <b>optional</b>. - S tem obrazcem ustvarite nov zahtevek za plačilo. Vsa polja so <b>neobvezna</b>. - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Zahtevani znesek. Če ne zahtevate določenega zneska, pustite prazno ali nastavite vrednost na 0. - - - Clear all fields of the form. - Počisti vsa polja. - - - Clear - Počisti - - - Requested payments history - Zgodovina zahtevkov za plačilo - - - &Request payment - &Zahtevaj plačilo - - - Show the selected request (does the same as double clicking an entry) - Prikaz izbranega zahtevka. (Isto funkcijo opravi dvojni klik na zapis.) - - - Show - Pokaži - - - Remove the selected entries from the list - Odstrani označene vnose iz seznama - - - Remove - Odstrani - - - - ReceiveRequestDialog - - QR Code - QR Koda - - - Copy &URI - Kopiraj &URl - - - Copy &Address - Kopiraj &naslov - - - &Save Image... - &Shrani sliko ... - - - Address - Naslov - - - Label - Oznaka - - - Wallet - Denarnica - - - - RecentRequestsTableModel - - Label - Oznaka - - - (no label) - (brez oznake) - - - - SendCoinsDialog - - Send Coins - Pošlji - - - Coin Control Features - Upravljanje s kovanci - - - Inputs... - Vhodi ... - - - automatically selected - samodejno izbrani - - - Insufficient funds! - Premalo sredstev! - - - Quantity: - Št.vhodov: - - - Bytes: - Št.bajtov: - - - Amount: - Znesek: - - - Fee: - Provizija: - - - After Fee: - Po proviziji: - - - Change: - Vračilo: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Če to vključite, nato pa vnesete neveljaven naslov, ali pa pustite polje prazno, bo vrnjen drobiž poslan na novo ustvarjen naslov. - - - Custom change address - Naslov za vračilo drobiža po meri - - - Transaction Fee: - Provizija: - - - Choose... - Izberi ... - - - collapse fee-settings - Skrije nastavitve provizije - - - per kilobyte - na KiB - - - Hide - Skrij - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Dokler bo v blokih še dovolj prostora za vse nastajajoče transakcije, zadostuje, če plačate samo minimalno provizijo. Ko pa se bo količina vseh transakcij povečala do meja zmogljivosti omrežja, se lahko zgodi, da vaša transakcija brez večje provizije nikoli ne bo potrjena. - - - (read the tooltip) - (oglejte si namig) - - - Recommended: - Priporočena: - - - Custom: - Po meri: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Samodejni obračun provizije še ni pripravljen. Po navadi izračun traja nekaj blokov ...) - - - Send to multiple recipients at once - Pošlji več prejemnikom hkrati - - - Add &Recipient - Dodaj &prejemnika - - - Clear all fields of the form. - Počisti vsa polja. - - - Dust: - Prah: - - - Clear &All - Počisti &vse - - - Balance: - Stanje: - - - Confirm the send action - Potrdi pošiljanje - - - S&end - &Pošlji - - - Transaction fee - Provizija transakcije - - - (no label) - (brez oznake) - - - - SendCoinsEntry - - A&mount: - &Znesek: - - - Pay &To: - Prejemnik &plačila: - - - &Label: - &Oznaka: - - - Choose previously used address - Izberite enega od že uporabljenih naslovov - - - This is a normal payment. - Plačilo je navadne vrste. - - - The Bitcoin address to send the payment to - Naslov Bitcoin, na katerega bo plačilo poslano - - - Alt+A - Alt+A - - - Paste address from clipboard - Prilepite naslov iz odložišča - - - Alt+P - Alt+P - - - Remove this entry - Izpraznite vsebino polja - - - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Znesek plačila bo zmanjšan za znesek provizije. Prejemnik bo prejel manjše število kovancev, kot je bil vnešeni znesek. Če je prejemnikov več, bo provizija med njih enakomerno porazdeljena. - - - S&ubtract fee from amount - O&dštej provizijo od zneska - - - Message: - Sporočilo: - - - This is an unauthenticated payment request. - Zahtevek za plačilo je neoverjen. - - - This is an authenticated payment request. - Zahtevek za plačilo je overjen. - - - Enter a label for this address to add it to the list of used addresses - Če vnesete oznako za zgornji naslov, se bo skupaj z naslovom shranila v imenk že uporabljenih naslovov - - - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Sporočilo, ki ste ga pripeli na URI tipa bitcoin:. Shranjeno bo skupaj s podatki o transakciji. Opomba: Sporočilo ne bo poslano preko omrežja Bitcoin. - - - Pay To: - Prejemnik: - - - Memo: - Opomba: - - - - SendConfirmationDialog - - - ShutdownWindow - - Do not shut down the computer until this window disappears. - Dokler to okno ne izgine, ne zaustavljajte računalnika. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Podpiši / preveri sporočilo - - - &Sign Message - &Podpiši sporočilo - - - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - S svojimi naslovi lahko podpisujete sporočila ali pogodbe in s tem dokazujete, da na teh naslovih lahko prejemate kovance. Bodite previdni in ne podpisujte ničesar nejasnega ali naključnega, ker vas zlikovci preko ribarjenja (phishing) lahko prelisičijo, da na njih prepišete svojo identiteto. Podpisujte samo podrobno opisane izjave, s katerimi se strinjate. - - - The Bitcoin address to sign the message with - Naslov Bitcoin, s katerim podpisujete sporočilo - - - Choose previously used address - Izberite enega od že uporabljenih naslovov - - - Alt+A - Alt+A - - - Paste address from clipboard - Prilepite naslov iz odložišča - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Vnesite sporočilo, ki ga želite podpisati - - - Signature - Podpis - - - Copy the current signature to the system clipboard - Kopiranje trenutnega podpisa na sistemsko odložišče. - - - Sign the message to prove you own this Bitcoin address - Podpišite sporočilo, da dokažete lastništvo nad zgornjim naslovom. - - - Sign &Message - Podpiši &sporočilo - - - Reset all sign message fields - Počisti vsa polja za vnos v oknu za podpisovanje - - - Clear &All - Počisti &vse - - - &Verify Message - &Preveri sporočilo - - - Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! - Da preverite verodostojnost sporočila, spodaj vnesite: prejemnikov naslov, prejeto sporočilo (pazljivo skopirajte vse prelome vrstic, presledke, tabulatorje ipd.,) in prejeti podpis. Da se izognete napadom tipa man-in-the-middle, vedite, da iz veljavnega podpisa ne sledi nič drugega, kot tisto, kar je navedeno v sporočilu. Podpis samo potrjuje dejstvo, da ima podpisnik v lasti prejemni naslov, ne more pa dokazati vira nobene transakcije! - - - The Bitcoin address the message was signed with - Naslov Bitcoin, s katerim je bilo sporočilo podpisano - - - Verify the message to ensure it was signed with the specified Bitcoin address - Preverite, ali je bilo sporočilo v resnici podpisano z navedenim naslovom Bitcoin. - - - Verify &Message - Preveri &sporočilo - - - Reset all verify message fields - Počisti vsa polja za vnos v oknu za preverjanje - - - - SplashScreen - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KiB/s - - - - TransactionDesc - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - V tem podoknu so prikazane podrobnosti o transakciji - - - - TransactionTableModel - - Label - Oznaka - - - (no label) - (brez oznake) - - - - TransactionView - - Comma separated file (*.csv) - Podatki ločenimi z vejico (*.csv) - - - Label - Oznaka - - - Address - Naslov - - - Exporting Failed - Podatkov ni bilo mogoče izvoziti. - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Merska enota za prikaz zneskov. Kliknite za izbiro druge enote. - - - - WalletFrame - - - WalletModel - - - WalletView - - Export the data in the current tab to a file - Izvozi podatke v trenutnem zavihku v datoteko - - - - bitcoin-core - - Bitcoin Core - Bitcoin Core - - - Corrupted block database detected - Podatkovna baza blokov je okvarjena - - - Do you want to rebuild the block database now? - Želite zdaj obnoviti podatkovno bazo blokov? - - - Error initializing block database - Napaka pri inicializaciji podatkovne baze blokov - - - Error initializing wallet database environment %s! - Napaka pri inicializaciji okolja podatkovne baze denarnice %s! - - - Error loading block database - Napaka pri nalaganju podatkovne baze blokov - - - Error opening block database - Napaka pri odpiranju podatkovne baze blokov - - - Error: Disk space is low! - Opozorilo: Premalo prostora na disku! - - - Failed to listen on any port. Use -listen=0 if you want this. - Ni mogoče poslušati na nobenih vratih. Če to zares želite, uporabite opcijo -listen=0. - - - Importing... - Uvažam ... - - - Incorrect or no genesis block found. Wrong datadir for network? - Izvornega bloka ni mogoče najti ali pa je neveljaven. Preverite, če ste izbrali pravo podatkovno mapo za izbrano omrežje. - - - Not enough file descriptors available. - Na voljo ni dovolj deskriptorjev datotek. - - - Prune cannot be configured with a negative value. - Negativne vrednosti parametra funkcije obrezovanja niso sprejemljive. - - - Prune mode is incompatible with -txindex. - Funkcija obrezovanja ni združljiva z opcijo -txindex. - - - Verifying blocks... - Preverjam celovitost blokov ... - - - Error: Listening for incoming connections failed (listen returned error %s) - Napaka: Ni mogoče sprejemati dohodnih povezav (vrnjena napaka: %s) - - - Information - Informacije - - - Need to specify a port with -whitebind: '%s' - Pri opciji -whitebind morate navesti vrata: %s - - - Signing transaction failed - Transakcije ni bilo mogoče podpisati. - - - This is experimental software. - Program je eksperimentalne narave. - - - Transaction amount too small - Znesek je pramajhen - - - Transaction too large - Transkacija je prevelika - - - Unable to bind to %s on this computer (bind returned error %s) - Na tem računalniku ni bilo mogoče vezati naslova %s (vrnjena napaka: %s) - - - Warning - Opozorilo - - - Zapping all transactions from wallet... - Brišem vse transakcije iz denarnice ... - - - Transaction must have at least one recipient - Transakcija mora imeti vsaj enega prejemnika. - - - Unknown network specified in -onlynet: '%s' - Neznano omrežje določeno v -onlynet: '%s'. - - - Insufficient funds - Premalo sredstev - - - Loading block index... - Nalagam kazalo blokov ... - - - Loading wallet... - Nalagam denarnico ... - - - Cannot downgrade wallet - Ne morem - - - Rescanning... - Ponovno pregledujem verigo ... - - - Done loading - Nalaganje končano - - - Error - Napaka - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_tr_TR.ts b/src/qt/locale/bitcoin_tr_TR.ts deleted file mode 100644 index bf2dae99dc..0000000000 --- a/src/qt/locale/bitcoin_tr_TR.ts +++ /dev/null @@ -1,1518 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Adresi veya etiketi düzenlemek için sağ tıklayın - - - Create a new address - Yeni adres oluştur - - - &New - &Yeni - - - Copy the currently selected address to the system clipboard - Seçili adresi panoya kopyala - - - &Copy - &Kopyala - - - C&lose - K&apat - - - Delete the currently selected address from the list - Seçili adresi listeden sil - - - Enter address or label to search - Aramak için adres veya etiket girin - - - Export the data in the current tab to a file - Seçili sekmedeki veriyi dosya olarak dışa aktar - - - &Export - &Dışa Aktar - - - &Delete - &Sil - - - Choose the address to send coins to - koinlerin gönderileceği adresi seçin - - - Choose the address to receive coins with - Alıcı adresi seçiniz - - - C&hoose - Seçim - - - Sending addresses - Gönderilen Adresler - - - Receiving addresses - Alınan Adresler - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Bunlar ödeme göndermek için gereken Bitcoin adreslerinizdir. Para göndermeden önce her zaman miktarı ve alıcı adresi kontrol edin. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Bunlar ödeme almak için kullanılacak Bitcoin adreslerinizdir. Her işlem için yeni bir ödeme alma adresi kullanılması tavsiye edilir. - - - &Copy Address - Adresi Kopyala - - - Copy &Label - Kopyala ve Etiketle - - - &Edit - Düzenle - - - Export Address List - Adres Listesini Dışar Aktar - - - Comma separated file (*.csv) - Virgül ile ayrılmış dosya (*.csv) - - - Exporting Failed - Dışa Aktarma Başarısız - - - There was an error trying to save the address list to %1. Please try again. - Adres listesini %1'e kaydederken bir hata oluştu. Lütfen tekrar deneyin. - - - - AddressTableModel - - Label - etiket - - - Address - adres - - - (no label) - (etiket yok) - - - - AskPassphraseDialog - - Passphrase Dialog - Parola Diyaloğu - - - Enter passphrase - Parolayı girin - - - New passphrase - Yeni parola - - - Repeat new passphrase - Yeni parolayı tekrarla - - - Show password - Şifreyi göster - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Yeni parolayı cüzdana girin.<br/>Lütfen <b>on yada daha fazla karakter</b> veya <b>sekiz yada daha fazla kelime</b>içeren bir parola kullanın. - - - Encrypt wallet - Cüzdanı Şifrele - - - This operation needs your wallet passphrase to unlock the wallet. - Bu işlem, cüzdan kilidinizi açmak için parolanıza ihtiyaç duyuyor - - - Unlock wallet - Cüzdanı Kilitle - - - This operation needs your wallet passphrase to decrypt the wallet. - Bu işlem, cüzdan kilidinizi açmak için parolanıza ihtiyaç duyuyor - - - Decrypt wallet - Cüzdanın Şifresini Çöz - - - Change passphrase - Parolayı değiştir - - - Enter the old passphrase and new passphrase to the wallet. - Eski ve yeni parolanızı cüzdana girin. - - - Confirm wallet encryption - Cüzdan Şifrelemesini Onaylayın - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Uyarı: Eğer cüzdanınızı şifreleyip parolanızı kaybederseniz (unutursanız) , <b>BÜTÜN BITCOIN'LERINIZI KAYBEDECEKSINIZ</b>! - - - Are you sure you wish to encrypt your wallet? - Cüzdanınızı şifrelemek istediğinizden emin misiniz? - - - Wallet encrypted - Cüzdan Şifrelendi - - - %1 will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - %1 Şifreleme işlemini bitirmek için kapatılacak. Şunu unutmayın ki şampiyon galatasaray ve şifrelemek, bitcoinlerinizin bilgisayarınıza bulaşan malware yazılımları tarafından çalınmasını tamamen engelleyemez. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - ÖNEMLİ: Yeni oluşturduğunuz şifrelenmiş cüzdan dosyasını önceki yedeklenmiş cüzdan dosyasıyla değiştirmeniz gerekmektedir. Güvenlik sebeplerinden dolayı yeni, şifrelenmiş cüzdanınızı kullanmaya başlar başlamaz önceki şifrelenmemiş cüzdan yedekleri kullanılmaz hale gelecektir. - - - Wallet encryption failed - Cüzdan şifreleme başarısız oldu - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Cüzdan şifreleme dahili bir hata nedeniyle başarısız oldu. Cüzdanınız şifrelenemedi. - - - The supplied passphrases do not match. - Girilen parolalar eşleşmiyor. - - - Wallet unlock failed - Cüzdan Kilidi Açma Hatası - - - Warning: The Caps Lock key is on! - Dikkat! Caps Lock tuşunuz açık! - - - - BanTableModel - - - BitcoinGUI - - Sign &message... - İmza &mesaj - - - Synchronizing with network... - Ağ ile bağlantı kuruluyor... - - - &Transactions - &‮‮‭İşlemler - - - Browse transaction history - İşlem geçmişinize göz atın - - - E&xit - Çıkış - - - Quit application - Başvuruyu iptal edin - - - &About %1 - Hakkında%1 - - - Show information about %1 - %1 hakkındaki bilgileri görüntüle - - - About &Qt - Qt Hakkında - - - Show information about Qt - Qt hakkındaki bilgileri görüntüleyin - - - &Options... - &Seçenekler - - - &Encrypt Wallet... - &Cüzdan Şifreleme - - - &Backup Wallet... - &Cüzdan Yedekleme - - - &Sending addresses... - Gönderme adresleri - - - &Receiving addresses... - Alış adresleri - - - Open &URI... - URI'yi aç - - - Network activity disabled. - Ağ etkinliği devre dışı. - - - Click to enable network activity again. - Ağ aktivitesini tekrar başlatmak için tıklayın. - - - Reindexing blocks on disk... - Bloklar disk üzerinde yeniden indeksleniyor... - - - Send coins to a Bitcoin address - Bitcoin adresine madeni para gönderin - - - Backup wallet to another location - Cüzdanınızı başka bir lokasyona yedekleyin - - - Open debugging and diagnostic console - Hata giderme konsolunu aç - - - &Verify message... - Onay mesajı... - - - Bitcoin - Bitcoin - - - - Wallet - Cüzdan - - - &Send - Gönder - - - &Receive - Al - - - &Show / Hide - Göster / Gizle - - - &Settings - &Ayarlar - - - Show the list of used sending addresses and labels - Kullanılan gönderim adreslerinin ve etiketlerinin listesini göster - - - Show the list of used receiving addresses and labels - Kullanılan alış adreslerinin ve etiketlerinin listesini göster - - - &Command-line options - Komut satırı ayarları - - - Indexing blocks on disk... - Bloklar disk üzerinde indeksleniyor... - - - Error - Hata - - - Warning - Uyarı - - - Information - Bilgi - - - Date: %1 - - Tarih %1 - - - HD key generation is <b>enabled</b> - HD anahtar üretimi<b>aktif</b> - - - HD key generation is <b>disabled</b> - HD anahtar üretimi <b>pasif</b> - - - - CoinControlDialog - - Bytes: - Bayt - - - Fee: - Ücret: - - - After Fee: - Ücretten sonra kalan: - - - Change: - Değişen: - - - List mode - Listeleme modu - - - Date - Tarih - - - Confirmations - Onaylamalar - - - Confirmed - Kabul edilen - - - Copy address - Adresi kopyala - - - Copy label - Etiketi kopyala - - - Copy fee - Ücreti kopyala - - - (%1 locked) - (%1 kilitli) - - - yes - Evet - - - no - Hayır - - - (no label) - (etiket yok) - - - - EditAddressDialog - - Edit Address - Adresi Düzenle - - - &Label - Etiket - - - &Address - Adres - - - New sending address - Yeni gönderim adresi - - - Edit receiving address - Alış adresini düzenleyin - - - Edit sending address - Gönderim adresini düzenleyin - - - The entered address "%1" is not a valid Bitcoin address. - Girilen adres "%1" Bitcoin adresiyle eşleşmiyor. - - - New key generation failed. - Yeni anahtar üretimi başarısız. - - - - FreespaceChecker - - name - isim - - - - HelpMessageDialog - - version - versiyon - - - About %1 - Hakkında %1 - - - Command-line options - Komut satırı ayarları - - - - Intro - - Welcome - Hoş geldiniz - - - Bitcoin - Bitcoin - - - - Error - Hata - - - - ModalOverlay - - Form - Form - - - Number of blocks left - Kalan blokların sayısı - - - Unknown... - Bilinmiyor... - - - Last block time - Son blok zamanı - - - calculating... - hesaplanıyor... - - - Hide - Gizle - - - - OpenURIDialog - - - OptionsDialog - - Options - Ayarlar - - - &Main - &Ana Menü - - - Size of &database cache - Veritabanı önbelleğinin boyutu - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Proxy bağlantısı IP adresleri (örneğin IPv4: 127.0.0.1 / IPv6: ::1) - - - Open Configuration File - Konfigürasyon dosyasını aç - - - Reset all client options to default. - Bütün ayarları varsayılana çevir - - - &Network - - - - W&allet - Cüzdan - - - Port of the proxy (e.g. 9050) - Proxy portu (örneğin 9050) - - - &Window - Pencere - - - User Interface &language: - Kullanıcı arayüzü dili - - - &OK - Tamam - - - &Cancel - İptal - - - default - Varsayılan - - - Client restart required to activate changes. - Değişikliklerin aktif edilebilmesi için yeniden başlatma gerekiyor. - - - Configuration options - Konfigürasyon ayarları - - - The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file. - Konfigürasyon dosyası GUI ayarlarını geçersiz kılmak için gelişmiş kullanıcı ayarlarını değiştirir. Ek olarak, herhangi bir komut satırı seçeneği konfigürasyon dosyasını geçersiz kılar. - - - Error - Hata - - - The configuration file could not be opened. - Konfigürasyon dosyası açılamadı. - - - This change would require a client restart. - Bu değişiklik istemcinin yeniden başlatılmasını gerektirir. - - - The supplied proxy address is invalid. - Sağlanan proxy adresi geçerli değil. - - - - OverviewPage - - Form - Form - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Gösterilen bilgi geçerli olmayabilir. Bağlantı tekrar sağlandıktan sonra cüzdanınız otomatik olarak senkronize olacaktır. Henüz senkronize olma işlemi tamamlanmadı. - - - Watch-only: - Sadece görüntülenebilir: - - - Available: - Kullanılabilir: - - - Your current spendable balance - Mevcut harcanabilir tutarınız - - - Pending: - Bekleyen: - - - Total: - Toplam: - - - Your current total balance - Toplam mevcut miktarınız - - - Your current balance in watch-only addresses - Sadece görüntülenebilir adreslerdeki mevcut miktarınız - - - Spendable: - Harcanabilir: - - - Recent transactions - Yakın zamanda yapılmış işlemler - - - Unconfirmed transactions to watch-only addresses - Sadece görüntülenebilir adreslerdeki doğrulanmamış işlemler - - - Current total balance in watch-only addresses - Sadece görüntülenebilir adreslerdeki mevcut toplam miktar - - - - PaymentServer - - Payment request error - Ödeme isteği hatası - - - Payment request fetch URL is invalid: %1 - Ödeme isteği URL'si hatalı: %1 - - - Invalid payment address %1 - Hatalı ödeme adresi %1 - - - Network request error - Ağ hatası - - - - PeerTableModel - - Sent - Gönder - - - Received - Alındı - - - - QObject - - Enter a Bitcoin address (e.g. %1) - Bitcoin adresinizi girin (örneğin %1) - - - N/A - Yok - - - %1 and %2 - %1 ve %2 - - - unknown - bilinmiyor - - - - QObject::QObject - - Error: %1 - Hata: %1 - - - - QRImageWidget - - &Save Image... - &Görüntüyü kaydet - - - &Copy Image - &Görüntüyü kopyala - - - Save QR Code - QR kodu kaydet - - - - RPCConsole - - N/A - Yok - - - Client version - Arayüz versiyonu - - - &Information - &Bilgi - - - Debug window - Hata giderme penceresi - - - General - Genel - - - Using BerkeleyDB version - Kullanılan BerkeleyDB versiyonu - - - Startup time - Başlangıç zamanı - - - Network - - - - Name - İsim - - - Number of connections - Bağlantı sayısı - - - Block chain - Blok zinciri - - - Memory usage - Bellek kullanımı - - - &Reset - &Yeniden başlat - - - Received - Alındı - - - Sent - Gönder - - - Whitelisted - Beyaz listede - - - Version - Versiyon - - - Services - Servisler - - - Connection Time - Bağlantı süresi - - - Last Send - Son gönderim - - - Last Receive - Son alış - - - Ping Time - Ping süresi - - - Ping Wait - Ping bekliyor - - - Last block time - Son blok zamanı - - - &Open - &Aç - - - &Console - &Konsol - - - &Network Traffic - &Ağ trafiği - - - Totals - Toplam - - - Clear console - Konsolu temizle - - - 1 &hour - 1 &saat - - - 1 &day - 1 &gün - - - 1 &week - 1 &hafta - - - 1 &year - 1 &yıl - - - &Disconnect - &Bağlantı kesildi - - - Network activity disabled - Ağ aktivitesi pasif - - - never - asla - - - Inbound - Gelen - - - Outbound - Giden - - - Yes - Evet - - - No - Hayır - - - Unknown - Bilinmiyor - - - - ReceiveCoinsDialog - - &Label: - &Etiket - - - &Message: - &Mesaj - - - Clear - Temizle - - - Show - Göster - - - Remove - Sil - - - Copy URI - URI'yi kopyala - - - Copy label - Etiketi kopyala - - - Copy message - Mesajı kopyala - - - - ReceiveRequestDialog - - QR Code - QR kod - - - Copy &URI - URI'yi kopyala - - - Copy &Address - &Adresi Kopyala - - - &Save Image... - &Görüntüyü kaydet - - - Payment information - Ödeme bilgisi - - - URI - URI - - - Address - adres - - - Label - etiket - - - Message - Mesaj - - - Wallet - Cüzdan - - - - RecentRequestsTableModel - - Date - Tarih - - - Label - etiket - - - Message - Mesaj - - - (no label) - (etiket yok) - - - (no message) - (mesaj yok) - - - - SendCoinsDialog - - Send Coins - Coin gönder - - - automatically selected - Otomatik seçildi - - - Bytes: - Bayt - - - Fee: - Ücret: - - - After Fee: - Ücretten sonra kalan: - - - Change: - Değişen: - - - Transaction Fee: - Gönderim ücreti: - - - Choose... - Seçiniz... - - - per kilobyte - kilobyte başına - - - Hide - Gizle - - - Recommended: - Önerilen: - - - Clear &All - Hepsini sil - - - Copy fee - Ücreti kopyala - - - %1 (%2 blocks) - %1 (%2 blok) - - - %1 to %2 - %1'den %2'e - - - Are you sure you want to send? - Göndermek istediğinize emin misiniz? - - - or - ya da - - - Transaction fee - Gönderim ücreti - - - Confirm send coins - Coin gönderimini onaylayın - - - Warning: Invalid Bitcoin address - Uyarı: Hatalı Bitcoin adresi - - - (no label) - (etiket yok) - - - - SendCoinsEntry - - &Label: - &Etiket - - - Paste address from clipboard - Panodaki adresi yapıştırın - - - Message: - Mesaj: - - - - SendConfirmationDialog - - Yes - Evet - - - - ShutdownWindow - - - SignVerifyMessageDialog - - Paste address from clipboard - Panodaki adresi yapıştırın - - - Signature - İmza - - - Sign &Message - İmza &Mesaj - - - Clear &All - Hepsini sil - - - The entered address is invalid. - Girilen adres hatalı. - - - Please check the address and try again. - Adresi kontrol ettikten sonra lütfen tekrar deneyin. - - - Please check the signature and try again. - İmzanızı kontrol ettikten sonra lütfen tekrar deneyin. - - - Message verification failed. - Mesaj onayı hatalı. - - - Message verified. - Mesaj onaylandı. - - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - Status - Durum - - - Date - Tarih - - - Source - Kaynak - - - Generated - Oluşturuldu - - - unknown - bilinmiyor - - - label - etiket - - - not accepted - kabul edilmedi - - - Transaction fee - Gönderim ücreti - - - Message - Mesaj - - - Comment - Yorum - - - Transaction total size - Gönderimin toplam boyutu - - - Debug information - Hata giderme bilgisi - - - true - doğru - - - false - anlış - - - - TransactionDescDialog - - - TransactionTableModel - - Date - Tarih - - - Type - Tip - - - Label - etiket - - - Confirmed (%1 confirmations) - Onaylandı (%1 onaylanan) - - - Generated but not accepted - Oluşturuldu fakat kabul edilmedi - - - Received with - ile alındı - - - Mined - Kazıldı - - - (n/a) - (yok) - - - (no label) - (etiket yok) - - - - TransactionView - - All - Hepsi - - - Today - Bugün - - - This week - Bu hafta - - - This month - Bu Ay - - - Last month - Son ay - - - This year - Bu yıl - - - Received with - ile alındı - - - Mined - Kazıldı - - - Other - Diğerleri - - - Copy address - Adresi kopyala - - - Copy label - Etiketi kopyala - - - Comma separated file (*.csv) - Virgül ile ayrılmış dosya (*.csv) - - - Confirmed - Kabul edilen - - - Date - Tarih - - - Type - Tip - - - Label - etiket - - - Address - adres - - - Exporting Failed - Dışa Aktarma Başarısız - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - Send Coins - Coin gönder - - - New fee: - Yeni ücret: - - - - WalletView - - &Export - &Çıkar - - - Backup Wallet - Cüzdanı yedekle - - - Backup Failed - Yedekleme başarısız - - - Backup Successful - Yedekleme tamamlandı - - - - bitcoin-core - - Bitcoin Core - Bitcoin Çekirdeği - - - Copyright (C) %i-%i - Copyright (C) %i-%i - - - Error: Disk space is low! - Hata: Disk boyutu düşük! - - - Loading P2P addresses... - P2P adresleri yükleniyor... - - - Loading banlist... - Ban listesi yükleniyor... - - - Verifying blocks... - Bloklar Onaylanıyor... - - - Wallet needed to be rewritten: restart %s to complete - %s tamamlanması için cüzdanın yeniden başlatılması gerekiyor - - - Error reading from database, shutting down. - Veritabanı okuma hatası, kapatıldı. - - - Information - Bilgi - - - Invalid -onion address or hostname: '%s' - Hatalı -onion adresi ya da host adı: '%s' - - - This is experimental software. - Bu deneysel bir yazılımdır. - - - Transaction too large - İşlem çok büyük - - - Verifying wallet(s)... - Cüzdan(lar) onaylanıyor... - - - Warning - Uyarı - - - Starting network threads... - Bağlantı konuları başlıyor - - - The wallet will avoid paying less than the minimum relay fee. - Cüzdan minimum değişim ücretinden daha düşük olan ödemeyi önleyecektir - - - This is the minimum transaction fee you pay on every transaction. - Her işlem için minimum işlem ücretiniz budur - - - This is the transaction fee you will pay if you send a transaction. - Bir işlem göndermeniz durumunda işlem ücretiniz budur - - - Transaction amounts must not be negative - İşlem miktarı negatif olmamalı - - - Transaction has too long of a mempool chain - İşlem çok uzun bir bellek havuzu zincirine sahip - - - Transaction must have at least one recipient - İşlemin en az bir alıcıya sahip olmalı - - - Unknown network specified in -onlynet: '%s' - Belirsiz ağ belirtildi -onlynet: '%s' - - - Insufficient funds - Yetersiz Bakiye - - - Loading block index... - Blok indeksi yükleniyor - - - Loading wallet... - Cüzdan Bekleniyor... - - - Cannot downgrade wallet - Cüzdan indirgenememektedir - - - Rescanning... - Tekrar taranıyor... - - - Done loading - Yükleme tamamlandı - - - Error - Hata - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_uk_UA.ts b/src/qt/locale/bitcoin_uk_UA.ts deleted file mode 100644 index d10ac6dd1c..0000000000 --- a/src/qt/locale/bitcoin_uk_UA.ts +++ /dev/null @@ -1,239 +0,0 @@ - - - AddressBookPage - - Create a new address - Створіть нову адресу - - - &New - &Нова - - - &Copy - &Копіювати - - - C&lose - &Закрити - - - &Export - &Експортувати - - - &Delete - &Видалити - - - Choose the address to send coins to - Оберіть адресу на яку буде надіслано монети - - - Choose the address to receive coins with - Оберіть адресу на яку Ви будете отримувати монети - - - &Copy Address - &Зкопіювати адресу - - - &Edit - &Змінити - - - Export Address List - Експортувати список адрес - - - - AddressTableModel - - Address - Адреса - - - - AskPassphraseDialog - - Enter passphrase - Введіть пароль - - - New passphrase - Новий пароль - - - Repeat new passphrase - Повторіть новий пароль - - - Show password - Показати пароль - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Введіть новий пароль до гаманця.<br/>Будь ласка використовуйте пароль<b>з десяти чи більше випадкових символів</b>, або<b>восьми чи більше слів</b>. - - - Encrypt wallet - Зашифрувати гаманець - - - This operation needs your wallet passphrase to unlock the wallet. - Ця операція потребує пароль гаманця щоб відімкнути гаманець. - - - Unlock wallet - Відімкнути гаманець - - - This operation needs your wallet passphrase to decrypt the wallet. - Ця операціє потребує пароль гаманця щоб розшифрувати гаманець. - - - Decrypt wallet - Розшифрувати гаманець - - - Change passphrase - Змінити пароль - - - Enter the old passphrase and new passphrase to the wallet. - Введіть старий пароль і новий пароль гаманця. - - - Confirm wallet encryption - Підтвердіть шифрування гаманця - - - Are you sure you wish to encrypt your wallet? - Чи ви справді бажаєте зашифрувати гаманець? - - - Wallet encrypted - Гаманець зашифровано - - - - BanTableModel - - - BitcoinGUI - - - CoinControlDialog - - - EditAddressDialog - - - FreespaceChecker - - - HelpMessageDialog - - - Intro - - - ModalOverlay - - - OpenURIDialog - - - OptionsDialog - - - OverviewPage - - - PaymentServer - - - PeerTableModel - - - QObject - - - QObject::QObject - - - QRImageWidget - - - RPCConsole - - - ReceiveCoinsDialog - - - ReceiveRequestDialog - - Address - Адреса - - - - RecentRequestsTableModel - - - SendCoinsDialog - - - SendCoinsEntry - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - - TransactionDescDialog - - - TransactionTableModel - - - TransactionView - - Address - Адреса - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - - &Export - &Експортувати - - - - bitcoin-core - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_vi_VN.ts b/src/qt/locale/bitcoin_vi_VN.ts deleted file mode 100644 index c9f9ca2add..0000000000 --- a/src/qt/locale/bitcoin_vi_VN.ts +++ /dev/null @@ -1,1250 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Nhấn chuột phải để sửa địa chỉ hoặc nhãn - - - Create a new address - Tạo một địa chỉ mới - - - &New - &Tạo mới - - - Copy the currently selected address to the system clipboard - Copy địa chỉ được chọn vào clipboard - - - &Copy - &Copy - - - C&lose - Đó&ng - - - Delete the currently selected address from the list - Xóa địa chỉ hiện tại từ danh sách - - - Export the data in the current tab to a file - Xuất dữ liệu trong mục hiện tại ra file - - - &Export - &Xuất - - - &Delete - &Xóa - - - Choose the address to send coins to - Chọn địa chỉ để gửi coin đến - - - Choose the address to receive coins with - Chọn địa chỉ để nhận coin - - - C&hoose - Chọn - - - Sending addresses - Địa chỉ gửi đến - - - Receiving addresses - Địa chỉ nhận - - - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Đây là các địa chỉ Bitcoin để gửi bạn gửi tiền. Trước khi gửi bạn nên kiểm tra lại số tiền bạn muốn gửi và địa chỉ bitcoin của người nhận. - - - These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Đây là các địa chỉ Bitcoin để bạn nhận tiền. Với mỗi giao dịch, bạn nên dùng một địa chỉ Bitcoin mới để nhận tiền. - - - &Copy Address - &Chép Địa chỉ - - - Copy &Label - Chép &Nhãn - - - &Edit - &Sửa - - - Export Address List - Xuất Danh Sách Địa Chỉ - - - Comma separated file (*.csv) - Các tệp tác nhau bằng đấu phẩy (* .csv) - - - Exporting Failed - Xuất không thành công - - - - AddressTableModel - - Label - Nhãn - - - Address - Địa chỉ - - - (no label) - (không nhãn) - - - - AskPassphraseDialog - - Passphrase Dialog - Hội thoại Passphrase - - - Enter passphrase - Điền passphrase - - - New passphrase - Passphrase mới - - - Repeat new passphrase - Điền lại passphrase - - - Show password - Hiện mật khẩu - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Nhập passphrase mới cho Ví của bạn.<br/>Vui long dùng passphrase gồm<b>ít nhất 10 ký tự bất kỳ </b>, hoặc <b>ít nhất 8 chữ</b>. - - - Encrypt wallet - Mã hóa ví - - - This operation needs your wallet passphrase to unlock the wallet. - Thao tác này cần cụm từ mật khẩu để mở khóa ví. - - - Unlock wallet - Mở khóa ví - - - This operation needs your wallet passphrase to decrypt the wallet. - Thao tác này cần cụm mật khẩu ví của bạn để giải mã ví. - - - Decrypt wallet - Giải mã ví - - - Change passphrase - Đổi cụm mật khẩu - - - Enter the old passphrase and new passphrase to the wallet. - Nhập cụm từ mật khẩu cũ và cụm mật khẩu mới vào ví. - - - Confirm wallet encryption - Xác nhận mã hóa ví - - - Are you sure you wish to encrypt your wallet? - Bạn có chắc chắn muốn mã hóa ví của bạn? - - - Wallet encrypted - Ví đã được mã hóa - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - QUAN TRỌNG: Bất kỳ bản sao lưu trước nào bạn đã làm từ tệp ví tiền của bạn phải được thay thế bằng tệp ví tiền mới được tạo và mã hóa. Vì lý do bảo mật, các bản sao lưu trước đó của tệp ví tiền không được mã hóa sẽ trở nên vô dụng ngay khi bạn bắt đầu sử dụng ví đã được mã hóa. - - - Wallet encryption failed - Mã hóa ví không thành công - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Mã hóa ví không thành công do có lỗi bên trong. -Ví của bạn chưa được mã hóa. - - - The supplied passphrases do not match. - Cụm mật khẩu được cung cấp không khớp. - - - Wallet unlock failed - Mở khóa ví không thành công - - - The passphrase entered for the wallet decryption was incorrect. - Cụm từ mật mã nhập vào không đúng - - - Wallet decryption failed - Giải mã ví không thành công - - - Wallet passphrase was successfully changed. - Cụm từ mật khẩu mã hóa của ví đã được thay đổi. - - - Warning: The Caps Lock key is on! - Chú ý: Caps Lock đang được bật! - - - - BanTableModel - - IP/Netmask - IP/Netmask - - - Banned Until - Bị cấm đến - - - - BitcoinGUI - - Sign &message... - Chứ ký & Tin nhắn... - - - Synchronizing with network... - Đồng bộ hóa với mạng - - - &Overview - &Tổng quan - - - Node - Node - - - Show general overview of wallet - Hiện thỉ thông tin sơ lược chung về Ví - - - &Transactions - &Giao dịch - - - Browse transaction history - Duyệt tìm lịch sử giao dịch - - - E&xit - T&hoát - - - Quit application - Thoát chương trình - - - &About %1 - &Thông tin về %1 - - - Show information about %1 - Hiện thông tin về %1 - - - About &Qt - Về &Qt - - - Show information about Qt - Xem thông tin về Qt - - - &Options... - &Tùy chọn... - - - Modify configuration options for %1 - Chỉnh sửa thiết đặt tùy chọn cho %1 - - - &Encrypt Wallet... - &Mã hóa ví tiền - - - &Backup Wallet... - &Sao lưu ví tiền... - - - &Change Passphrase... - &Thay đổi mật khẩu... - - - &Sending addresses... - &Địa chỉ gửi - - - &Receiving addresses... - Địa chỉ nhận - - - Open &URI... - Mở &URI... - - - Click to disable network activity. - Nhấp để vô hiệu hóa kết nối mạng. - - - Network activity disabled. - Kết nối mạng đã bị ngắt - - - Click to enable network activity again. - Nhấp để kết nối lại mạng. - - - Syncing Headers (%1%)... - Đồng bộ hóa các Headers (%1%)... - - - Reindexing blocks on disk... - Đánh chỉ số (indexing) lại các khối (blocks) trên ổ đĩa ... - - - Send coins to a Bitcoin address - Gửi coins đến tài khoản Bitcoin - - - Backup wallet to another location - Sao lưu ví tiền ở vị trí khác - - - Change the passphrase used for wallet encryption - Thay đổi cụm mật mã dùng cho mã hoá Ví - - - &Debug window - &Cửa sổ xử lý lỗi (debug) - - - Open debugging and diagnostic console - Mở trình gỡ lỗi và bảng lệnh chuẩn đoán - - - &Verify message... - &Tin nhắn xác thực - - - Bitcoin - Bitcoin - - - Wallet - - - - &Send - &Gửi - - - &Receive - &Nhận - - - &Show / Hide - Ẩn / H&iện - - - Show or hide the main Window - Hiện hoặc ẩn cửa sổ chính - - - Encrypt the private keys that belong to your wallet - Mã hoá các khoá bí mật trong Ví của bạn. - - - Sign messages with your Bitcoin addresses to prove you own them - Dùng địa chỉ Bitcoin của bạn ký các tin nhắn để xác minh những nội dung tin nhắn đó là của bạn. - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Kiểm tra các tin nhắn để chắc chắn rằng chúng được ký bằng các địa chỉ Bitcoin xác định. - - - &File - &File - - - &Settings - &Thiết lập - - - &Help - Trợ &giúp - - - Tabs toolbar - Thanh công cụ (toolbar) - - - Request payments (generates QR codes and bitcoin: URIs) - Yêu cầu thanh toán(tạo mã QR và địa chỉ Bitcoin: URLs) - - - Show the list of used sending addresses and labels - Hiện thỉ danh sách các địa chỉ và nhãn đã dùng để gửi. - - - Show the list of used receiving addresses and labels - Hiện thỉ danh sách các địa chỉ và nhãn đã dùng để nhận. - - - Open a bitcoin: URI or payment request - Mở bitcoin:URL hoặc yêu cầu thanh toán - - - &Command-line options - 7Tùy chọn dòng lệnh - - - %n active connection(s) to Bitcoin network - %n liên kết hoạt động với mạng lưới Bitcoin - - - Indexing blocks on disk... - Đang lập chỉ mục các khối trên ổ đĩa - - - Processing blocks on disk... - Đang xử lý các khối trên ổ đĩa... - - - Processed %n block(s) of transaction history. - Đã xử lý %n khối của lịch sử giao dịch. - - - %1 behind - %1 chậm trễ - - - Last received block was generated %1 ago. - Khối (block) cuối cùng nhận được cách đây %1 - - - Transactions after this will not yet be visible. - Những giao dịch sau đó sẽ không hiện thị. - - - Error - Lỗi - - - Warning - Chú ý - - - Information - Thông tin - - - Up to date - Đã cập nhật - - - Show the %1 help message to get a list with possible Bitcoin command-line options - Hiển thị tin nhắn trợ giúp %1 để có được danh sách với các tùy chọn dòng lệnh Bitcoin. - - - Connecting to peers... - Kết nối với các máy ngang hàng... - - - Catching up... - Bắt kịp... - - - Date: %1 - - Ngày: %1 - - - - Amount: %1 - - Số lượng: %1 - - - - Type: %1 - - Loại: %1 - - - - Label: %1 - - Nhãn hiệu: %1 - - - - Address: %1 - - Địa chỉ: %1 - - - - Sent transaction - Giao dịch đã gửi - - - Incoming transaction - Giao dịch đang tới - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Ví tiền <b> đã được mã hóa</b>và hiện <b>đang mở</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Ví tiền <b> đã được mã hóa</b>và hiện <b>đang khóa</b> - - - - CoinControlDialog - - Quantity: - Lượng: - - - Bytes: - Bytes: - - - Amount: - Lượng: - - - Fee: - Phí: - - - After Fee: - Sau thuế, phí: - - - Change: - Thay đổi: - - - (un)select all - (bỏ)chọn tất cả - - - Tree mode - Chế độ cây - - - List mode - Chế độ danh sách - - - Amount - Lượng - - - Date - Ngày tháng - - - Confirmations - Lần xác nhận - - - Confirmed - Đã xác nhận - - - (no label) - (không nhãn) - - - - EditAddressDialog - - Edit Address - Thay đổi địa chỉ - - - &Label - Nhãn - - - &Address - Địa chỉ - - - - FreespaceChecker - - name - tên - - - - HelpMessageDialog - - version - version - - - (%1-bit) - (%1-bit) - - - Command-line options - &Tùy chọn dòng lệnh - - - - Intro - - Welcome - Chào mừng - - - Use the default data directory - Sử dụng vị trí dữ liệu mặc định - - - Bitcoin - Bitcoin - - - Error - Lỗi - - - - ModalOverlay - - Form - Form - - - Hide - Ẩn - - - - OpenURIDialog - - Open URI - Mở URI - - - URI: - URI: - - - - OptionsDialog - - Options - Lựa chọn - - - &Main - &Chính - - - MB - MB - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Địa chỉ IP của proxy (ví dụ IPv4: 127.0.0.1 / IPv6: ::1) - - - W&allet - - - - Connect to the Bitcoin network through a SOCKS5 proxy. - Kết nối đến máy chủ Bitcoin thông qua SOCKS5 proxy. - - - Proxy &IP: - Proxy &IP: - - - &Port: - &Cổng: - - - Port of the proxy (e.g. 9050) - Cổng proxy (e.g. 9050) - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - &Display - &Hiển thị - - - User Interface &language: - Giao diện người dùng & ngôn ngữ - - - &OK - &OK - - - &Cancel - &Từ chối - - - default - mặc định - - - none - Trống - - - Error - Lỗi - - - - OverviewPage - - Form - Form - - - Available: - Khả dụng - - - Pending: - Đang chờ - - - Total: - Tổng: - - - - PaymentServer - - - PeerTableModel - - User Agent - User Agent - - - Sent - Đã gửi - - - - QObject - - Amount - Lượng - - - %1 and %2 - %1 và %2 - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - - QObject::QObject - - - QRImageWidget - - &Save Image... - $Lưu hình ảnh... - - - - RPCConsole - - &Information - Thông tin - - - General - Nhìn Chung - - - Name - Tên - - - Block chain - Block chain - - - Sent - Đã gửi - - - User Agent - User Agent - - - 1 &hour - 1&giờ - - - 1 &day - 1&ngày - - - 1 &week - 1&tuần - - - 1 &year - 1&năm - - - never - không bao giờ - - - Yes - Đồng ý - - - No - Không - - - - ReceiveCoinsDialog - - &Amount: - Lượng: - - - &Label: - &Nhãn - - - &Message: - &Tin nhắn: - - - Use this form to request payments. All fields are <b>optional</b>. - Sử dụng form này để yêu cầu thanh toán. Tất cả các trường <b>không bắt buộc<b> - - - Clear all fields of the form. - Xóa tất cả các trường trong biểu mẫu - - - Clear - Xóa - - - Requested payments history - Lịch sử yêu cầu thanh toán - - - &Request payment - &Yêu cầu thanh toán - - - Show - Hiển thị - - - Remove the selected entries from the list - Xóa khỏi danh sách - - - Remove - Xóa - - - Copy message - Copy tin nhắn - - - - ReceiveRequestDialog - - QR Code - QR Code - - - Copy &URI - Copy &URI - - - Copy &Address - &Copy Địa Chỉ - - - &Save Image... - $Lưu hình ảnh... - - - Request payment to %1 - Yêu cầu thanh toán cho %1 - - - Payment information - Thông tin thanh toán - - - URI - URI - - - Address - Địa chỉ - - - Amount - Lượng - - - Label - Nhãn - - - Message - Tin nhắn - - - Wallet - - - - Error encoding URI into QR Code. - Lỗi khi encode từ URI thành QR Code - - - - RecentRequestsTableModel - - Label - Nhãn - - - Message - Tin nhắn - - - (no label) - (không nhãn) - - - (no message) - (không tin nhắn) - - - - SendCoinsDialog - - Send Coins - Gửi Coins - - - Coin Control Features - Tính năng Control Coin - - - Inputs... - Nhập... - - - automatically selected - Tự động chọn - - - Insufficient funds! - Không đủ tiền - - - Quantity: - Lượng: - - - Bytes: - Bytes: - - - Amount: - Lượng: - - - Fee: - Phí: - - - After Fee: - Sau thuế, phí: - - - Change: - Thay đổi: - - - Transaction Fee: - Phí giao dịch - - - Choose... - Chọn... - - - collapse fee-settings - Thu gọn fee-settings - - - per kilobyte - trên KB - - - Hide - Ẩn - - - (read the tooltip) - (Đọc hướng dẫn) - - - Send to multiple recipients at once - Gửi đến nhiều người nhận trong một lần - - - Add &Recipient - Thêm &Người nhận - - - Clear all fields of the form. - Xóa tất cả các trường trong biểu mẫu - - - Clear &All - Xóa &Tất cả - - - Balance: - Tài khoản - - - Confirm the send action - Xác nhận sự gửi - - - %1 to %2 - %1 đến %2 - - - or - hoặc - - - Confirm send coins - Xác nhận gửi coins - - - (no label) - (không nhãn) - - - - SendCoinsEntry - - A&mount: - Lượng: - - - &Label: - &Nhãn - - - - SendConfirmationDialog - - Yes - Đồng ý - - - - ShutdownWindow - - - SignVerifyMessageDialog - - Clear &All - Xóa &Tất cả - - - - SplashScreen - - - TrafficGraphWidget - - - TransactionDesc - - Message - Tin nhắn - - - Amount - Lượng - - - - TransactionDescDialog - - - TransactionTableModel - - Label - Nhãn - - - (no label) - (không nhãn) - - - - TransactionView - - Comma separated file (*.csv) - Các tệp tác nhau bằng đấu phẩy (* .csv) - - - Label - Nhãn - - - Address - Địa chỉ - - - Exporting Failed - Xuất không thành công - - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - Send Coins - Gửi Coins - - - - WalletView - - &Export - &Xuất - - - - bitcoin-core - - Bitcoin Core - Bitcoin Core - - - Information - Thông tin - - - Transaction too large - Giao dịch quá lớn - - - Warning - Chú ý - - - Insufficient funds - Không đủ tiền - - - Loading block index... - Đang đọc block index... - - - Loading wallet... - Đang đọc ví... - - - Cannot downgrade wallet - Không downgrade được ví - - - Rescanning... - Đang quét lại... - - - Done loading - Đã nạp xong - - - Error - Lỗi - - - \ No newline at end of file From bd9d40dbbdc0ee4c7f1d56202a984ca7222d4708 Mon Sep 17 00:00:00 2001 From: Daki Carnhof Date: Wed, 9 Oct 2019 16:09:43 +0200 Subject: [PATCH 009/388] tests: Fix fs_tests for unknown locales Fix by removing "L" as suggested by meeDamian in https://github.com/bitcoin/bitcoin/issues/14948#issuecomment-522355441 Co-Authored-By: bugs@meedamian.com Github-Pull: #17086 Rebased-From: d48f664 --- src/test/fs_tests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/fs_tests.cpp b/src/test/fs_tests.cpp index 6d5a6641f0..b504a3cbb1 100644 --- a/src/test/fs_tests.cpp +++ b/src/test/fs_tests.cpp @@ -15,7 +15,7 @@ BOOST_AUTO_TEST_CASE(fsbridge_fstream) fs::path tmpfolder = GetDataDir(); // tmpfile1 should be the same as tmpfile2 fs::path tmpfile1 = tmpfolder / "fs_tests_₿_🏃"; - fs::path tmpfile2 = tmpfolder / L"fs_tests_₿_🏃"; + fs::path tmpfile2 = tmpfolder / "fs_tests_₿_🏃"; { fsbridge::ofstream file(tmpfile1); file << "bitcoin"; From ba46f394182dc2ac85ea7e0a7b6141312180de73 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 9 Oct 2019 14:53:18 +0200 Subject: [PATCH 010/388] init: Change fallback locale to C.UTF-8 Much of our code assumes UTF-8 support, and this is a more realistic guess for modern systems anyway than the default character set (which would be ASCII only). So change the assumed fallback locale (if no locale is defined by the user or OS) to `C.UTF-8`. Github-Pull: #17085 Rebased-From: facb9a1315f97489a20eb0e969fdb14b5128ed2f --- src/util/system.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/system.cpp b/src/util/system.cpp index 8098cde093..f22256615f 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -1153,12 +1153,12 @@ void SetupEnvironment() } #endif // On most POSIX systems (e.g. Linux, but not BSD) the environment's locale - // may be invalid, in which case the "C" locale is used as fallback. + // may be invalid, in which case the "C.UTF-8" locale is used as fallback. #if !defined(WIN32) && !defined(MAC_OSX) && !defined(__FreeBSD__) && !defined(__OpenBSD__) try { std::locale(""); // Raises a runtime error if current locale is invalid } catch (const std::runtime_error&) { - setenv("LC_ALL", "C", 1); + setenv("LC_ALL", "C.UTF-8", 1); } #elif defined(WIN32) // Set the default input/output charset is utf-8 From dc0fe7ae1f941a2aafc29a0c7b7068e160583ef4 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 10 Oct 2019 13:25:08 +0200 Subject: [PATCH 011/388] util: Filter control characters out of log messages Belts and suspenders: make sure outgoing log messages don't contain potentially suspicious characters, such as terminal control codes. This escapes control characters except newline ('\n') in C syntax. It escapes instead of removes them to still allow for troubleshooting issues where they accidentally end up in strings. Github-Pull: #17095 Rebased-From: d7820a1250070f3640246ae497e049bee0b3516f --- src/logging.cpp | 24 +++++++++++++++++++++++- src/test/util_tests.cpp | 18 ++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/logging.cpp b/src/logging.cpp index dc2d130a2a..60ab486198 100644 --- a/src/logging.cpp +++ b/src/logging.cpp @@ -224,10 +224,32 @@ std::string BCLog::Logger::LogTimestampStr(const std::string& str) return strStamped; } +namespace BCLog { + /** Belts and suspenders: make sure outgoing log messages don't contain + * potentially suspicious characters, such as terminal control codes. + * + * This escapes control characters except newline ('\n') in C syntax. + * It escapes instead of removes them to still allow for troubleshooting + * issues where they accidentally end up in strings. + */ + std::string LogEscapeMessage(const std::string& str) { + std::string ret; + for (char ch_in : str) { + uint8_t ch = (uint8_t)ch_in; + if ((ch >= 32 || ch == '\n') && ch != '\x7f') { + ret += ch_in; + } else { + ret += strprintf("\\x%02x", ch); + } + } + return ret; + } +} + void BCLog::Logger::LogPrintStr(const std::string& str) { std::lock_guard scoped_lock(m_cs); - std::string str_prefixed = str; + std::string str_prefixed = LogEscapeMessage(str); if (m_log_threadnames && m_started_new_line) { str_prefixed.insert(0, "[" + util::ThreadGetInternalName() + "] "); diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index d0cd4b0a03..dda6241a7b 100644 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -25,6 +25,11 @@ #include +/* defined in logging.cpp */ +namespace BCLog { + std::string LogEscapeMessage(const std::string& str); +} + BOOST_FIXTURE_TEST_SUITE(util_tests, BasicTestingSetup) BOOST_AUTO_TEST_CASE(util_criticalsection) @@ -1572,4 +1577,17 @@ BOOST_AUTO_TEST_CASE(test_Capitalize) BOOST_CHECK_EQUAL(Capitalize("\x00\xfe\xff"), "\x00\xfe\xff"); } +BOOST_AUTO_TEST_CASE(test_LogEscapeMessage) +{ + // ASCII and UTF-8 must pass through unaltered. + BOOST_CHECK_EQUAL(BCLog::LogEscapeMessage("Valid log message貓"), "Valid log message貓"); + // Newlines must pass through unaltered. + BOOST_CHECK_EQUAL(BCLog::LogEscapeMessage("Message\n with newlines\n"), "Message\n with newlines\n"); + // Other control characters are escaped in C syntax. + BOOST_CHECK_EQUAL(BCLog::LogEscapeMessage("\x01\x7f Corrupted log message\x0d"), R"(\x01\x7f Corrupted log message\x0d)"); + // Embedded NULL characters are escaped too. + const std::string NUL("O\x00O", 3); + BOOST_CHECK_EQUAL(BCLog::LogEscapeMessage(NUL), R"(O\x00O)"); +} + BOOST_AUTO_TEST_SUITE_END() From 6a45766acbf4fc8d2ce8ab3e1eb1afc85a7c05ca Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Fri, 11 Oct 2019 15:41:01 -0400 Subject: [PATCH 012/388] doc: update bips.md with buried BIP9 deployments Github-Pull: #17111 Rebased-From: fa6ed82794f4aecbd71667b5491edbbc4eaeaaef --- doc/bips.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/bips.md b/doc/bips.md index 71ff5552ee..85c9ebb9f6 100644 --- a/doc/bips.md +++ b/doc/bips.md @@ -18,23 +18,23 @@ BIPs that are implemented by Bitcoin Core (up-to-date up to **v0.19.0**): * [`BIP 61`](https://github.com/bitcoin/bips/blob/master/bip-0061.mediawiki): The 'reject' protocol message (and the protocol version bump to 70002) was added in **v0.9.0** ([PR #3185](https://github.com/bitcoin/bitcoin/pull/3185)). Starting **v0.17.0**, whether to send reject messages can be configured with the `-enablebip61` option, and support is deprecated as of **v0.18.0**. * [`BIP 65`](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki): The CHECKLOCKTIMEVERIFY softfork was merged in **v0.12.0** ([PR #6351](https://github.com/bitcoin/bitcoin/pull/6351)), and backported to **v0.11.2** and **v0.10.4**. Mempool-only CLTV was added in [PR #6124](https://github.com/bitcoin/bitcoin/pull/6124). * [`BIP 66`](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki): The strict DER rules and associated version 3 blocks have been implemented since **v0.10.0** ([PR #5713](https://github.com/bitcoin/bitcoin/pull/5713)). -* [`BIP 68`](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki): Sequence locks have been implemented as of **v0.12.1** ([PR #7184](https://github.com/bitcoin/bitcoin/pull/7184)), and have been activated since *block 419328*. +* [`BIP 68`](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki): Sequence locks have been implemented as of **v0.12.1** ([PR #7184](https://github.com/bitcoin/bitcoin/pull/7184)), and have been *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)). * [`BIP 70`](https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki) [`71`](https://github.com/bitcoin/bips/blob/master/bip-0071.mediawiki) [`72`](https://github.com/bitcoin/bips/blob/master/bip-0072.mediawiki): Payment Protocol support has been available in Bitcoin Core GUI since **v0.9.0** ([PR #5216](https://github.com/bitcoin/bitcoin/pull/5216)). Support can be optionally disabled at build time since **v0.18.0** ([PR 14451](https://github.com/bitcoin/bitcoin/pull/14451)), and is disabled by default at build time since **v0.19.0** ([PR #15584](https://github.com/bitcoin/bitcoin/pull/15584)). * [`BIP 90`](https://github.com/bitcoin/bips/blob/master/bip-0090.mediawiki): Trigger mechanism for activation of BIPs 34, 65, and 66 has been simplified to block height checks since **v0.14.0** ([PR #8391](https://github.com/bitcoin/bitcoin/pull/8391)). * [`BIP 111`](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki): `NODE_BLOOM` service bit added, and enforced for all peer versions as of **v0.13.0** ([PR #6579](https://github.com/bitcoin/bitcoin/pull/6579) and [PR #6641](https://github.com/bitcoin/bitcoin/pull/6641)). -* [`BIP 112`](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki): The CHECKSEQUENCEVERIFY opcode has been implemented since **v0.12.1** ([PR #7524](https://github.com/bitcoin/bitcoin/pull/7524)) and has been activated since *block 419328*. -* [`BIP 113`](https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki): Median time past lock-time calculations have been implemented since **v0.12.1** ([PR #6566](https://github.com/bitcoin/bitcoin/pull/6566)) and have been activated since *block 419328*. +* [`BIP 112`](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki): The CHECKSEQUENCEVERIFY opcode has been implemented since **v0.12.1** ([PR #7524](https://github.com/bitcoin/bitcoin/pull/7524)), and has been *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)). +* [`BIP 113`](https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki): Median time past lock-time calculations have been implemented since **v0.12.1** ([PR #6566](https://github.com/bitcoin/bitcoin/pull/6566)), and has been *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)). * [`BIP 125`](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki): Opt-in full replace-by-fee signaling honoured in mempool and mining as of **v0.12.0** ([PR 6871](https://github.com/bitcoin/bitcoin/pull/6871)). Enabled by default in the wallet GUI as of **v0.18.1** ([PR #11605](https://github.com/bitcoin/bitcoin/pull/11605)) * [`BIP 130`](https://github.com/bitcoin/bips/blob/master/bip-0130.mediawiki): direct headers announcement is negotiated with peer versions `>=70012` as of **v0.12.0** ([PR 6494](https://github.com/bitcoin/bitcoin/pull/6494)). * [`BIP 133`](https://github.com/bitcoin/bips/blob/master/bip-0133.mediawiki): feefilter messages are respected and sent for peer versions `>=70013` as of **v0.13.0** ([PR 7542](https://github.com/bitcoin/bitcoin/pull/7542)). -* [`BIP 141`](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki): Segregated Witness (Consensus Layer) as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)), and defined for mainnet as of **v0.13.1** ([PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)). -* [`BIP 143`](https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki): Transaction Signature Verification for Version 0 Witness Program as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)) and defined for mainnet as of **v0.13.1** ([PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)). +* [`BIP 141`](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki): Segregated Witness (Consensus Layer) as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)), defined for mainnet as of **v0.13.1** ([PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)), and *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)). +* [`BIP 143`](https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki): Transaction Signature Verification for Version 0 Witness Program as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)), defined for mainnet as of **v0.13.1** ([PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)), and *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)). * [`BIP 144`](https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki): Segregated Witness as of **0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)). * [`BIP 145`](https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki): getblocktemplate updates for Segregated Witness as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)). -* [`BIP 147`](https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki): NULLDUMMY softfork as of **v0.13.1** ([PR 8636](https://github.com/bitcoin/bitcoin/pull/8636) and [PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)). +* [`BIP 147`](https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki): NULLDUMMY softfork as of **v0.13.1** ([PR 8636](https://github.com/bitcoin/bitcoin/pull/8636) and [PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)), *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)). * [`BIP 152`](https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki): Compact block transfer and related optimizations are used as of **v0.13.0** ([PR 8068](https://github.com/bitcoin/bitcoin/pull/8068)). - [`BIP 158`](https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki): Compact Block Filters for Light Clients can be indexed as of **v0.19.0** ([PR #14121](https://github.com/bitcoin/bitcoin/pull/14121)). -* [`BIP 159`](https://github.com/bitcoin/bips/blob/master/bip-0159.mediawiki): The NODE_NETWORK_LIMITED service bit is signalled as of **v0.16.0** ([PR 11740](https://github.com/bitcoin/bitcoin/pull/11740)), and such nodes are connected to as of **v0.17.0** ([PR 10387](https://github.com/bitcoin/bitcoin/pull/10387)). +* [`BIP 159`](https://github.com/bitcoin/bips/blob/master/bip-0159.mediawiki): The `NODE_NETWORK_LIMITED` service bit is signalled as of **v0.16.0** ([PR 11740](https://github.com/bitcoin/bitcoin/pull/11740)), and such nodes are connected to as of **v0.17.0** ([PR 10387](https://github.com/bitcoin/bitcoin/pull/10387)). * [`BIP 173`](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki): Bech32 addresses for native Segregated Witness outputs are supported as of **v0.16.0** ([PR 11167](https://github.com/bitcoin/bitcoin/pull/11167)). * [`BIP 174`](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki): RPCs to operate on Partially Signed Bitcoin Transactions (PSBT) are present as of **v0.17.0** ([PR 13557](https://github.com/bitcoin/bitcoin/pull/13557)). * [`BIP 176`](https://github.com/bitcoin/bips/blob/master/bip-0176.mediawiki): Bits Denomination [QT only] is supported as of **v0.16.0** ([PR 12035](https://github.com/bitcoin/bitcoin/pull/12035)). From e1bacb591a75375461cdf9e39e4dda4acdbd6981 Mon Sep 17 00:00:00 2001 From: Fabian Jahr Date: Mon, 14 Oct 2019 00:19:47 +0200 Subject: [PATCH 013/388] rpc: fix -rpcclienttimeout 0 option Github-Pull: #17131 Rebased-From: b3b26e149c34fee9c7ae8548c6e547ec6254b441 --- src/bitcoin-cli.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp index a6756fcce7..7fdd8e9466 100644 --- a/src/bitcoin-cli.cpp +++ b/src/bitcoin-cli.cpp @@ -314,7 +314,20 @@ static UniValue CallRPC(BaseRequestHandler *rh, const std::string& strMethod, co // Synchronously look up hostname raii_evhttp_connection evcon = obtain_evhttp_connection_base(base.get(), host, port); - evhttp_connection_set_timeout(evcon.get(), gArgs.GetArg("-rpcclienttimeout", DEFAULT_HTTP_CLIENT_TIMEOUT)); + + // Set connection timeout + { + const int timeout = gArgs.GetArg("-rpcclienttimeout", DEFAULT_HTTP_CLIENT_TIMEOUT); + if (timeout > 0) { + evhttp_connection_set_timeout(evcon.get(), timeout); + } else { + // Indefinite request timeouts are not possible in libevent-http, so we + // set the timeout to a very long time period instead. + + constexpr int YEAR_IN_SECONDS = 31556952; // Average length of year in Gregorian calendar + evhttp_connection_set_timeout(evcon.get(), 5 * YEAR_IN_SECONDS); + } + } HTTPReply response; raii_evhttp_request req = obtain_evhttp_request(http_request_done, (void*)&response); From 334e27ed5aae2dbe767b73eac8876edf5ab2b797 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Fri, 18 Oct 2019 09:12:15 +0300 Subject: [PATCH 014/388] util: Filter out macOS process serial number Github-Pull: #17184 Rebased-From: b5f0be38790ecc87a1e537edeca5923f608bc68c --- src/util/system.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/util/system.cpp b/src/util/system.cpp index f22256615f..3820006072 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -380,6 +380,15 @@ bool ArgsManager::ParseParameters(int argc, const char* const argv[], std::strin for (int i = 1; i < argc; i++) { std::string key(argv[i]); + +#ifdef MAC_OSX + // At the first time when a user gets the "App downloaded from the + // internet" warning, and clicks the Open button, macOS passes + // a unique process serial number (PSN) as -psn_... command-line + // argument, which we filter out. + if (key.substr(0, 5) == "-psn_") continue; +#endif + if (key == "-") break; //bitcoin-tx using stdin std::string val; size_t is_index = key.find('='); From d5c36ce0c4b92ee7a2b5f256ec5f73cd1c95d21d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Barbosa?= Date: Mon, 14 Oct 2019 20:46:34 +0100 Subject: [PATCH 015/388] gui: Make polling in ClientModel asynchronous With this change polling runs in a different thread to prevent disturbing the event loop. Github-Pull: #17135 Rebased-From: 6b6be41c36e4fe9a74bed50e7f0a06532ab1260b --- src/qt/clientmodel.cpp | 31 +++++++++++++++++++------------ src/qt/clientmodel.h | 4 ++-- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp index 238be08480..5b216b2705 100644 --- a/src/qt/clientmodel.cpp +++ b/src/qt/clientmodel.cpp @@ -19,6 +19,7 @@ #include #include +#include #include static int64_t nLastHeaderTipUpdateNotification = 0; @@ -30,15 +31,26 @@ ClientModel::ClientModel(interfaces::Node& node, OptionsModel *_optionsModel, QO optionsModel(_optionsModel), peerTableModel(nullptr), banTableModel(nullptr), - pollTimer(nullptr) + m_thread(new QThread(this)) { cachedBestHeaderHeight = -1; cachedBestHeaderTime = -1; peerTableModel = new PeerTableModel(m_node, this); banTableModel = new BanTableModel(m_node, this); - pollTimer = new QTimer(this); - connect(pollTimer, &QTimer::timeout, this, &ClientModel::updateTimer); - pollTimer->start(MODEL_UPDATE_DELAY); + + QTimer* timer = new QTimer; + timer->setInterval(MODEL_UPDATE_DELAY); + connect(timer, &QTimer::timeout, [this] { + // no locking required at this point + // the following calls will acquire the required lock + Q_EMIT mempoolSizeChanged(m_node.getMempoolSize(), m_node.getMempoolDynamicUsage()); + Q_EMIT bytesChanged(m_node.getTotalBytesRecv(), m_node.getTotalBytesSent()); + }); + connect(m_thread, &QThread::finished, timer, &QObject::deleteLater); + connect(m_thread, &QThread::started, [timer] { timer->start(); }); + // move timer to thread so that polling doesn't disturb main event loop + timer->moveToThread(m_thread); + m_thread->start(); subscribeToCoreSignals(); } @@ -46,6 +58,9 @@ ClientModel::ClientModel(interfaces::Node& node, OptionsModel *_optionsModel, QO ClientModel::~ClientModel() { unsubscribeFromCoreSignals(); + + m_thread->quit(); + m_thread->wait(); } int ClientModel::getNumConnections(unsigned int flags) const @@ -90,14 +105,6 @@ int64_t ClientModel::getHeaderTipTime() const return cachedBestHeaderTime; } -void ClientModel::updateTimer() -{ - // no locking required at this point - // the following calls will acquire the required lock - Q_EMIT mempoolSizeChanged(m_node.getMempoolSize(), m_node.getMempoolDynamicUsage()); - Q_EMIT bytesChanged(m_node.getTotalBytesRecv(), m_node.getTotalBytesSent()); -} - void ClientModel::updateNumConnections(int numConnections) { Q_EMIT numConnectionsChanged(numConnections); diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h index 95f4521f06..d3a95d531e 100644 --- a/src/qt/clientmodel.h +++ b/src/qt/clientmodel.h @@ -90,7 +90,8 @@ class ClientModel : public QObject PeerTableModel *peerTableModel; BanTableModel *banTableModel; - QTimer *pollTimer; + //! A thread to interact with m_node asynchronously + QThread* const m_thread; void subscribeToCoreSignals(); void unsubscribeFromCoreSignals(); @@ -110,7 +111,6 @@ class ClientModel : public QObject void showProgress(const QString &title, int nProgress); public Q_SLOTS: - void updateTimer(); void updateNumConnections(int numConnections); void updateNetworkActive(bool networkActive); void updateAlert(); From 8082b3847ad24f54ee690651313a511829545246 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Fri, 25 Oct 2019 13:05:17 +0000 Subject: [PATCH 016/388] http: add missing header bootlegged by boost < 1.72 httpserver.cpp:74:10: error: no template named 'deque' in namespace 'std' std::deque> queue; ~~~~~^ Github-Pull: #17249 Rebased-From: a5929130223973636f3fd25fbfaf2953f2ec96a9 Tree-SHA512: 47ca773676a3f181bb265af30df6ca83669ffbb2dc79ce7c1ffd6f2d110df8406c2f73daddbcb1c038661472a1be93f46e9d3b8c3d2f33fe484f5774070e59ae --- src/httpserver.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/httpserver.cpp b/src/httpserver.cpp index d17667223b..95d2eb30e5 100644 --- a/src/httpserver.cpp +++ b/src/httpserver.cpp @@ -15,6 +15,7 @@ #include #include +#include #include #include #include From e39c9cff1a626ee038a541258d6e271ce63969a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Barbosa?= Date: Sat, 12 Oct 2019 22:26:47 +0100 Subject: [PATCH 017/388] gui: Fix start timer from non QThread Github-Pull: #17120 Rebased-From: a8f5026d6d992fd8d72908c848c5028f0f9a8cd1 Tree-SHA512: 5f8cbfd5044d2c0df7dbfc54e7d94f93da96d0adecd23007e82acc38bc3c7984a685c9596cbd449f559cf42db9e1b99612765328004c5a45655a8e375482a8a8 --- src/qt/walletcontroller.cpp | 6 ++++++ src/qt/walletmodel.cpp | 13 ++++++++----- src/qt/walletmodel.h | 5 +++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/qt/walletcontroller.cpp b/src/qt/walletcontroller.cpp index fa6f9f3f16..a8de5392b4 100644 --- a/src/qt/walletcontroller.cpp +++ b/src/qt/walletcontroller.cpp @@ -108,6 +108,12 @@ WalletModel* WalletController::getOrCreateWallet(std::unique_ptrsetParent(this); m_wallets.push_back(wallet_model); + // WalletModel::startPollBalance needs to be called in a thread managed by + // Qt because of startTimer. Considering the current thread can be a RPC + // thread, better delegate the calling to Qt with Qt::AutoConnection. + const bool called = QMetaObject::invokeMethod(wallet_model, "startPollBalance"); + assert(called); + connect(wallet_model, &WalletModel::unload, [this, wallet_model] { // Defer removeAndDeleteWallet when no modal widget is active. // TODO: remove this workaround by removing usage of QDiallog::exec. diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index 49a13330ec..05ab805bfd 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -44,11 +44,6 @@ WalletModel::WalletModel(std::unique_ptr wallet, interfaces: transactionTableModel = new TransactionTableModel(platformStyle, this); recentRequestsTableModel = new RecentRequestsTableModel(this); - // This timer will be fired repeatedly to update the balance - pollTimer = new QTimer(this); - connect(pollTimer, &QTimer::timeout, this, &WalletModel::pollBalanceChanged); - pollTimer->start(MODEL_UPDATE_DELAY); - subscribeToCoreSignals(); } @@ -57,6 +52,14 @@ WalletModel::~WalletModel() unsubscribeFromCoreSignals(); } +void WalletModel::startPollBalance() +{ + // This timer will be fired repeatedly to update the balance + QTimer* timer = new QTimer(this); + connect(timer, &QTimer::timeout, this, &WalletModel::pollBalanceChanged); + timer->start(MODEL_UPDATE_DELAY); +} + void WalletModel::updateStatus() { EncryptionStatus newEncryptionStatus = getEncryptionStatus(); diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h index 54428aec08..a1bdba8222 100644 --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -255,8 +255,6 @@ class WalletModel : public QObject EncryptionStatus cachedEncryptionStatus; int cachedNumBlocks; - QTimer *pollTimer; - void subscribeToCoreSignals(); void unsubscribeFromCoreSignals(); void checkBalanceChanged(const interfaces::WalletBalances& new_balances); @@ -292,6 +290,9 @@ class WalletModel : public QObject void canGetAddressesChanged(); public Q_SLOTS: + /* Starts a timer to periodically update the balance */ + void startPollBalance(); + /* Wallet status might have changed */ void updateStatus(); /* New transaction, or transaction changed status */ From eb5a899d5a973fe5f4700a57da82753f05138460 Mon Sep 17 00:00:00 2001 From: fanquake Date: Fri, 25 Oct 2019 13:18:38 -0400 Subject: [PATCH 018/388] gui: disable font antialiasing for QR image address More info available here: https://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum Github-Pull: #17257 Rebased-From: e156b9d8b974f57253306b693a03aa80322ebc6c Tree-SHA512: 6e36d626215d5e66796bd3935037eef89ae810e4855e321f9f37b90c3be0b61de21cd655f23bc6a29f41038b5179d92578ab19ab89ccd525d9389ab868456827 --- src/qt/qrimagewidget.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt/qrimagewidget.cpp b/src/qt/qrimagewidget.cpp index bf1baf5470..2332d52b9a 100644 --- a/src/qt/qrimagewidget.cpp +++ b/src/qt/qrimagewidget.cpp @@ -71,6 +71,7 @@ bool QRImageWidget::setQR(const QString& data, const QString& text) if (!text.isEmpty()) { QFont font = GUIUtil::fixedPitchFont(); + font.setStyleStrategy(QFont::NoAntialias); QRect paddedRect = qrAddrImage.rect(); // calculate ideal font size From f6aab42bba9d7d78af176d047d0860fe3c60e838 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sat, 26 Oct 2019 19:31:03 +0200 Subject: [PATCH 019/388] build: bump version to rc3 Tree-SHA512: 078c48b4bb0558c8600211b3cc6ae7e2ce6add7ea907da0100f862f51fcb1119639fddd028396fa79899dae8cab606bf388b3a4c92f3fbe8e191fda1b63c80fa --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index f0befe66fa..7276e41af4 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 19) define(_CLIENT_VERSION_REVISION, 0) define(_CLIENT_VERSION_BUILD, 0) -define(_CLIENT_VERSION_RC, 1) +define(_CLIENT_VERSION_RC, 3) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2019) define(_COPYRIGHT_HOLDERS,[The %s developers]) From 7358ae6d71cd0e5908a1203b61cd4e54fe4af5de Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sat, 26 Oct 2019 19:34:36 +0200 Subject: [PATCH 020/388] gui: rc3 translations update Tree-SHA512: 84fae5ac33200ba995384f87d43c3d0b138043e47094dd62731e1558fdc74a8df283046437f1d0c228cdee519bbf9c167a1696a7a4d915f48da97c9524f320c2 --- src/Makefile.qt_locale.include | 1 + src/qt/bitcoin_locale.qrc | 1 + src/qt/locale/bitcoin_ar.ts | 4 + src/qt/locale/bitcoin_ca.ts | 1012 ++++++++++++++++++++++++++++- src/qt/locale/bitcoin_cy.ts | 4 +- src/qt/locale/bitcoin_da.ts | 8 +- src/qt/locale/bitcoin_de.ts | 30 +- src/qt/locale/bitcoin_el.ts | 26 +- src/qt/locale/bitcoin_en.ts | 31 +- src/qt/locale/bitcoin_en_GB.ts | 166 ++++- src/qt/locale/bitcoin_es.ts | 831 +++++++++++++---------- src/qt/locale/bitcoin_es_CL.ts | 18 +- src/qt/locale/bitcoin_es_CO.ts | 6 +- src/qt/locale/bitcoin_es_MX.ts | 8 + src/qt/locale/bitcoin_es_VE.ts | 4 +- src/qt/locale/bitcoin_eu.ts | 384 ++++++++++- src/qt/locale/bitcoin_fa.ts | 18 +- src/qt/locale/bitcoin_fa_IR.ts | 173 +++++ src/qt/locale/bitcoin_fi.ts | 82 ++- src/qt/locale/bitcoin_fil.ts | 26 +- src/qt/locale/bitcoin_fr.ts | 2 +- src/qt/locale/bitcoin_he.ts | 21 +- src/qt/locale/bitcoin_hi.ts | 20 +- src/qt/locale/bitcoin_hr.ts | 170 ++++- src/qt/locale/bitcoin_hu.ts | 28 +- src/qt/locale/bitcoin_id.ts | 22 +- src/qt/locale/bitcoin_it.ts | 42 +- src/qt/locale/bitcoin_ja.ts | 2 +- src/qt/locale/bitcoin_km.ts | 4 +- src/qt/locale/bitcoin_ko.ts | 24 +- src/qt/locale/bitcoin_lt.ts | 10 +- src/qt/locale/bitcoin_mr_IN.ts | 6 +- src/qt/locale/bitcoin_ms.ts | 4 +- src/qt/locale/bitcoin_nb.ts | 10 +- src/qt/locale/bitcoin_ne.ts | 2 +- src/qt/locale/bitcoin_nl.ts | 46 +- src/qt/locale/bitcoin_pl.ts | 24 +- src/qt/locale/bitcoin_pt.ts | 18 +- src/qt/locale/bitcoin_pt_BR.ts | 184 +++++- src/qt/locale/bitcoin_ro.ts | 14 +- src/qt/locale/bitcoin_ru.ts | 8 +- src/qt/locale/bitcoin_sk.ts | 8 +- src/qt/locale/bitcoin_sl.ts | 126 ++-- src/qt/locale/bitcoin_sn.ts | 12 +- src/qt/locale/bitcoin_sr@latin.ts | 4 +- src/qt/locale/bitcoin_sv.ts | 14 +- src/qt/locale/bitcoin_szl.ts | 2 +- src/qt/locale/bitcoin_ta.ts | 16 + src/qt/locale/bitcoin_te.ts | 8 +- src/qt/locale/bitcoin_tr.ts | 6 +- src/qt/locale/bitcoin_uk.ts | 20 +- src/qt/locale/bitcoin_ur.ts | 2 +- src/qt/locale/bitcoin_vi.ts | 44 +- src/qt/locale/bitcoin_yo.ts | 10 +- src/qt/locale/bitcoin_zh_CN.ts | 16 +- src/qt/locale/bitcoin_zh_TW.ts | 2 +- 56 files changed, 3079 insertions(+), 705 deletions(-) create mode 100644 src/qt/locale/bitcoin_fa_IR.ts diff --git a/src/Makefile.qt_locale.include b/src/Makefile.qt_locale.include index 873e1a3c27..be13d33bd1 100644 --- a/src/Makefile.qt_locale.include +++ b/src/Makefile.qt_locale.include @@ -17,6 +17,7 @@ QT_TS = \ qt/locale/bitcoin_et.ts \ qt/locale/bitcoin_eu.ts \ qt/locale/bitcoin_fa.ts \ + qt/locale/bitcoin_fa_IR.ts \ qt/locale/bitcoin_fi.ts \ qt/locale/bitcoin_fil.ts \ qt/locale/bitcoin_fr.ts \ diff --git a/src/qt/bitcoin_locale.qrc b/src/qt/bitcoin_locale.qrc index 2c0230a10e..483b0b1b18 100644 --- a/src/qt/bitcoin_locale.qrc +++ b/src/qt/bitcoin_locale.qrc @@ -18,6 +18,7 @@ locale/bitcoin_et.qm locale/bitcoin_eu.qm locale/bitcoin_fa.qm + locale/bitcoin_fa_IR.qm locale/bitcoin_fi.qm locale/bitcoin_fil.qm locale/bitcoin_fr.qm diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts index 3cb4628c42..84f0abebc5 100644 --- a/src/qt/locale/bitcoin_ar.ts +++ b/src/qt/locale/bitcoin_ar.ts @@ -89,6 +89,10 @@ BitcoinGUI + + Proxy is <b>enabled</b>: %1 + %1 اتصال نشط بشبكة البيتكوين + No wallets available المحفظة الرقمية غير متوفرة diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index 78113b0185..bdee2bd179 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -7,11 +7,11 @@ Create a new address - Crea una nova adreça + Crea una adreça nova &New - &Nou + &Nova Copy the currently selected address to the system clipboard @@ -27,7 +27,7 @@ Delete the currently selected address from the list - Elimina l'adreça sel·leccionada actualment de la llista + Elimina l'adreça seleccionada actualment de la llista Enter address or label to search @@ -125,31 +125,35 @@ New passphrase - Nova contrasenya + Contrasenya nova Repeat new passphrase - Repetiu la nova contrasenya + Repetiu la contrasenya nova + + + Show passphrase + Mostra la contrasenya Encrypt wallet - Xifra el moneder + Xifra la cartera This operation needs your wallet passphrase to unlock the wallet. - Aquesta operació requereix la contrasenya del moneder per a desbloquejar-lo. + Aquesta operació requereix la contrasenya de la cartera per a desblocar-la. Unlock wallet - Desbloqueja el moneder + Desbloca la cartera This operation needs your wallet passphrase to decrypt the wallet. - Aquesta operació requereix la contrasenya del moneder per desxifrar-lo. + Aquesta operació requereix la contrasenya de la cartera per a desxifrar-la. Decrypt wallet - Desxifra el moneder + Desxifra la cartera Change passphrase @@ -157,27 +161,39 @@ Confirm wallet encryption - Confirma el xifrat del moneder + Confirma el xifratge de la cartera Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Avís: si xifreu el vostre moneder i perdeu la contrasenya, <b>PERDREU TOTS ELS VOSTRES BITCOINS</b>! + Avís: si xifreu la cartera i perdeu la contrasenya, <b>PERDREU TOTS ELS BITCOINS</b>! Are you sure you wish to encrypt your wallet? - Esteu segurs que voleu xifrar el vostre moneder? + Esteu segurs que voleu xifrar la vostra cartera? Wallet encrypted - Moneder xifrat + Cartera xifrada + + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Introduïu la contrasenya nova a la cartera.<br/>Utilitzeu una contrasenya de <b>deu o més caràcters aleatoris</b>, o <b>vuit o més paraules</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Introduïu la contrasenya antiga i la contrasenya nova a la cartera. + + + Your wallet is now encrypted. + S'ha xifrat la cartera. IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANT: Tota copia de seguretat del fitxer del moneder que hàgiu realitzat hauria de ser reemplaçada pel fitxer xifrat del moneder recentment generat. Per motius de seguretat, les còpies de seguretat anteriors del fitxer del moneder no xifrat esdevindran inusables tan aviat com comenci a utilitzar el nou moneder xifrat. + IMPORTANT: Tota copia de seguretat del fitxer de la cartera que hàgiu realitzat hauria de ser reemplaçada pel fitxer xifrat de la cartera generat recentment. Per motius de seguretat, les còpies de seguretat anteriors del fitxer de la cartera no xifrada esdevindran inusables tan aviat com comenceu a utilitzar la cartera xifrada nova. Wallet encryption failed - El xifrat del moneder ha fallat + Ha fallat el xifratge de la cartera Wallet encryption failed due to an internal error. Your wallet was not encrypted. @@ -277,6 +293,10 @@ Modify configuration options for %1 Modifica les opcions de configuració de %1 + + &Encrypt Wallet... + &Encripta la cartera... + &Backup Wallet... &Realitza una còpia de seguretat del moneder... @@ -301,13 +321,151 @@ Network activity disabled. S'ha inhabilitat l'activitat de la xarxa. + + Backup wallet to another location + Realitza una còpia de seguretat de la cartera a una altra ubicació + + + Change the passphrase used for wallet encryption + Canvia la contrasenya d'encriptació de la cartera + + + Encrypt the private keys that belong to your wallet + Encripta les claus privades pertanyents de la cartera + + + &Sending addresses + Adreces d'&enviament + + + &Receiving addresses + Adreces de &recepció + + + Open Wallet + Obre la cartera + + + Open a wallet + Obre la cartera + + + Close Wallet... + Tanca la cartera... + + + Close wallet + Tanca la cartera + + + default wallet + cartera predeterminada + + + No wallets available + No hi ha cap cartera disponible + + + Zoom + Escala + + + Main Window + Finestra principal + Error: %1 Avís: %1 + + Wallet: %1 + + Cartera: %1 + + + + Private key <b>disabled</b> + Clau privada <b>inhabilitada</b> + + + Wallet is <b>encrypted</b> and currently <b>unlocked</b> + La cartera està <b>encriptada</b> i actualment <b>desblocada</b> + + + Wallet is <b>encrypted</b> and currently <b>locked</b> + La cartera està <b>encriptada</b> i actualment <b>blocada</b> + CoinControlDialog + + Quantity: + Quantitat: + + + Bytes: + Bytes: + + + Amount: + Import: + + + Fee: + Comissió: + + + Dust: + Polsim: + + + After Fee: + Comissió posterior: + + + Change: + Canvi: + + + Amount + Import + + + Date + Data + + + Copy label + Copia l'etiqueta + + + Copy amount + Copia l'import + + + Copy quantity + Copia la quantitat + + + Copy fee + Copia la comissió + + + Copy after fee + Copia la comissió posterior + + + Copy bytes + Copia els bytes + + + Copy dust + Copia el polsim + + + Copy change + Copia el canvi + (no label) (sense etiqueta) @@ -321,6 +479,10 @@ EditAddressDialog + + Could not unlock wallet. + No s'ha pogut desblocar la cartera. + FreespaceChecker @@ -330,10 +492,30 @@ Intro + + The wallet will also be stored in this directory. + La cartera també serà emmagatzemat en aquest directori. + ModalOverlay - + + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + És possible que les transaccions recents encara no siguin visibles i, per tant, el saldo de la vostra cartera podria ser incorrecte. Aquesta informació serà correcta una vegada que la cartera hagi finalitzat la sincronització amb la xarxa bitcoin, tal com es detalla més avall. + + + Last block time + Últim temps de bloc + + + Hide + Amaga + + + Unknown. Syncing Headers (%1, %2%)... + Desconegut. Sincronització de les capçaleres (%1, %2%)... + + OpenURIDialog @@ -343,21 +525,53 @@ default wallet moneder per defecte - + + Opening Wallet <b>%1</b>... + S'està obrint la cartera <b>%1</b>... + + OptionsDialog + + MiB + MiB + OverviewPage + + The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + La informació mostrada pot no estar al dia. El vostra cartera se sincronitza automàticament amb la xarxa Bitcoin un cop s'ha establert connexió, però aquest proces encara no ha finalitzat. + PaymentServer + + You are using a BIP70 URL which will be unsupported in the future. + Esteu fent servir un URL BIP70, que podria no tenir suport en el futur. + PeerTableModel - + + User Agent + Agent d'usuari + + + Sent + Enviat + + + Received + Rebut + + QObject + + Amount + Import + Error: Specified data directory "%1" does not exist. Error: El directori de dades especificat «%1» no existeix. @@ -373,6 +587,10 @@ QRImageWidget + + &Save Image... + De&sa la imatge... + Resulting URI too long, try to reduce the text for label / message. URI resultant massa llarga, intenta reduir el text per a la etiqueta / missatge @@ -384,9 +602,277 @@ RPCConsole - + + Blocksdir + Directori de blocs + + + Name + Nom + + + Number of connections + Nombre de connexions + + + Block chain + Cadena de blocs + + + Current number of blocks + Nombre de blocs actuals + + + Memory Pool + Reserva de memòria + + + Current number of transactions + Nombre actual de transaccions + + + Memory usage + Ús de memòria + + + Wallet: + Cartera: + + + (none) + (cap) + + + &Reset + &Reinicialitza + + + Received + Rebut + + + Sent + Enviat + + + &Peers + &Iguals + + + Banned peers + Iguals bandejats + + + Select a peer to view detailed information. + Seleccioneu un igual per mostrar informació detallada. + + + Whitelisted + A la llista blanca + + + Direction + Direcció + + + Version + Versió + + + Starting Block + Bloc d'inici + + + Synced Headers + Capçaleres sincronitzades + + + Synced Blocks + Blocs sincronitzats + + + User Agent + Agent d'usuari + + + Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. + Obre el fitxer de registre de depuració %1 del directori de dades actual. Això pot trigar uns segons en fitxers de registre grans. + + + Decrease font size + Disminueix la mida de la lletra + + + Increase font size + Augmenta la mida de la lletra + + + Services + Serveis + + + Ban Score + Puntuació de bandeig + + + Connection Time + Temps de connexió + + + Last Send + Darrer enviament + + + Last Receive + Darrera recepció + + + Ping Time + Temps de ping + + + The duration of a currently outstanding ping. + La duració d'un ping més destacat actualment. + + + Ping Wait + Espera de ping + + + Time Offset + Diferència horària + + + Last block time + Últim temps de bloc + + + &Open + &Obre + + + &Console + &Consola + + + &Network Traffic + Trà&nsit de la xarxa + + + Totals + Totals + + + In: + Dins: + + + Out: + Fora: + + + Debug log file + Fitxer de registre de depuració + + + Clear console + Neteja la consola + + + 1 &hour + 1 &hora + + + 1 &day + 1 &dia + + + 1 &week + 1 &setmana + + + 1 &year + 1 &any + + + &Disconnect + &Desconnecta + + + Ban for + Bandeja per + + + &Unban + &Desbandeja + + + Welcome to the %1 RPC console. + Us donem la benvinguda a la consola RPC de %1 + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + ADVERTIMENT: Els estafadors han estat actius, dient als usuaris que escriguin ordres aquí, robant els contingut de les seves carteres. No utilitzeu aquesta consola sense comprendre completament les ramificacions d'una ordre. + + + Executing command without any wallet + S'està executant l'ordre sense cap cartera + + + Executing command using "%1" wallet + S'està executant comanda usant la cartera "%1" + + + via %1 + a través de %1 + + + never + mai + + + Inbound + Entrant + + + Outbound + Sortint + + + Yes + + + + No + No + + + Unknown + Desconegut + + ReceiveCoinsDialog + + &Amount: + Im&port: + + + &Label: + &Etiqueta: + + + &Message: + &Missatge: + + + Clear all fields of the form. + Neteja tots els camps del formulari. + + + Clear + Neteja + Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. Les adreces segwit natives (més conegudes com Bech32 o BIP-173) redueixen les vostres comisions de les transaccions i ofereixen millor protecció contra errades tipogràfiques, però els moneders antics no les suporten. Quan desmarqui la casella, es generarà una adreça compatible amb moneders antics. @@ -395,31 +881,267 @@ Generate native segwit (Bech32) address Generar una adreça segwit nativa (Bech32) - + + Copy URI + Copia l'URI + + + Copy label + Copia l'etiqueta + + + Copy message + Copia el missatge + + + Copy amount + Copia l'import + + ReceiveRequestDialog + + QR Code + Codi QR + + + Copy &URI + Copia l'&URI + + + Copy &Address + Copia l'&adreça + + + &Save Image... + De&sa la imatge... + + + Request payment to %1 + Sol·licita un pagament a %1 + + + Payment information + Informació de pagament + + + URI + URI + Address Adreça + + Amount + Import + Label Etiqueta - + + Message + Missatge + + + Wallet + Cartera + + RecentRequestsTableModel + + Date + Data + Label Etiqueta + + Message + Missatge + (no label) (sense etiqueta) - + + (no message) + (sense missatge) + + + (no amount requested) + (no s'ha sol·licitat import) + + + Requested + Sol·licitat + + SendCoinsDialog + + Send Coins + Envia monedes + + + Coin Control Features + Característiques de control de les monedes + + + Inputs... + Entrades... + + + automatically selected + seleccionat automàticament + + + Insufficient funds! + Fons insuficients! + + + Quantity: + Quantitat: + + + Bytes: + Bytes: + + + Amount: + Import: + + + Fee: + Comissió: + + + After Fee: + Comissió posterior: + + + Change: + Canvi: + + + Transaction Fee: + Comissió de transacció + + + Choose... + Tria... + + + per kilobyte + per kilobyte + + + Hide + Amaga + + + Recommended: + Recomanada: + + + Custom: + Personalitzada: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (No s'ha inicialitzat encara la comissió intel·ligent. Normalment pren uns pocs blocs...) + + + Send to multiple recipients at once + Envia a múltiples destinataris al mateix temps + + + Add &Recipient + Afegeix &destinatari + + + Clear all fields of the form. + Neteja tots els camps del formulari. + + + Dust: + Polsim: + + + Clear &All + Neteja-ho &tot + + + Copy quantity + Copia la quantitat + + + Copy amount + Copia l'import + + + Copy fee + Copia la comissió + + + Copy after fee + Copia la comissió posterior + + + Copy bytes + Copia els bytes + + + Copy dust + Copia el polsim + + + Copy change + Copia el canvi + + + %1 (%2 blocks) + %1 (%2 blocs) + + + from wallet '%1' + de la cartera "%1" + + + Are you sure you want to send? + Esteu segur que ho voleu enviar? + + + or + o + + + You can increase the fee later (signals Replace-By-Fee, BIP-125). + Pot incrementar la comissió més tard (senyala Replace-By-Fee o substitució per comissió, BIP-125). + + + Please, review your transaction. + Reviseu la transacció + + + Transaction fee + Comissió de transacció + + + Total Amount + Import total + + + Confirm send coins + Confirma l'enviament de monedes + + + The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? + L'adreça que heu seleccionat per al canvi no és part d'aquesta cartera. Tots els fons de la vostra cartera es poden enviar a aquesta adreça. N'esteu segur? + (no label) (sense etiqueta) @@ -427,27 +1149,143 @@ SendCoinsEntry - + + &Label: + &Etiqueta: + + + Alt+A + Alta+A + + + Paste address from clipboard + Enganxa l'adreça del porta-retalls + + + Alt+P + Alt+P + + + Use available balance + Usa el saldo disponible + + + Message: + Missatge: + + + This is an unauthenticated payment request. + Aquesta és una sol·licitud de pagament no autenticada. + + + This is an authenticated payment request. + Aquesta és una sol·licitud de pagament autenticada. + + + Pay To: + Paga a: + + + Memo: + Memo: + + + Enter a label for this address to add it to your address book + Introduïu una etiqueta per a aquesta adreça per afegir-la a la llibreta d'adreces + + SendConfirmationDialog - + + Yes + + + ShutdownWindow - + + %1 is shutting down... + %1 s'està tancant ... + + + Do not shut down the computer until this window disappears. + No apagueu l'ordinador fins que no desaparegui aquesta finestra. + + SignVerifyMessageDialog + + Signatures - Sign / Verify a Message + Signatures - Signa o verifica un missatge + + + &Sign Message + &Signa el missatge + + + Alt+A + Alta+A + + + Paste address from clipboard + Enganxa l'adreça del porta-retalls + + + Alt+P + Alt+P + + + Enter the message you want to sign here + Introduïu aquí el missatge que voleu signar + + + Signature + Signatura + + + Clear &All + Neteja-ho &tot + + + Wallet unlock was cancelled. + S'ha cancel·lat el desblocatge de la cartera. + TrafficGraphWidget TransactionDesc + + Date + Data + + + Transaction fee + Comissió de transacció + + + Message + Missatge + + + Transaction virtual size + Mida virtual de la transacció + + + Amount + Import + TransactionDescDialog TransactionTableModel + + Date + Data + Label Etiqueta @@ -459,10 +1297,26 @@ TransactionView + + Enter address, transaction id, or label to search + Introduïu una adreça, la id de la transacció o l'etiqueta per a cercar + + + Copy label + Copia l'etiqueta + + + Copy amount + Copia l'import + Comma separated file (*.csv) Fitxer separat per comes (*.csv) + + Date + Data + Label Etiqueta @@ -481,13 +1335,29 @@ WalletController + + Close wallet + Tanca la cartera + WalletFrame - + + No wallet has been loaded. + No s'ha carregat cap cartera. + + WalletModel - + + Send Coins + Envia monedes + + + default wallet + cartera predeterminada + + WalletView @@ -498,8 +1368,92 @@ Export the data in the current tab to a file Exporta les dades de la pestanya actual a un fitxer - + + Backup Wallet + Còpia de seguretat de la cartera + + + Wallet Data (*.dat) + Dades de cartera (*.dat) + + + There was an error trying to save the wallet data to %1. + S'ha produït un error en provar de desar les dades de la cartera a %1. + + + The wallet data was successfully saved to %1. + S'han desat correctament %1 les dades de la cartera a . + + + Cancel + Cancel·la + + bitcoin-core + + Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) + Poda: la darrera sincronització de la cartera va més enllà de les dades podades. Cal que activeu -reindex (baixeu tota la cadena de blocs de nou en cas de node podat) + + + Error initializing wallet database environment %s! + Error inicialitzant l'entorn de la base de dades de la cartera %s! + + + Error loading %s: Wallet corrupted + S'ha produït un error en carregar %s: la cartera és corrupta + + + Error loading %s: Wallet requires newer version of %s + S'ha produït un error en carregar %s: la cartera requereix una versió més nova de %s + + + Unable to generate keys + No s'han pogut generar les claus + + + Wallet needed to be rewritten: restart %s to complete + Cal tornar a escriure la cartera: reinicieu %s per a completar-ho + + + Section [%s] is not recognized. + No es reconeix la secció [%s] + + + Unable to generate initial keys + No s'han pogut generar les claus inicials + + + Verifying wallet(s)... + S'estan verificant les carteres... + + + Zapping all transactions from wallet... + Se suprimeixen totes les transaccions de la cartera.. + + + Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. + Advertència: la cartera és malmesa, les dades es recuperen! Original %s desat com a %s en %s; si el vostre saldo o transaccions són incorrectes, haureu de restaurar des d'una còpia de seguretat. + + + Error loading wallet %s. Duplicate -wallet filename specified. + S'ha produït un error en carregar la cartera %s. S'ha especificat un nom de fitxer duplicat -wallet. + + + The wallet will avoid paying less than the minimum relay fee. + La cartera evitarà pagar menys de la comissió de tramesa mínima + + + Cannot write to data directory '%s'; check permissions. + No es pot escriure en el directori de dades "%s". Reviseu-ne els permisos. + + + Loading wallet... + S'està carregant la cartera... + + + Cannot downgrade wallet + No es pot reduir la versió de la cartera + \ No newline at end of file diff --git a/src/qt/locale/bitcoin_cy.ts b/src/qt/locale/bitcoin_cy.ts index b28e88651d..710fd4cad6 100644 --- a/src/qt/locale/bitcoin_cy.ts +++ b/src/qt/locale/bitcoin_cy.ts @@ -43,7 +43,7 @@ Choose the address to send coins to - Dewis y cyfeiriad i yrru'r arian + Dewis y cyfeiriad i yrru'r arian Choose the address to receive coins with @@ -193,7 +193,7 @@ Wallet passphrase was successfully changed. - Newid cyfrinair waled yn llwyddiannus. + Newid cyfrinair waled yn llwyddiannus. Warning: The Caps Lock key is on! diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts index 3383052009..254cb5557a 100644 --- a/src/qt/locale/bitcoin_da.ts +++ b/src/qt/locale/bitcoin_da.ts @@ -71,7 +71,7 @@ These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Disse er dine Bitcoin adresser til at modtage betalinger. Benyt 'Opret ny modtager adresse' knappen i modtag fanen for at oprette nye adresser. + Disse er dine Bitcoin adresser til at modtage betalinger. Benyt 'Opret ny modtager adresse' knappen i modtag fanen for at oprette nye adresser. &Copy Address @@ -1478,7 +1478,7 @@ 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' er ikke et gyldigt URI. Brug 'bitcoin:' istedet. + 'bitcoin://' er ikke et gyldigt URI. Brug 'bitcoin:' istedet. You are using a BIP70 URL which will be unsupported in the future. @@ -3363,7 +3363,7 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Can't generate a change-address key. No keys in the internal keypool and can't generate any keys. - Kan ikke generere en bytte-adresse nøgle. Ingen nøgler i den interne nøglepulje og kan ikke generere nogle nøgler. + Kan ikke generere en bytte-adresse nøgle. Ingen nøgler i den interne nøglepulje og kan ikke generere nogle nøgler. Cannot obtain a lock on data directory %s. %s is probably already running. @@ -3539,7 +3539,7 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Error: Disk space is too low! - Fejl: Disk pladsen er for lav! + Fejl: Disk pladsen er for lav! Loading banlist... diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index 1900bd74b5..88fe15bcba 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -818,10 +818,18 @@ Encrypt Wallet Wallet verschlüsseln + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Deaktiviert private Schlüssel für dieses Wallet. Wallets mit deaktivierten privaten Schlüsseln werden keine privaten Schlüssel haben und können keinen HD Seed oder private Schlüssel importieren. Das ist ideal für Wallets, die nur beobachten. + Disable Private Keys Private Keys deaktivieren + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Erzeugt ein leeres Wallet. Leere Wallets haben zu Anfang keine privaten Schlüssel oder Scripte. Private Schlüssel oder Adressen können importiert werden, ebenso können jetzt oder später HD-Seeds gesetzt werden. + Make Blank Wallet Eine leere Wallet erstellen @@ -946,6 +954,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Wenn Sie auf OK klicken, beginnt %1 mit dem Herunterladen und Verarbeiten der gesamten %4-Blockchain (%2GB), beginnend mit den frühesten Transaktionen in %3 beim ersten Start von %4. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Um diese Einstellung wiederherzustellen, muss die gesamte Blockchain neu heruntergeladen werden. Es ist schneller, die gesamte Chain zuerst herunterzuladen und später zu bearbeiten. Deaktiviert einige erweiterte Funktionen. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Diese initiale Synchronisation führt zur hohen Last und kann Harewareprobleme, die bisher nicht aufgetreten sind, mit ihrem Computer verursachen. Jedes Mal, wenn Sie %1 ausführen, wird der Download zum letzten Synchronisationspunkt fortgesetzt. @@ -966,6 +978,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Verwerfe Blöcke nachdem sie verifiziert worden sind, ausser die %1 GB (prune) + At least %1 GB of data will be stored in this directory, and it will grow over time. Mindestens %1 GB Daten werden in diesem Verzeichnis gespeichert, und sie werden mit der Zeit zunehmen. @@ -1476,6 +1492,14 @@ Cannot process payment request because BIP70 support was not compiled in. Zahlungsanfrage kann nicht verarbeitet werden, da die Unterstützung für BIP70 nicht mitkompiliert wurde. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Aufgrund der weit verbreiteten Sicherheitsmängel in BIP70 wird dringend empfohlen, dass alle Anweisungen des Händlers zum Wechseln von Wallets ignoriert werden. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Wenn du diese Fehlermeldung erhälst, solltest du Kontakt mit dem Händler aufnehmen und eine mit BIP21 kompatible URL zur Verwendung nachfragen. + Invalid payment address %1 Ungültige Zahlungsadresse %1 @@ -2410,7 +2434,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Please, review your transaction. - Bitte überprüfen sie ihre Transaktion. + Bitte überprüfen sie ihre Transaktion. Transaction fee @@ -3376,7 +3400,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate. - Fehler beim Verarbeiten von Blöcken. Sie müssen die Datenbank mit Hilfe des Arguments '-reindex-chainstate' neu aufbauen. + Fehler beim Verarbeiten von Blöcken. Sie müssen die Datenbank mit Hilfe des Arguments '-reindex-chainstate' neu aufbauen. Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain @@ -3783,7 +3807,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Cannot write to data directory '%s'; check permissions. - Es konnte nicht in das Datenverzeichnis '%s' geschrieben werden; Überprüfen Sie die Berechtigungen. + Es konnte nicht in das Datenverzeichnis '%s' geschrieben werden; Überprüfen Sie die Berechtigungen. Loading block index... diff --git a/src/qt/locale/bitcoin_el.ts b/src/qt/locale/bitcoin_el.ts index 9267ecf33e..8da642adaa 100644 --- a/src/qt/locale/bitcoin_el.ts +++ b/src/qt/locale/bitcoin_el.ts @@ -117,7 +117,7 @@ AskPassphraseDialog Passphrase Dialog - Φράση πρόσβασης + Φράση πρόσβασης Enter passphrase @@ -173,7 +173,7 @@ IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - ΣΗΜΑΝΤΙΚΟ: Τα προηγούμενα αντίγραφα ασφαλείας που έχετε κάνει από το αρχείο του πορτοφόλιου σας θα πρέπει να αντικατασταθουν με το νέο που δημιουργείται, κρυπτογραφημένο αρχείο πορτοφόλιου. Για λόγους ασφαλείας, τα προηγούμενα αντίγραφα ασφαλείας του μη κρυπτογραφημένου αρχείου πορτοφόλιου θα καταστουν άχρηστα μόλις αρχίσετε να χρησιμοποιείτε το νέο κρυπτογραφημένο πορτοφόλι. + ΣΗΜΑΝΤΙΚΟ: Τα προηγούμενα αντίγραφα ασφαλείας που έχετε κάνει από το αρχείο του πορτοφόλιου σας θα πρέπει να αντικατασταθουν με το νέο που δημιουργείται, κρυπτογραφημένο αρχείο πορτοφόλιου. Για λόγους ασφαλείας, τα προηγούμενα αντίγραφα ασφαλείας του μη κρυπτογραφημένου αρχείου πορτοφόλιου θα καταστουν άχρηστα μόλις αρχίσετε να χρησιμοποιείτε το νέο κρυπτογραφημένο πορτοφόλι. Wallet encryption failed @@ -197,7 +197,7 @@ Wallet decryption failed - Η αποκρυπτογράφηση του πορτοφολιού απέτυχε + Η αποκρυπτογράφηση του πορτοφολιού απέτυχε Wallet passphrase was successfully changed. @@ -347,7 +347,7 @@ &Receive - &Παραλαβή + &Παραλαβή &Show / Hide @@ -359,7 +359,7 @@ Encrypt the private keys that belong to your wallet - Κρυπτογραφήστε τα ιδιωτικά κλειδιά που ανήκουν στο πορτοφόλι σας + Κρυπτογραφήστε τα ιδιωτικά κλειδιά που ανήκουν στο πορτοφόλι σας Sign messages with your Bitcoin addresses to prove you own them @@ -659,7 +659,7 @@ Edit sending address - Επεξεργασία διεύθυνσης αποστολής + Επεξεργασία διεύθυνσης αποστολής The entered address "%1" is not a valid Bitcoin address. @@ -740,7 +740,7 @@ Use a custom data directory: - Προσαρμογή του φακέλου δεδομένων: + Προσαρμογή του φακέλου δεδομένων: Bitcoin @@ -824,7 +824,7 @@ Number of script &verification threads - Αριθμός script και γραμμές επαλήθευσης + Αριθμός script και γραμμές επαλήθευσης IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) @@ -1003,7 +1003,7 @@ The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Οι πληροφορίες που εμφανίζονται μπορεί να είναι ξεπερασμένες. Το πορτοφόλι σας συγχρονίζεται αυτόματα με το δίκτυο Bitcoin μετά από μια σύνδεση, αλλά αυτή η διαδικασία δεν έχει ακόμη ολοκληρωθεί. + Οι πληροφορίες που εμφανίζονται μπορεί να είναι ξεπερασμένες. Το πορτοφόλι σας συγχρονίζεται αυτόματα με το δίκτυο Bitcoin μετά από μια σύνδεση, αλλά αυτή η διαδικασία δεν έχει ακόμη ολοκληρωθεί. Watch-only: @@ -1314,7 +1314,7 @@ Debug log file - Αρχείο καταγραφής εντοπισμού σφαλμάτων + Αρχείο καταγραφής εντοπισμού σφαλμάτων Clear console @@ -1550,7 +1550,7 @@ Recommended: - Προτεινόμενο: + Προτεινόμενο: Custom: @@ -1690,7 +1690,7 @@ SignVerifyMessageDialog Signatures - Sign / Verify a Message - Υπογραφές - Είσοδος / Επαλήθευση Mηνύματος + Υπογραφές - Είσοδος / Επαλήθευση Mηνύματος &Sign Message @@ -2015,7 +2015,7 @@ Signing transaction failed - Η υπογραφή συναλλαγής απέτυχε + Η υπογραφή συναλλαγής απέτυχε This is experimental software. diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index d34fd9eb45..c55f3519a3 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -990,7 +990,7 @@ CreateWalletActivity - + Creating Wallet <b>%1</b>... @@ -1251,7 +1251,7 @@ - + Error: Specified data directory "%1" cannot be created. @@ -1850,7 +1850,7 @@ PaymentServer - + @@ -2161,7 +2161,7 @@ - + Error: Specified data directory "%1" does not exist. @@ -2209,7 +2209,7 @@ - + QR code support not available. @@ -3621,7 +3621,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - + Status @@ -3680,12 +3680,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - + Credit - + matures in %n more block(s) matures in %n more block @@ -3700,12 +3700,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - + Debit - + Total debit @@ -3756,7 +3756,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - + + (Certificate was not verified) + + + + Merchant @@ -4157,7 +4162,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos WalletController - + Close wallet @@ -4183,7 +4188,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos WalletModel - + Send Coins Send Coins diff --git a/src/qt/locale/bitcoin_en_GB.ts b/src/qt/locale/bitcoin_en_GB.ts index 20c6f3bd15..23e0cabe39 100644 --- a/src/qt/locale/bitcoin_en_GB.ts +++ b/src/qt/locale/bitcoin_en_GB.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + &Copy Address &Copy Address @@ -131,6 +135,10 @@ Repeat new passphrase Repeat new passphrase + + Show passphrase + Show passphrase + Encrypt wallet Encrypt wallet @@ -171,6 +179,30 @@ Wallet encrypted Wallet encrypted + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Enter the old passphrase and new passphrase for the wallet. + + + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your Bitcoins from being stolen by malware infecting your computer. + + + Wallet to be encrypted + Wallet to be encrypted + + + Your wallet is about to be encrypted. + Your wallet is about to be encrypted. + + + Your wallet is now encrypted. + Your wallet is now encrypted. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -293,6 +325,14 @@ Open &URI... Open &URI ... + + Create Wallet... + Create Wallet... + + + Create a new wallet + Create a new wallet + Wallet: Wallet: @@ -521,6 +561,10 @@ Error: %1 Error: %1 + + Warning: %1 + Warning: %1 + Date: %1 @@ -743,10 +787,58 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + Creating Wallet <b>%1</b>... + + + Create wallet failed + Create wallet failed + + + Create wallet warning + Create wallet warning + + CreateWalletDialog - + + Create Wallet + Create Wallet + + + Wallet Name + Wallet Name + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + + + Encrypt Wallet + Encrypt Wallet + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + + + Disable Private Keys + Disable Private Keys + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + + + Make Blank Wallet + Make Blank Wallet + + + Create + Create + + EditAddressDialog @@ -862,6 +954,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Reverting this setting requires re-downloading the entire Blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. @@ -882,6 +978,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Discard blocks after verification, except most recent %1 GB (prune) + At least %1 GB of data will be stored in this directory, and it will grow over time. At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -914,7 +1014,11 @@ (of %n GB needed) (of %n GB needed)(of %n GB needed) - + + (%n GB needed for full chain) + (%n GB needed for full chain)(%n GB needed for full chain) + + ModalOverlay @@ -991,6 +1095,14 @@ OpenWalletActivity + + Open wallet failed + Open wallet failed + + + Open wallet warning + Open wallet warning + default wallet default wallet @@ -1380,6 +1492,14 @@ Cannot process payment request because BIP70 support was not compiled in. Cannot process payment request because BIP70 support was not compiled in. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Invalid payment address %1 Invalid payment address %1 @@ -1601,6 +1721,10 @@ Error encoding URI into QR Code. Error encoding URI into QR Code. + + QR code support not available. + QR code support not available. + Save QR Code Save QR Code @@ -1959,6 +2083,10 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. An optional amount to request. Leave this empty or zero to not request a specific amount. + + &Create new receiving address + &Create new receiving address + Clear all fields of the form. Clear all fields of the form. @@ -2280,6 +2408,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p %1 (%2 blocks) %1 (%2 blocks) + + from wallet '%1' + from wallet '%1' + + + %1 to '%2' + %1 to '%2' + %1 to %2 %1 to %2 @@ -2312,6 +2448,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Total Amount Total Amount + + To review recipient list click "Show Details..." + To review recipient list click "Show Details..." + Confirm send coins Confirm send coins @@ -3085,6 +3225,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Close wallet Close wallet + + Are you sure you wish to close the wallet <i>%1</i>? + Are you sure you wish to close the wallet <i>%1</i>? + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. @@ -3357,6 +3501,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Initialization sanity check failed. %s is shutting down. Initialisation sanity check failed. %s is shutting down. + + Invalid P2P permission: '%s' + Invalid P2P permission: '%s' + Invalid amount for -%s=<amount>: '%s' Invalid amount for -%s=<amount>: '%s' @@ -3389,6 +3537,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Loading P2P addresses... Loading P2P addresses ... + + Error: Disk space is too low! + Error: Disk space is too low! + Loading banlist... Loading banlist ... @@ -3497,6 +3649,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Need to specify a port with -whitebind: '%s' Need to specify a port with -whitebind: '%s' + + Prune mode is incompatible with -blockfilterindex. + Prune mode is incompatible with -blockfilterindex. + Reducing -maxconnections from %d to %d, because of system limitations. Reducing -maxconnections from %d to %d, because of system limitations. @@ -3555,6 +3711,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Unable to generate initial keys Unable to generate initial keys. + + Unknown -blockfilterindex value %s. + Unknown -blockfilterindex value %s. + Verifying wallet(s)... Verifying wallet(s) ... diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index 3e38139b45..c64d7b7203 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -3,7 +3,7 @@ AddressBookPage Right-click to edit address or label - Clic derecho para editar la dirección o etiqueta + Haga clic con el botón derecho para editar una dirección o etiqueta Create a new address @@ -23,11 +23,11 @@ C&lose - C&errar + &Cerrar Delete the currently selected address from the list - Eliminar la dirección seleccionada de la lista + Borrar de la lista la dirección seleccionada Enter address or label to search @@ -35,7 +35,7 @@ Export the data in the current tab to a file - Exportar los datos en la ficha actual a un archivo + Exportar a un archivo los datos de esta pestaña &Export @@ -47,15 +47,15 @@ Choose the address to send coins to - Seleccione la dirección a la que enviar monedas + Escoja la dirección a la que se enviarán monedas Choose the address to receive coins with - Seleccione la dirección de la que recibir monedas + Escoja la dirección donde quiere recibir monedas C&hoose - E&scoger + Escoger Sending addresses @@ -67,11 +67,15 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son sus direcciones Bitcoin para enviar pagos. Verifique siempre la cantidad y la dirección de recepción antes de enviar bitcoins. + Estas son sus direcciones Bitcoin para enviar pagos. Compruebe siempre la cantidad y la dirección de recibo antes de transferir monedas. + + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Estas son sus direcciones Bitcoin para la recepción de pagos. Use el botón 'Crear una nueva dirección para recepción' en la pestaña Recibir para crear nuevas direcciones &Copy Address - &Copiar Dirección + Copiar dirección Copy &Label @@ -83,19 +87,19 @@ Export Address List - Exportar lista de direcciones + Exportar la Lista de Direcciones Comma separated file (*.csv) - Archivo separado de coma (*.csv) + Archivo de columnas separadas por coma (*.csv) Exporting Failed - Falló la exportación + La exportación falló There was an error trying to save the address list to %1. Please try again. - Había un error intentando guardar la lista de direcciones en %1. Por favor inténtelo de nuevo. + Hubo un error al intentar guardar la lista de direcciones a %1. Por favor trate de nuevo. @@ -131,13 +135,17 @@ Repeat new passphrase Repita la nueva contraseña + + Show passphrase + Mostrar clave + Encrypt wallet Cifrar monedero This operation needs your wallet passphrase to unlock the wallet. - Esta operación necesita su contraseña de monedero para desbloquear el monedero. + Esta operación requiere su contraseña para desbloquear el monedero. Unlock wallet @@ -145,7 +153,7 @@ This operation needs your wallet passphrase to decrypt the wallet. - Esta operación necesita su contraseña para descifrar el monedero. + Esta operación requiere su contraseña para descifrar el monedero. Decrypt wallet @@ -153,74 +161,94 @@ Change passphrase - Cambiar contraseña + Cambiar frase secreta Confirm wallet encryption - Confirmar cifrado del monedero + Confirme cifrado del monedero Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Advertencia: Si cifra su monedero y pierde su contraseña<b>¡PERDERÁ TODOS SUS BITCOINS!</b> + Atención: Si cifra su monedero y pierde la contraseña, perderá ¡<b>TODOS SUS BITCOINS</b>! Are you sure you wish to encrypt your wallet? - ¿Seguro que desea cifrar su monedero? + ¿Está seguro que desea cifrar su monedero? Wallet encrypted Monedero cifrado + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Introduzca la nueva contraseña del monedero. <br/>Por favor utilice una contraseña de <b>diez o más caracteres aleatorios</b>, o <b>ocho o más palabras</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Introduzca la contraseña antigua y la nueva para el monedero. + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Recuerda que encriptando tu cartera no garantiza mantener a salvo tus bitcoins en caso de tener viruses en el ordenador. + Recuerda que codificando tu billetera no garantiza mantener a salvo tus bitcoins en caso de tener virus en el computador. + + + Wallet to be encrypted + Monedero a cifrar + + + Your wallet is about to be encrypted. + Su monedero va a ser cifrado + + + Your wallet is now encrypted. + Su monedero está ahora cifrado IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANTE: Cualquier copia de seguridad anterior que haya hecho en su archivo de monedero debería ser reemplazada con el archivo de monedero cifrado generado recientemente. Por razones de seguridad, las copias de seguridad anteriores del archivo de monedero descifrado serán inútiles en cuanto empiece a utilizar el nuevo monedero cifrado. + IMPORTANTE: cualquier copia de seguridad anterior que haya hecho de su archivo de cartera debe ser reemplazada por el archivo de cartera encriptado y recién generado. Por razones de seguridad, las copias de seguridad anteriores del archivo de cartera sin cifrar serán inútiles tan pronto como empieces a usar la nueva billetera encriptada. Wallet encryption failed - Fracasó el cifrado del monedero + Encriptación de la cartera fallida Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Falló el cifrado del monedero debido a un error interno. Su monedero no fue cifrado. + La encriptación de la cartera falló debido a un error interno. Su cartera no fue encriptada. The supplied passphrases do not match. - La contraseña introducida no coincide. + Las contraseñas dadas no coinciden. Wallet unlock failed - Fracasó el desbloqueo del monedero + El desbloqueo de la cartera falló. The passphrase entered for the wallet decryption was incorrect. - La contraseña introducida para el cifrado del monedero es incorrecta. + La contraseña ingresada para la desencriptación de la cartera es incorrecta. Wallet decryption failed - Fracasó el cifrado del monedero + La desencriptación de la cartera fallo Wallet passphrase was successfully changed. - La contraseña del monedero se ha cambiado con éxito. + La contraseña de la cartera ha sido exitosamente cambiada. Warning: The Caps Lock key is on! - Alerta: ¡La clave de bloqueo Caps está activa! + Advertencia: ¡La tecla Bloq Mayus está activada! BanTableModel IP/Netmask - IP/Máscara + IP/Máscara de red Banned Until - Bloqueado Hasta + Prohibido Hasta @@ -251,7 +279,7 @@ E&xit - S&alir + &Salir Quit application @@ -259,7 +287,7 @@ &About %1 - &Acerca de %1 + %Acerca de%1 Show information about %1 @@ -287,7 +315,7 @@ &Backup Wallet... - &Guardar copia del monedero... + Copia de &respaldo del monedero... &Change Passphrase... @@ -295,15 +323,23 @@ Open &URI... - Abrir &URI... + Abrir URI... + + + Create Wallet... + Crear monedero... + + + Create a new wallet + Crear monedero nuevo Wallet: - Monedero + Cartera: Click to disable network activity. - Pulsar para deshabilitar la actividad de red. + Haga clic para desactivar la actividad de la red. Network activity disabled. @@ -311,11 +347,11 @@ Click to enable network activity again. - Pulsar para volver a habilitar la actividad de red. + Haga clic para habilitar nuevamente la actividad de la red. Syncing Headers (%1%)... - Sincronizando cabeceras (%1%) + Sincronizar encabezados (%1%) ... Reindexing blocks on disk... @@ -323,11 +359,11 @@ Proxy is <b>enabled</b>: %1 - Proxy está<b>habilitado</b>: %1 + El proxy está <b>habilitado</b>: %1 Send coins to a Bitcoin address - Enviar bitcoins a una dirección Bitcoin + Enviar monedas a una dirección Bitcoin Backup wallet to another location @@ -339,7 +375,7 @@ &Debug window - &Ventana de depuración + Ventana de &depuración Open debugging and diagnostic console @@ -359,7 +395,7 @@ &Show / Hide - &Mostrar / Ocultar + Mo&strar/ocultar Show or hide the main Window @@ -387,7 +423,7 @@ &Help - &Ayuda + A&yuda Tabs toolbar @@ -395,7 +431,7 @@ Request payments (generates QR codes and bitcoin: URIs) - Solicitar pagos (generando códigos QR e identificadores URI "bitcoin:") + Solicitar pagos (genera codigo QR y URL's de Bitcoin) Show the list of used sending addresses and labels @@ -407,11 +443,11 @@ Open a bitcoin: URI or payment request - Abrir un identificador URI "bitcoin:" o una petición de pago + Abrir un bitcoin: URI o petición de pago &Command-line options - &Opciones de consola de comandos + &Opciones de linea de comando %n active connection(s) to Bitcoin network @@ -419,11 +455,11 @@ Indexing blocks on disk... - Indexando bloques en disco... + Bloques de indexación en el disco ... Processing blocks on disk... - Procesando bloques en disco... + Procesamiento de bloques en el disco ... Processed %n block(s) of transaction history. @@ -483,7 +519,7 @@ Show the %1 help message to get a list with possible Bitcoin command-line options - Mostrar el mensaje de ayuda %1 para obtener una lista de los posibles comandos de linea de comandos de Bitcoin + Muestre el mensaje de ayuda %1 para obtener una lista con posibles opciones de línea de comandos de Bitcoin default wallet @@ -515,7 +551,7 @@ Connecting to peers... - Conectando a pares... + Conectando con sus pares ... Catching up... @@ -538,13 +574,14 @@ Amount: %1 - Amount: %1 + Cantidad: %1 Wallet: %1 - Monedero: %1 + Billetera: %1 + Type: %1 @@ -574,15 +611,15 @@ HD key generation is <b>enabled</b> - La generación de clave HD está <b>habilitada</b> + La generación de la clave HD está <b> activada </ b> HD key generation is <b>disabled</b> - La generación de clave HD está <b>deshabilitada</b> + La generación de la clave HD está <b> desactivada </ b> Private key <b>disabled</b> - Clave privada <b>deshabilitado</b> + Llave privada <b>deshabilitada</b> Wallet is <b>encrypted</b> and currently <b>unlocked</b> @@ -594,14 +631,14 @@ A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Ha ocurrido un error fatal. Bitcoin no puede seguir seguro y se cerrará. + Se produjo un error fatal. Bitcoin ya no puede continuar de manera segura y no continuará CoinControlDialog Coin Selection - Selección de la moneda + Selección de moneda Quantity: @@ -617,7 +654,7 @@ Fee: - Comisión: + Tasa: Dust: @@ -625,7 +662,7 @@ After Fee: - Después de aplicar la comisión: + Después de tasas: Change: @@ -633,11 +670,11 @@ (un)select all - (des)marcar todos + (des)selecciona todos Tree mode - Modo árbol + Modo arbol List mode @@ -669,7 +706,7 @@ Copy address - Copiar ubicación + Copiar dirección Copy label @@ -681,15 +718,15 @@ Copy transaction ID - Copiar ID de transacción + Copiar ID de la transacción Lock unspent - Bloquear lo no gastado + Bloquear no utilizado Unlock unspent - Desbloquear lo no gastado + Desbloquear no utilizado Copy quantity @@ -701,7 +738,7 @@ Copy after fee - Copiar después de comisión + Copiar después de la tarifa Copy bytes @@ -721,7 +758,7 @@ yes - + si no @@ -729,11 +766,11 @@ This label turns red if any recipient receives an amount smaller than the current dust threshold. - Esta etiqueta se vuelve roja si algún destinatario recibe una cantidad inferior al actual umbral de polvo. + Está etiqueta se vuelve roja si algún receptor recibe una cantidad inferior al límite actual establecido para el polvo. Can vary +/- %1 satoshi(s) per input. - Puede variar +/- %1 satoshi(s) por entrada. + Puede variar +/- %1 satoshi (s) por entrada. (no label) @@ -750,10 +787,58 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + Creando monedero <b>%1</b>... + + + Create wallet failed + La creación del monedero falló + + + Create wallet warning + Advertencia sobre creación de monedero + + CreateWalletDialog - + + Create Wallet + Crear monedero + + + Wallet Name + Nombre de monedero + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Cifrar el monedero. El monedero se cifrará con la clave que elija. + + + Encrypt Wallet + Cifrar monedero + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Desahibilitar las claves privadas para este monedero. Los monederos con claves privadas deshabilitadas no tendrán claves privadas y no podrán tener ni una semilla HD ni claves privadas importadas. Esto es ideal para monederos de solo lectura. + + + Disable Private Keys + Deshabilitar claves privadas + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Crear un monedero vacío. Los monederos vacíos no tienen claves privadas ni scripts. Las claves privadas y direcciones pueden importarse despues o también establecer una semilla HD. + + + Make Blank Wallet + Crear monedero vacío + + + Create + Crear + + EditAddressDialog @@ -790,7 +875,7 @@ The entered address "%1" is not a valid Bitcoin address. - La dirección introducida "%1" no es una dirección Bitcoin válida. + La dirección ingresada "%1" no es una dirección válida de Bitcoin. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -802,11 +887,11 @@ Could not unlock wallet. - No se pudo desbloquear el monedero. + No se pudo desbloquear la billetera. New key generation failed. - Falló la generación de la nueva clave. + Nueva generación de claves fallida. @@ -821,7 +906,7 @@ Directory already exists. Add %1 if you intend to create a new directory here. - El directorio ya existe. Añada %1 si pretende crear un directorio nuevo. + El directorio ya existe. Añada %1 si pretende crear aquí un directorio nuevo. Path already exists, and is not a directory. @@ -844,11 +929,11 @@ About %1 - Acerca de %1 + Alrededor de %1 Command-line options - Opciones de la línea de comandos + Opciones de la línea de órdenes @@ -859,23 +944,27 @@ Welcome to %1. - Bienvenido a %1 + Bienvenido a %1. As this is the first time the program is launched, you can choose where %1 will store its data. - Al ser la primera vez que se ejecuta el programa, puede elegir dónde %1 almacenará sus datos. + Como esta es la primera vez que se lanza el programa, puede elegir dónde %1 almacenará sus datos. When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. - Cuando haga click en OK, %1 se empezará a descargar la %4 cadena de bloques completa (%2GB) empezando por la transacción más antigua en %3 cuando se publicó %4 originalmente. + Al hacer clic OK, %1 iniciará el proceso de descarga y procesará el blockchain completo de %4 (%2 GB), iniciando desde el la transacción más antigua %3 cuando %4 se ejecutó inicialmente. + + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Revertir este parámetro requiere volver a descargar todos los bloques. Es más rápido descargar primero todos los bloques y podar despues. Deshabilita algunas características avanzadas. This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. - La sincronización inicial demanda muchos recursos y podría revelar problemas de hardware que no se han notado previamente. Cada vez que ejecuta %1, continuará descargando a partir del punto anterior. + Esta sincronización inicial es muy exigente y puede exponer problemas de hardware con su computadora que anteriormente habían pasado desapercibidos. Cada vez que ejecuta %1, continuará la descarga donde lo dejó. If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. - Si ha elegido limitar el almacenamiento de la cadena de bloques ("prunning"), se descargarán y procesarán los datos históricos igualmente, sin embargo, estos se eliminarán después para mantener un bajo uso del disco. + Si ha elegido limitar el almacenamiento de la cadena de bloques (pruning), los datos históricos todavía se deben descargar y procesar, pero se eliminarán posteriormente para mantener el uso del disco bajo. Use the default data directory @@ -883,19 +972,23 @@ Use a custom data directory: - Utilizar un directorio de datos personalizado: + Utilice un directorio de datos personalizado: Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Descartar los bloques tras la verificación, excepto los %1 GB más recientes + At least %1 GB of data will be stored in this directory, and it will grow over time. - Se almacenará cuanto menos %1 GB de datos en este directorio, y crecerá con el transcurso del tiempo. + Al menos %1 GB de información será almacenado en este directorio, y seguirá creciendo a través del tiempo. Approximately %1 GB of data will be stored in this directory. - Se almacenará aproximadamente %1 GB de datos en este directorio. + Aproximadamente %1 GB de datos se almacenarán en este directorio. %1 will download and store a copy of the Bitcoin block chain. @@ -903,11 +996,11 @@ The wallet will also be stored in this directory. - El monedero se almacenará en este directorio. + La billetera también se almacenará en este directorio. Error: Specified data directory "%1" cannot be created. - Error: no ha podido crearse el directorio de datos especificado "%1". + Error: Directorio de datos especificado "%1" no puede ser creado. Error @@ -915,30 +1008,30 @@ %n GB of free space available - %n GB de espacio libre%n GB de espacio disponible + %n GB de espacio libre disponible%n GB de espacio libre disponible (of %n GB needed) - (de %n GB necesitados)(de %n GB requeridos) + (de %n GB requerido)(de %n GB requeridos) ModalOverlay Form - Formulario + Desde Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Las transacciones recientes aún no pueden ser visibles, y por lo tanto el saldo de su monedero podría ser incorrecto. Esta información será correcta cuando su monedero haya terminado de sincronizarse con la red de bitcoin, como se detalla abajo. + Es posible que las transacciones recientes aún no estén visibles y, por lo tanto, el saldo de su billetera podría ser incorrecto. Esta información será correcta una vez que su billetera haya terminado de sincronizarse con la red bitcoin, como se detalla a continuación. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - La red no aceptará el intentar gastar bitcoins que están afectados por transacciones aún no mostradas. + La red no aceptará intentar gastar bitcoins que se vean afectados por transacciones aún no mostradas Number of blocks left - Número de bloques restantes + Cantidad de bloques restantes Unknown... @@ -954,7 +1047,7 @@ Progress increase per hour - Avance del progreso por hora + Aumento de progreso por hora calculating... @@ -962,26 +1055,26 @@ Estimated time left until synced - Tiempo estimado restante hasta la sincronización + Tiempo estimado restante hasta sincronización Hide - Ocultar + Esconder Unknown. Syncing Headers (%1, %2%)... - Desconocido. Sincronizando Cabeceras (%1, %2%)... + Desconocido. Sincronizando cabecesar (%1, %2%)... OpenURIDialog Open URI - Abrir URI + Abrir URI... Open payment request from URI or file - Abrir solicitud de pago a partir de un identificador URI o de un archivo + El pago requiere una URI o archivo URI: @@ -989,15 +1082,23 @@ Select payment request file - Seleccionar archivo de solicitud de pago + Seleccione archivo de sulicitud de pago Select payment request file to open - Seleccionar el archivo de solicitud de pago para abrir + Seleccione el archivo de solicitud de pago para abrir OpenWalletActivity + + Open wallet failed + La apertura del monedero falló + + + Open wallet warning + Advertencia sobre apertura de monedero + default wallet Monedero predeterminado @@ -1019,59 +1120,59 @@ Automatically start %1 after logging in to the system. - Iniciar automaticamente %1 al encender el sistema. + Inicie automáticamente %1 después de iniciar sesión en el sistema. &Start %1 on system login - &Iniciar %1 al iniciar el sistema + & Comience %1 en el inicio de sesión del sistema Size of &database cache - Tamaño del cache de la &base de datos + Tamaño de la memoria caché de la base de datos Number of script &verification threads - Número de hilos de &verificación de scripts + Cantidad de secuencias de comandos y verificación IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Dirección IP del proxy (p. ej. IPv4: 127.0.0.1 / IPv6: ::1) + Dirección IP del proxy (ej. IPv4: 127.0.0.1 / IPv6: ::1) Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. - Muestra si el proxy SOCKS5 predeterminado se utiliza para conectarse a pares a través de este tipo de red. + Muestra si el proxy SOCKS5 suministrado se utiliza para llegar a los pares a través de este tipo de red. Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - Usar proxy SOCKS&5 para alcanzar nodos via servicios ocultos Tor: + Use SOCKS&5 y proxy por separado para llegar a sus compañeros a través de los servicios ocultos de Tor: Hide the icon from the system tray. - Ocultar ícono de la bandeja de sistema. + Ocultar el icono de la bandeja del sistema. &Hide tray icon - &Ocultar ícono de la barra de tareas + Ocultar icono de bandeja Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Minimizar en lugar de salir de la aplicación cuando la ventana está cerrada. Cuando se activa esta opción, la aplicación sólo se cerrará después de seleccionar Salir en el menú. + Minimice en lugar de salir de la aplicación cuando la ventana esté cerrada. Cuando esta opción está habilitada, la aplicación se cerrará solo después de seleccionar Salir en el menú. Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Identificadores URL de terceros (por ejemplo, un explorador de bloques) que aparecen en la pestaña de transacciones como elementos del menú contextual. El %s en la URL es reemplazado por el valor hash de la transacción. Se pueden separar URL múltiples por una barra vertical |. + URL de terceros (por ejemplo, un explorador de bloques) que aparecen en la pestaña de transacciones como elementos del menú contextual. %s en la URL se reemplaza por hash de transacción. Varias URL están separadas por una barra vertical |. Open the %1 configuration file from the working directory. - Abre el fichero de configuración %1 en el directorio de trabajo. + Abrir el archivo de configuración %1 en el directorio de trabajo. Open Configuration File - Abrir fichero de configuración + Abrir archivo de configuración Reset all client options to default. - Restablecer todas las opciones predeterminadas del cliente. + Restablecer todas las opciones del cliente a las predeterminadas. &Reset Options @@ -1103,11 +1204,11 @@ (0 = auto, <0 = leave that many cores free) - (0 = automático, <0 = dejar libres ese número de núcleos) + (0 = auto, <0 = deja muchos núcleos gratis) W&allet - &Monedero + Monedero Expert @@ -1115,15 +1216,15 @@ Enable coin &control features - Habilitar funcionalidad de &Coin Control + Habilite las funciones de moneda y control If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Si desactiva el gasto del cambio no confirmado, no se podrá usar el cambio de una transacción hasta que se alcance al menos una confirmación. Esto afecta también a cómo se calcula su saldo. + Si deshabilita el gasto de un cambio no confirmado, el cambio de una transacción no se puede usar hasta que esa transacción tenga al menos una confirmación. Esto también afecta cómo se calcula su saldo. &Spend unconfirmed change - &Gastar cambio no confirmado + & Gastar cambio no confirmado Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. @@ -1131,11 +1232,11 @@ Map port using &UPnP - Mapear el puerto mediante &UPnP + Mapear el puerto usando &UPnP Accept connections from outside. - Aceptar conexiones desde el exterior. + Acepta conexiones desde afuera. Allow incomin&g connections @@ -1143,11 +1244,11 @@ Connect to the Bitcoin network through a SOCKS5 proxy. - Conectarse a la red Bitcoin a través de un proxy SOCKS5. + Conéctese a la red de Bitcoin a través de un proxy SOCKS5. &Connect through SOCKS5 proxy (default proxy): - &Conectarse a través de proxy SOCKS5 (proxy predeterminado): + Conectar a través del proxy SOCKS5 (proxy predeterminado): Proxy &IP: @@ -1163,7 +1264,7 @@ Used for reaching peers via: - Usado para alcanzar pares via: + Utilizado para llegar a los compañeros a través de: IPv4 @@ -1179,7 +1280,7 @@ Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Conectar a la red Bitcoin mediante un proxy SOCKS5 por separado para los servicios ocultos de Tor. + Conéctese a la red de Bitcoin a través de un proxy SOCKS5 separado para los servicios Tor ocultos. &Window @@ -1207,19 +1308,19 @@ The user interface language can be set here. This setting will take effect after restarting %1. - El idioma de la interfaz de usuario puede establecerse aquí. Esta configuración tendrá efecto tras reiniciar %1. + El idioma de la interfaz de usuario puede establecerse aquí. Esta configuración tendrá efecto después de reiniciar %1. &Unit to show amounts in: - &Unidad en la cual mostrar las cantidades: + Mostrar las cantidades en la &unidad: Choose the default subdivision unit to show in the interface and when sending coins. - Elegir la subdivisión predeterminada para mostrar cantidades en la interfaz y cuando se envían bitcoins. + Elegir la subdivisión predeterminada para mostrar cantidades en la interfaz y cuando se envían monedas. Whether to show coin control features or not. - Mostrar o no funcionalidad de Coin Control + Mostrar o no características de control de moneda &Third party transaction URLs @@ -1243,7 +1344,7 @@ none - ninguna + ninguno Confirm options reset @@ -1251,11 +1352,11 @@ Client restart required to activate changes. - Se necesita reiniciar el cliente para activar los cambios. + Reinicio del cliente para activar cambios. Client will be shut down. Do you want to proceed? - El cliente se cerrará. ¿Desea continuar? + El cliente será cluasurado. Quieres proceder? Configuration options @@ -1263,7 +1364,7 @@ The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file. - El fichero de configuración se utiliza para especificar opciones de usuario avanzadas que reemplazar las configuraciones de la interfaz gráfica de usuario. Adicionalmente, cualquier opción introducida en la línea de comandos reemplazará a este fichero de configuración. + El archivo de configuración se utiliza para especificar opciones de usuario avanzadas que anulan la configuración de la GUI. Además, cualquier opción de línea de comandos anulará este archivo de configuración. Error @@ -1271,11 +1372,11 @@ The configuration file could not be opened. - No se pudo abrir el fichero de configuración. + El archivo de configuración no se pudo abrir. This change would require a client restart. - Este cambio exige el reinicio del cliente. + Este cambio requiere reinicio por parte del cliente. The supplied proxy address is invalid. @@ -1286,7 +1387,7 @@ OverviewPage Form - Formulario + Desde The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. @@ -1294,7 +1395,7 @@ Watch-only: - Solo observación: + Ver-solo: Available: @@ -1302,7 +1403,7 @@ Your current spendable balance - Su saldo disponible actual + Su balance actual gastable Pending: @@ -1310,19 +1411,19 @@ Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Total de transacciones pendientes de confirmar y que aún no contribuye al saldo disponible + Total de transacciones que deben ser confirmadas, y que no cuentan con el balance gastable necesario Immature: - No madurado: + No disponible: Mined balance that has not yet matured - Saldo recién minado que aún no ha madurado. + Saldo recién minado que aún no está disponible. Balances - Saldos + Balances Total: @@ -1330,15 +1431,15 @@ Your current total balance - Su saldo actual total + Su balance actual total Your current balance in watch-only addresses - Su saldo actual en direcciones watch-only (solo-observación) + Tu saldo actual en solo ver direcciones Spendable: - Gastable: + Utilizable: Recent transactions @@ -1346,26 +1447,26 @@ Unconfirmed transactions to watch-only addresses - Transacciones sin confirmar en direcciones watch-only (solo-observación) + Transacciones no confirmadas para ver solo direcciones Mined balance in watch-only addresses that has not yet matured - Saldo minado en direcciones watch-only que aún no ha madurado + Balance minero ver solo direcciones que aún no ha madurado Current total balance in watch-only addresses - Saldo total en las direcciones watch-only (solo-observación) + Saldo total actual en direcciones de solo reloj PaymentServer Payment request error - Fallo en la solicitud de pago + Error de solicitud de pago Cannot start bitcoin: click-to-pay handler - No se puede iniciar bitcoin: encargado click-para-pagar + No se puede iniciar Bitcoin: controlador de clic para pagar URI handling @@ -1381,27 +1482,35 @@ Payment request fetch URL is invalid: %1 - La búsqueda de solicitud de pago URL es válida: %1 + La URL de búsqueda de solicitud de pago no es válida: %1 Cannot process payment request because BIP70 support was not compiled in. No se puede procesar la petición de pago debido a que no se ha incluido el soporte de BIP70. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Debido a fallos de seguridad conocidos en BIP70 se recomienda encarecidamente que se ignore cualquier instrucción sobre el intercambio de monederos. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Si está recibiendo este error debería pedir al comerciante que le proporcione una URI compatible con BIP21 + Invalid payment address %1 Dirección de pago inválida %1 URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI no puede ser analizado! Esto puede ser causado por una dirección Bitcoin inválida o parametros URI mal formados. + ¡URI no puede ser analizado! Esto puede deberse a una dirección de Bitcoin no válida o a parámetros de URI mal formados. Payment request file handling - Manejo del archivo de solicitud de pago + Manejo de archivos de solicitud de pago Payment request file cannot be read! This can be caused by an invalid payment request file. - ¡El archivo de solicitud de pago no puede ser leído! Esto puede ser causado por un archivo de solicitud de pago inválido. + ¡El archivo de solicitud de pago no se puede leer! Esto puede deberse a un archivo de solicitud de pago no válido. Payment request rejected @@ -1409,7 +1518,7 @@ Payment request network doesn't match client network. - La red de solicitud de pago no coincide con la red cliente. + La red de solicitud de pago no coincide con la red del cliente. Payment request expired. @@ -1417,27 +1526,27 @@ Payment request is not initialized. - La solicitud de pago no se ha iniciado. + La solicitud de pago no está inicializada. Unverified payment requests to custom payment scripts are unsupported. - Solicitudes de pago sin verificar a scripts de pago habitual no se soportan. + Las solicitudes de pago no verificadas para los scripts de pago personalizados no son compatibles. Invalid payment request. - Solicitud de pago inválida. + Solicitud de pago inválida Requested payment amount of %1 is too small (considered dust). - Cantidad de pago solicitada de %1 es demasiado pequeña (considerado polvo). + El monto para la solicitud de pago de %1 es muy pequeño (considera el dust). Refund from %1 - Reembolsar desde %1 + Reembolso de %1 Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Solicitud de pago de %1 es demasiado grande (%2 bytes, permitidos %3 bytes). + Solicitud de pago %1 es muy grande (Actualmente %2 bytes, máximo %3 bytes) Error communicating with %1: %2 @@ -1445,34 +1554,34 @@ Payment request cannot be parsed! - ¡La solicitud de pago no puede ser analizada! + ¡La solicitud de pago no se puede analizar! Bad response from server %1 - Mala respuesta desde el servidor %1 + Mala respuesta del servidor %1 Network request error - Fallo de solicitud de red + Error de solicitud de red Payment acknowledged - Pago declarado + Pago reconocido PeerTableModel User Agent - User Agent + Agente de usuario Node/Service - Nodo/Servicio + Nodo / Servicio NodeId - ID de nodo + NodeId Ping @@ -1480,7 +1589,7 @@ Sent - Enviado + Expedido Received @@ -1495,7 +1604,7 @@ Enter a Bitcoin address (e.g. %1) - Introducir una dirección Bitcoin (p. ej. %1) + Ingrese una dirección de Bitcoin (por ejemplo, %1) %1 d @@ -1527,23 +1636,23 @@ %n second(s) - %n segundo%n segundos + %n segundos%n segundos %n minute(s) - %n minuto%n minutos + %n minutos%n minutos %n hour(s) - %n hora%n horas + %n horas%n horas %n day(s) - %n dia%n dias + %n días %n días %n week(s) - %n semana%n semanas + %n semanas%n semanas %1 and %2 @@ -1551,7 +1660,7 @@ %n year(s) - %n año%n años + %n años%n años %1 B @@ -1571,7 +1680,7 @@ Error: Specified data directory "%1" does not exist. - Error: El directorio de datos «%1» especificado no existe. + Error: El directorio de datos especificado "%1" no existe. Error: Cannot parse configuration file: %1. @@ -1583,7 +1692,7 @@ %1 didn't yet exit safely... - %1 no se ha cerrado de forma segura todavía... + %1 aún no salió de forma segura ... unknown @@ -1594,19 +1703,19 @@ QRImageWidget &Save Image... - &Guardar imagen... + Guardar Imagen... &Copy Image - &Copiar imagen + Copiar imagen Resulting URI too long, try to reduce the text for label / message. - URI resultante demasiado grande, trate de reducir el texto de etiqueta / mensaje. + URI resultante demasiado larga. Intente reducir el texto de la etiqueta / mensaje. Error encoding URI into QR Code. - Fallo al codificar URI en código QR. + Error al codificar la URI en el código QR. QR code support not available. @@ -1633,7 +1742,7 @@ &Information - &Información + Información Debug window @@ -1645,7 +1754,7 @@ Using BerkeleyDB version - Utilizando la versión de BerkeleyDB + Usando la versión BerkeleyDB Datadir @@ -1689,7 +1798,7 @@ Memory Pool - Piscina de Memoria + Grupo de memoria Current number of transactions @@ -1709,7 +1818,7 @@ &Reset - &Reiniciar + Reiniciar Received @@ -1717,23 +1826,23 @@ Sent - Enviado + Expedido &Peers - &Pares + Pares Banned peers - Pares bloqueados + Pares prohibidos Select a peer to view detailed information. - Seleccionar un par para ver su información detallada. + Seleccione un par para ver información detallada. Whitelisted - En la lista blanca + Incluido en la lista blanca Direction @@ -1745,19 +1854,19 @@ Starting Block - Importando bloques... + Bloque de inicio Synced Headers - Cabeceras Sincronizadas + Encabezados sincronizados Synced Blocks - Bloques Sincronizados + Bloques sincronizados User Agent - User Agent + Agente de usuario Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. @@ -1769,7 +1878,7 @@ Increase font size - Aumentar tamaño de letra + Aumenta el tamaño de la fuente Services @@ -1777,11 +1886,11 @@ Ban Score - Puntuación de bloqueo + Puntuación Ban Connection Time - Duración de la conexión + Tiempo de conexión Last Send @@ -1793,15 +1902,15 @@ Ping Time - Tiempo de Ping + Tiempo Ping The duration of a currently outstanding ping. - La duración de un ping actualmente en proceso. + La duración de un ping actualmente pendiente. Ping Wait - Espera de Ping + Ping espera Min Ping @@ -1833,11 +1942,11 @@ In: - Entrante: + Dentro: Out: - Saliente: + Fuera: Debug log file @@ -1849,51 +1958,51 @@ 1 &hour - 1 &hora + 1 hora 1 &day - 1 &día + 1 día 1 &week - 1 &semana + 1 semana 1 &year - 1 &año + 1 año &Disconnect - &Desconectar + Desconectar Ban for - Prohibir para + Prohibición de &Unban - &Unban + &Desbloquear Welcome to the %1 RPC console. - Bienvenido a la consola RPC %1. + Bienvenido a la consola %1 RPC. Use up and down arrows to navigate history, and %1 to clear screen. - Utilice las teclas de navegación para revisar el historial, y %1 para limpiar la pantalla. + Use las flechas hacia arriba y hacia abajo para navegar por el historial, y %1 para borrar la pantalla. Type %1 for an overview of available commands. - Presione %1 para una vista previa de los comandos disponibles. + Escriba %1 para obtener una descripción general de los comandos disponibles. For more information on using this console type %1. - Para mas información sobre el uso de este tipo de consola %1 + Para obtener más información sobre el uso de esta consola, escriba %1. WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - ADVERTENCIA: Los estafadores están solicitando a los usuarios introducir ordenes aquí, lo que ocasiona que estos roben los contenidos del monedero. No utilice esta consola sin comprender completamente las implicancias de cada orden. + ADVERTENCIA: los estafadores han estado activos, pidiendo a los usuarios que escriban comandos aquí, robando el contenido de su billetera. No use esta consola sin entender completamente las ramificaciones de un comando Network activity disabled @@ -1909,15 +2018,15 @@ (node id: %1) - (nodo: %1) + (ID de nodo: %1) via %1 - via %1 + a través de %1 never - nunca + nunca Inbound @@ -1925,11 +2034,11 @@ Outbound - Saliente + Salida Yes - + Si No @@ -1956,27 +2065,31 @@ An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Un mensaje opcional para adjuntar a la solicitud de pago, que se muestra cuando se abre la solicitud. Nota: El mensaje no se enviará con el pago por la red Bitcoin. + Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud este abierta. Nota: El mensaje no se manda con el pago a travéz de la red de Bitcoin. An optional label to associate with the new receiving address. - Etiqueta opcional para asociar con la nueva dirección de recepción. + Una etiqueta opcional para asociar con la nueva dirección de recepción Use this form to request payments. All fields are <b>optional</b>. - Utilice este formulario para solicitar pagos. Todos los campos son <b>opcionales</b>. + Use este formulario para la solicitud de pagos. Todos los campos son <b>opcionales</b> An optional amount to request. Leave this empty or zero to not request a specific amount. - Para solicitar una cantidad opcional. Deje este vacío o cero para no solicitar una cantidad específica. + Monto opcional a solicitar. Dejarlo vacion o en cero no solicita un monto especifico. + + + &Create new receiving address + Crear nueva dirección para recepción Clear all fields of the form. - Vaciar todos los campos del formulario. + Limpiar todos los campos del formulario Clear - Vaciar + Limpiar Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. @@ -1988,7 +2101,7 @@ Requested payments history - Historial de pagos solicitados + Historial de pagos solicitado Show the selected request (does the same as double clicking an entry) @@ -2000,7 +2113,7 @@ Remove the selected entries from the list - Borrar las entradas seleccionadas de la lista + Borrar de la lista las direcciónes actualmente seleccionadas Remove @@ -2016,7 +2129,7 @@ Copy message - Copiar imagen + Copiar mensaje Copy amount @@ -2047,7 +2160,7 @@ Payment information - Información de pago + Información del pago URI @@ -2094,11 +2207,11 @@ (no message) - (no hay mensaje) + (sin mensaje) (no amount requested) - (no hay solicitud de cantidad) + (no existe monto solicitado) Requested @@ -2109,11 +2222,11 @@ SendCoinsDialog Send Coins - Enviar bitcoins + Enviar monedas Coin Control Features - Características de Coin Control + Características de control de la moneda Inputs... @@ -2121,7 +2234,7 @@ automatically selected - seleccionado automáticamente + Seleccionado automaticamente Insufficient funds! @@ -2141,11 +2254,11 @@ Fee: - Comisión: + Tasa: After Fee: - Después de comisión: + Después de tasas: Change: @@ -2153,7 +2266,7 @@ If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Si se marca esta opción pero la dirección de cambio está vacía o es inválida, el cambio se enviará a una nueva dirección recién generada. + Al activarse, si la dirección esta vacía o es inválida, las monedas serán enviadas a una nueva dirección generada. Custom change address @@ -2161,11 +2274,11 @@ Transaction Fee: - Comisión de Transacción: + Comisión de transacción: Choose... - Elija... + Seleccione Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. @@ -2173,7 +2286,7 @@ Warning: Fee estimation is currently not possible. - Advertencia: En este momento no se puede estimar la comisión. + Advertencia: En este momento no se puede estimar la cuota. collapse fee-settings @@ -2193,15 +2306,15 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Hide - Ocultar + Esconder Recommended: - Recomendada: + Recomendado: Custom: - Personalizada: + Personalizado: (Smart fee not initialized yet. This usually takes a few blocks...) @@ -2217,7 +2330,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Clear all fields of the form. - Vaciar todos los campos del formulario + Limpiar todos los campos del formulario Dust: @@ -2245,7 +2358,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Clear &All - Vaciar &todo + Limpiar &todo Balance: @@ -2273,7 +2386,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Copy after fee - Copiar después de comisión + Copiar después de la tarifa Copy bytes @@ -2331,25 +2444,29 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Total Amount Monto total + + To review recipient list click "Show Details..." + Para ver la lista de receptores haga click en "Mostrar detalles" + Confirm send coins - Confirmar enviar monedas + Confirmar el envió de monedas The recipient address is not valid. Please recheck. - La dirección de destinatario no es válida. Por favor revísela. + La dirección de envío no es válida. Por favor revisala. The amount to pay must be larger than 0. - La cantidad a pagar debe de ser mayor que 0. + La cantidad por pagar tiene que ser mayor que 0. The amount exceeds your balance. - La cantidad excede su saldo. + El monto sobrepasa tu saldo. The total exceeds your balance when the %1 transaction fee is included. - El total excede su saldo cuando la comisión de transacción de %1 es incluida. + El total sobrepasa tu saldo cuando se incluyen %1 como comisión de envió. Duplicate address found: addresses should only be used once each. @@ -2357,7 +2474,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Transaction creation failed! - ¡Falló la creación de transacción! + ¡Fallo al crear la transacción! The transaction was rejected with the following reason: %1 @@ -2365,7 +2482,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis A fee higher than %1 is considered an absurdly high fee. - Una comisión mayor que %1 se considera una comisión irracionalmente alta. + Una comisión mayor que %1 se considera como una comisión absurda-mente alta. Payment request expired. @@ -2377,19 +2494,19 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Warning: Invalid Bitcoin address - Alerta: dirección Bitcoin inválida + Peligro: Dirección de Bitcoin inválida Warning: Unknown change address - Alerta: dirección de cambio desconocida + Peligro: Dirección de cambio desconocida Confirm custom change address - Confirmar dirección de cambio personalizada + Confirma dirección de cambio personalizada The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? - La dirección que ha seleccionado para cambiar no es parte de este monedero. ninguno o todos los fondos de su monedero pueden ser enviados a esta dirección. ¿Está seguro? + La dirección de cambio que ingresaste no es parte de tu monedero. Parte de tus fondos serán enviados a esta dirección. ¿Estás seguro? (no label) @@ -2412,7 +2529,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Choose previously used address - Escoger direcciones previamente usadas + Escoger dirección previamente usada This is a normal payment. @@ -2420,7 +2537,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis The Bitcoin address to send the payment to - Dirección Bitcoin a la que enviar el pago + Dirección Bitcoin a enviar el pago Alt+A @@ -2444,7 +2561,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis S&ubtract fee from amount - Restar comisiones de la cantidad. + Restar comisiones del monto. Use available balance @@ -2480,14 +2597,14 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Enter a label for this address to add it to your address book - Introduzca una etiqueta para esta dirección para añadirla a su lista de direcciones. + Introduce una etiqueta a esta dirección para añadirla a tu guía SendConfirmationDialog Yes - + Si @@ -2498,7 +2615,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Do not shut down the computer until this window disappears. - No apague el equipo hasta que desaparezca esta ventana. + No apague su computadora hasta que esta ventana desaparesca. @@ -2557,11 +2674,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Reset all sign message fields - Vaciar todos los campos de la firma de mensaje + Limpiar todos los campos de la firma de mensaje Clear &All - Vaciar &todo + Limpiar &todo &Verify Message @@ -2569,7 +2686,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! - Introduzca la dirección para la firma, el mensaje (asegurándose de copiar tal cual los saltos de línea, espacios, tabulaciones, etc.) y la firma a continuación para verificar el mensaje. Tenga cuidado de no asumir más información de lo que dice el propio mensaje firmado para evitar fraudes basados en ataques de tipo man-in-the-middle. + Introduzca la dirección para la firma, el mensaje (asegurándose de copiar tal cual los saltos de línea, espacios, tabulaciones, etc.) y la firma a continuación para verificar el mensaje. Tenga cuidado de no asumir más información de lo que dice el propio mensaje firmado para evitar fraudes basados en ataques de tipo man-in-the-middle. The Bitcoin address the message was signed with @@ -2585,23 +2702,23 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Reset all verify message fields - Vaciar todos los campos de la verificación de mensaje + Limpiar todos los campos de la verificación de mensaje Click "Sign Message" to generate signature - Click en "Fírmar mensaje" para generar una firma + Click en "Firmar mensaje" para generar una firma The entered address is invalid. - La dirección introducida no es válida. + La dirección ingresada es inválida Please check the address and try again. - Por favor revise la dirección e inténtelo de nuevo. + Por favor, revisa la dirección e intenta nuevamente. The entered address does not refer to a key. - La dirección introducida no remite a una clave. + La dirección ingresada no corresponde a una llave válida. Wallet unlock was cancelled. @@ -2609,7 +2726,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Private key for the entered address is not available. - La clave privada de la dirección introducida no está disponible. + La llave privada para la dirección introducida no está disponible. Message signing failed. @@ -2621,11 +2738,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis The signature could not be decoded. - La firma no pudo descodificarse. + La firma no pudo decodificarse. Please check the signature and try again. - Por favor compruebe la firma y pruebe de nuevo. + Por favor compruebe la firma e intente de nuevo. The signature did not match the message digest. @@ -2659,7 +2776,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis conflicted with a transaction with %1 confirmations - Hay un conflicto con una transacción con %1 confirmaciones + Hay un conflicto con la traducción de las confirmaciones %1 0/unconfirmed, %1 @@ -2667,11 +2784,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis in memory pool - en el pool de memoria + en el equipo de memoria not in memory pool - no en el pool de memoria + no en el equipo de memoria abandoned @@ -2715,11 +2832,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis own address - dirección propia + dirección personal watch-only - de observación + Solo observación label @@ -2739,7 +2856,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Debit - Enviado + Débito Total debit @@ -2747,7 +2864,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Total credit - Total recibido + Crédito total Transaction fee @@ -2755,7 +2872,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Net amount - Cantidad neta + Cantidad total Message @@ -2869,7 +2986,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Immature (%1 confirmations, will be available after %2) - No disponible (%1 confirmaciones. Estarán disponibles al cabo de %2) + Inmaduro (%1 confirmación(es), Estarán disponibles después de %2) Generated but not accepted @@ -2881,7 +2998,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Received from - Recibidos de + Recibido de Sent to @@ -2889,7 +3006,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Payment to yourself - Pago proprio + Pago a ti mismo Mined @@ -2897,11 +3014,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis watch-only - de observación + Solo observación (n/a) - (nd) + (n/a) (no label) @@ -2909,11 +3026,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Transaction status. Hover over this field to show number of confirmations. - Estado de transacción. Pasa el ratón sobre este campo para ver el número de confirmaciones. + Estado de transacción. Pasa el ratón sobre este campo para ver el numero de confirmaciones. Date and time that the transaction was received. - Fecha y hora en que se recibió la transacción. + Fecha y hora cuando se recibió la transacción Type of transaction. @@ -2929,7 +3046,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Amount removed from or added to balance. - Cantidad retirada o añadida al saldo. + Cantidad restada o añadida al balance @@ -2972,7 +3089,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis To yourself - A usted mismo + A ti mismo Mined @@ -3000,7 +3117,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Copy address - Copiar ubicación + Copiar dirección Copy label @@ -3012,11 +3129,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Copy transaction ID - Copiar ID de transacción + Copiar ID de la transacción Copy raw transaction - Copiar transacción raw + Copiar transacción bruta Copy full transaction details @@ -3036,7 +3153,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Comma separated file (*.csv) - Archivo separado de coma (*.csv) + Archivo de columnas separadas por coma (*.csv) Confirmed @@ -3044,7 +3161,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Watch-only - De observación + Solo observación Date @@ -3068,7 +3185,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Exporting Failed - Falló la exportación + La exportación falló There was an error trying to save the transaction history to %1. @@ -3076,7 +3193,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Exporting Successful - Exportación finalizada + Exportación exitosa The transaction history was successfully saved to %1. @@ -3104,6 +3221,10 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Close wallet Cerrar monedero + + Are you sure you wish to close the wallet <i>%1</i>? + ¿Está seguro que desea cerra el monedero <i>%1</i>? + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. Cerrar la monedero durante demasiado tiempo puede causar resincronizado de toda la cadena si la poda es habilitado. @@ -3120,19 +3241,19 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis WalletModel Send Coins - Enviar + Enviar monedas Fee bump error - Error de incremento de comisión + Error de incremento de cuota Increasing transaction fee failed - Ha fallado el incremento de la comisión de transacción. + Ha fallado el incremento de la cuota de transacción. Do you want to increase the fee? - ¿Desea incrementar la comisión? + ¿Desea incrementar la cuota? Current fee: @@ -3148,7 +3269,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Confirm fee bump - Confirmar incremento de comisión. + Confirmar incremento de comisión Can't sign transaction. @@ -3175,23 +3296,23 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Backup Wallet - Copia de seguridad del monedero + Respaldar monedero Wallet Data (*.dat) - Datos de monedero (*.dat) + Archivo de respaldo (*.dat) Backup Failed - La copia de seguridad ha fallado + Ha fallado el respaldo There was an error trying to save the wallet data to %1. - Ha habido un error al intentar guardar los datos del monedero en %1. + Ha habido un error al intentar guardar los datos del monedero a %1. Backup Successful - Se ha completado con éxito la copia de respaldo + Respaldo exitoso The wallet data was successfully saved to %1. @@ -3210,7 +3331,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Prune configured below the minimum of %d MiB. Please use a higher number. - La Poda se ha configurado por debajo del minimo de %d MiB. Por favor utiliza un valor más alto. + La Poda se ha configurado por debajo del mínimo de %d MiB. Por favor utiliza un valor mas alto. Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) @@ -3218,19 +3339,19 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. - Nos es posible re-escanear en modo podado.Necesitas utilizar -reindex el cual descargara la cadena de bloques al completo de nuevo. + No es es posible re-escanear en modo prune. Debes usar -reindex el cual descargara toda la blockchain de nuevo. Error: A fatal internal error occurred, see debug.log for details - Un error interno fatal ocurrió, ver debug.log para detalles + Error: Un error interno fatal ha ocurrido, ver debug.log para detalles Pruning blockstore... - Poda blockstore ... + Poda blockstore... Unable to start HTTP server. See debug log for details. - No se ha podido comenzar el servidor HTTP. Ver debug log para detalles. + No se ha podido iniciar el servidor HTTP. Ver debug log para detalles. The %s developers @@ -3254,7 +3375,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. - Por favor, compruebe si la fecha y hora en su computadora son correctas! Si su reloj esta mal, %s no trabajara correctamente. + Por favor, compruebe si la fecha y hora en su computadora son correctas! Si su reloj esta mal, %s no trabajara correctamente. Please contribute if you find %s useful. Visit %s for further information about the software. @@ -3270,7 +3391,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis This is the transaction fee you may discard if change is smaller than dust at this level - Esta es la comisión de transacción que puedes descartar si el cambio es menor que el polvo a este nivel + Esta es la cuota de transacción que puede descartar si el cambio es más pequeño que el polvo a este nivel. Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate. @@ -3290,11 +3411,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis %d of last 100 blocks have unexpected version - %d de los últimos 100 bloques tienen versión no esperada + %d de los últimos 100 bloques tienen una versión no esperada %s corrupt, salvage failed - %s corrupto. Fracasó la recuperacion + %s corrupto. Fracasó la recuperación -maxmempool must be at least %d MB @@ -3342,11 +3463,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Error loading %s: Wallet corrupted - Error cargando %s: Monedero dañado + Error cargando %s: Monedero corrupto Error loading %s: Wallet requires newer version of %s - Error cargando %s: Monedero requiere un versión mas reciente de %s + Error cargando %s: Monedero requiere una versión mas reciente de %s Error loading block database @@ -3382,15 +3503,15 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Invalid amount for -%s=<amount>: '%s' - Cantidad no valida para -%s=<amount>: '%s' + Monto invalido para -%s=<amount>: '%s' Invalid amount for -discardfee=<amount>: '%s' - Cantidad inválida para -discardfee=<amount>: '%s' + Monto invalido para -discardfee=<amount>: '%s' Invalid amount for -fallbackfee=<amount>: '%s' - Cantidad inválida para -fallbackfee=<amount>: '%s' + Monto invalido para -fallbackfee=<amount>: '%s' Specified blocks directory "%s" does not exist. @@ -3410,7 +3531,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Loading P2P addresses... - Cargando direcciones P2P ... + Cargando direcciones P2P... Error: Disk space is too low! @@ -3422,7 +3543,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Not enough file descriptors available. - No hay suficientes descriptores de archivo disponibles. + No hay suficientes descriptores de archivo disponibles. Prune cannot be configured with a negative value. @@ -3434,11 +3555,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Replaying blocks... - Reproduciendo bloques ... + Reproduciendo bloques... Rewinding blocks... - Verificando bloques... + Rebobinando bloques... The source code is available from %s. @@ -3494,7 +3615,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Error reading from database, shutting down. - Error al leer la base de datos, cerrando. + Error al leer la base de datos, cerrando aplicación. Error upgrading chainstate database @@ -3506,11 +3627,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Invalid -onion address or hostname: '%s' - Dirección -onion o nombre de host inválido: '%s' + Dirección de -onion o dominio '%s' inválido Invalid -proxy address or hostname: '%s' - Dirección -proxy o nombre de host inválido: '%s' + Dirección de -proxy o dominio ' %s' inválido Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) @@ -3524,6 +3645,10 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Need to specify a port with -whitebind: '%s' Necesita especificar un puerto con -whitebind: '%s' + + Prune mode is incompatible with -blockfilterindex. + El modo de poda es incompatible con -blockfilterindex + Reducing -maxconnections from %d to %d, because of system limitations. Reduciendo -maxconnections de %d a %d, debido a limitaciones del sistema. @@ -3556,23 +3681,23 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis The transaction amount is too small to pay the fee - Cantidad de la transacción demasiado pequeña para pagar la comisión + El monto a transferir es muy pequeño para pagar el impuesto This is experimental software. - Este software es experimental. + Este es un software experimental. Transaction amount too small - Cantidad de la transacción demasiado pequeña + Monto de la transacción muy pequeño Transaction too large - Transacción demasiado grande, intenta dividirla en varias. + Transacción demasiado grande Unable to bind to %s on this computer (bind returned error %s) - No es posible conectar con %s en este sistema (bind ha dado el error %s) + No es posible conectar con %s en este sistema (bind ha devuelto el error %s) Unable to create the PID file '%s': %s @@ -3582,9 +3707,13 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Unable to generate initial keys No es posible generar llaves iniciales + + Unknown -blockfilterindex value %s. + %s es un valor desconocido para -blockfilterindex + Verifying wallet(s)... - Verificando monedero(s)... + Verificando billetera(s)... Warning: unknown new rules activated (versionbit %i) @@ -3596,11 +3725,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis -maxtxfee is set very high! Fees this large could be paid on a single transaction. - -maxtxfee tiene un ajuste muy elevado! Comisiones muy grandes podrían ser pagadas en una única transaccion. + -maxtxfee tiene un valor muy elevado! Comisiones muy grandes podrían ser pagadas en una única transacción. This is the transaction fee you may pay when fee estimates are not available. - Esta es la comisión de transacción que debe pagar cuando las estimaciones de comisión no estén disponibles. + Impuesto por transacción que pagarás cuando la estimación de impuesto no esté disponible. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. @@ -3612,11 +3741,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. - Aviso: fichero de monedero corrupto, datos recuperados! Original %s guardado como %s en %s; si su balance de transacciones es incorrecto, debe restaurar desde una copia de seguridad. + Advertencia: Archivo de monedero corrupto, datos recuperados! Original %s guardado como %s en %s; si su balance de transacciones es incorrecto, debe restaurar desde una copia de seguridad. %s is set very high! - ¡%s se establece muy alto! + ¡%s esta configurado muy alto! Error loading wallet %s. Duplicate -wallet filename specified. @@ -3624,31 +3753,31 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Starting network threads... - Iniciando funciones de red... + Iniciando procesos de red... The wallet will avoid paying less than the minimum relay fee. - El monedero evitará pagar menos que la cuota de retransmisión mínima. + La billetera no permitirá pagar menos que la fee de transmisión mínima (relay fee). This is the minimum transaction fee you pay on every transaction. - Esta es la comisión mínima de transacción que usted paga en cada transacción. + Esta es la tarifa mínima a pagar en cada transacción. This is the transaction fee you will pay if you send a transaction. - Esta es la comisión de transacción que pagará si envía una transacción. + Esta es la tarifa a pagar si realizas una transacción. Transaction amounts must not be negative - Las cantidades de transacción no deben ser negativa + Los montos de la transacción no debe ser negativo Transaction has too long of a mempool chain - La transacción tiene demasiado tiempo de una cadena de mempool + La transacción tiene largo tiempo en una cadena mempool Transaction must have at least one recipient - La transacción debe de tener al menos un receptor + La transacción debe tener al menos un destinatario Unknown network specified in -onlynet: '%s' @@ -3684,7 +3813,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Cannot downgrade wallet - No se puede cambiar a una versión mas antigua el monedero + No se puede rebajar el monedero Rescanning... @@ -3692,7 +3821,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Done loading - Se terminó de cargar + Generado pero no aceptado \ No newline at end of file diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/bitcoin_es_CL.ts index 6abf6cd7c5..59cae48e2f 100644 --- a/src/qt/locale/bitcoin_es_CL.ts +++ b/src/qt/locale/bitcoin_es_CL.ts @@ -48,11 +48,11 @@ Exportar los datos en la pestaña actual a un archivo Choose the address to send coins to - Elija la dirección para enviar las monedas + Elija la dirección para enviar las monedas Choose the address to receive coins with - Elige la dirección para recibir las monedas + Elige la dirección para recibir las monedas C&hoose @@ -1137,7 +1137,7 @@ Exportar los datos en la pestaña actual a un archivo &Unit to show amounts in: - Unidad para mostrar montos en: + Unidad para mostrar montos en: Choose the default subdivision unit to show in the interface and when sending coins. @@ -1165,7 +1165,7 @@ Exportar los datos en la pestaña actual a un archivo none - ninguno + ninguno Confirm options reset @@ -1563,7 +1563,7 @@ Exportar los datos en la pestaña actual a un archivo Number of connections - Número de conexiones + Número de conexiones Block chain @@ -1703,7 +1703,7 @@ Exportar los datos en la pestaña actual a un archivo Totals - Totales + Totales In: @@ -1783,7 +1783,7 @@ Exportar los datos en la pestaña actual a un archivo never - nunca + nunca Inbound @@ -1795,7 +1795,7 @@ Exportar los datos en la pestaña actual a un archivo Yes - Si + Si No @@ -2266,7 +2266,7 @@ Tarifa de copia SendConfirmationDialog Yes - Si + Si diff --git a/src/qt/locale/bitcoin_es_CO.ts b/src/qt/locale/bitcoin_es_CO.ts index 41111cf0f2..d5a5a1348a 100644 --- a/src/qt/locale/bitcoin_es_CO.ts +++ b/src/qt/locale/bitcoin_es_CO.ts @@ -121,7 +121,7 @@ Enter passphrase - Introduce contraseña actual + Introduce contraseña actual New passphrase @@ -1198,7 +1198,7 @@ The supplied proxy address is invalid. - El proxy ingresado es inválido. + El proxy ingresado es inválido. @@ -1883,7 +1883,7 @@ ReceiveRequestDialog QR Code - Código QR + Código QR Copy &URI diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/bitcoin_es_MX.ts index a6dcacd3b7..5b19c0b5f7 100644 --- a/src/qt/locale/bitcoin_es_MX.ts +++ b/src/qt/locale/bitcoin_es_MX.ts @@ -305,10 +305,18 @@ Network activity disabled. Actividad de red deshabilitada. + + Syncing Headers (%1%)... + Sincronizar encabezados (%1%) ... + Reindexing blocks on disk... Reindexando bloques en el disco... + + Proxy is <b>enabled</b>: %1 + El proxy está <b>habilitado</b>: %1 + Send coins to a Bitcoin address Enviar monedas a una dirección Bitcoin diff --git a/src/qt/locale/bitcoin_es_VE.ts b/src/qt/locale/bitcoin_es_VE.ts index 96b55d8dda..51ca9fdf65 100644 --- a/src/qt/locale/bitcoin_es_VE.ts +++ b/src/qt/locale/bitcoin_es_VE.ts @@ -83,7 +83,7 @@ Export Address List - Exportar la Lista de Direcciones + Exportar la Lista de Direcciones Comma separated file (*.csv) @@ -1395,7 +1395,7 @@ Not enough file descriptors available. - No hay suficientes descriptores de archivo disponibles. + No hay suficientes descriptores de archivo disponibles. Verifying blocks... diff --git a/src/qt/locale/bitcoin_eu.ts b/src/qt/locale/bitcoin_eu.ts index 8d1479de7c..b998af90a8 100644 --- a/src/qt/locale/bitcoin_eu.ts +++ b/src/qt/locale/bitcoin_eu.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Hauek dira zuk dirua jaso dezaketen Bitcoin helbideak. Egiaztatu beti diru-kopurua eta dirua jasoko duen helbidea zuzen egon daitezen, txanponak bidali baino lehen. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Hauek dira ordainketak jasotzeko zure Bitcoin helbideak. Jaso taulako 'Jasotzeko helbide berri bat sortu' botoia erabili helbide berri bat sortzeko. + &Copy Address &Helbidea kopiatu @@ -131,6 +135,10 @@ Repeat new passphrase Pasahitz berria errepiikatu + + Show passphrase + Pasahitza erakutsi + Encrypt wallet Diruzorroa enkriptatu @@ -171,6 +179,30 @@ Wallet encrypted Zorroa enkriptatuta + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Diruzorroaren pasahitz berria sartu. <br/>Mesedez <b> hamar edo gehiago ausazko hizkiko</b> pasahitza erabili, edo <b> gutxienez zortzi hitz</b> + + + Enter the old passphrase and new passphrase for the wallet. + Diruzorroaren pasahitz zahar zein berria sartu. + + + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Gogoan izan diruzorroaren enkripzioak ezin dituela zure bitcoinak zure ordenagailuan izan dezakezun malware batengandik lapurtuak izatetik guztiz babestu . + + + Wallet to be encrypted + Enkriptatzeko diruzorroa + + + Your wallet is about to be encrypted. + Zure diruzorroa enkriptatzekotan dago + + + Your wallet is now encrypted. + Zure diruzorroa enkriptatua dago orain. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. GARRANTZITSUA: Diruzorroaren segurtasun-kopia, wallet.dat, erabilezina bihurtuko da enkriptazioa burutu ondoren. Ondorioz, segurtasun-kopia berriekin ordezkatu beharko zenituzke zure jada eginik dituzun diruzorroaren kopiak. @@ -199,12 +231,28 @@ Wallet decryption failed Zorroaren desenkriptazioak huts egin du + + Wallet passphrase was successfully changed. + Diruzorroaren pasahitza arrakastaz aldatu da. + BanTableModel - + + IP/Netmask + IP/Saremaskara + + + Banned Until + Honarte debekatua + + BitcoinGUI + + Sign &message... + &Mezua zinatu + Synchronizing with network... Sarearekin sinkronizatzen... @@ -233,6 +281,14 @@ Quit application Aplikaziotik irten + + &About %1 + %1-ri buruz + + + Show information about %1 + %1-ri buruzko informazioa azaldu + About &Qt &Qt-ri buruz @@ -245,10 +301,54 @@ &Options... &Aukerak... + + Modify configuration options for %1 + %1-ren konfiguraketa aukerak aldatu + + + &Encrypt Wallet... + Diruzorroa &enkriptatu... + + + &Change Passphrase... + Pasahitza &aldatu... + + + Create Wallet... + Diruzorroa sortu... + + + Create a new wallet + Diruzorro berri bat sortu + + + Wallet: + Diruzorroa: + Change the passphrase used for wallet encryption Diruzorroa enkriptatzeko erabilitako pasahitza aldatu + + &Verify message... + Mezua &balioztatu... + + + &Send + &Bidali + + + &Receive + &Jaso + + + &Show / Hide + &Erakutsi / Izkutatu + + + Show or hide the main Window + Lehio nagusia erakutsi edo izkutatu + &File &Artxiboa @@ -265,6 +365,10 @@ Tabs toolbar Fitxen tresna-barra + + %1 behind + %1 atzetik + Error Akatsa @@ -273,10 +377,76 @@ Up to date Eguneratua + + Open Wallet + Diruzorroa zabaldu + + + Open a wallet + Diruzorro bat zabaldu + + + Close Wallet... + Diruzorroa itxi... + + + Close wallet + Diruzorroa itxi + + + &Window + &Lehioa + + + Zoom + Gerturatu + + + Main Window + Lehio nagusia + Catching up... Eguneratzen... + + Error: %1 + Akatsa: %1 + + + Warning: %1 + Abisua: %1 + + + Date: %1 + + Data: %1 + + + + Amount: %1 + + Kopurua: %1 + + + + Wallet: %1 + + Diruzorroa: %1 + + + + Label: %1 + + Etiketa: %1 + + + + Address: %1 + + Helbidea: %1 + + Sent transaction Bidalitako transakzioa @@ -296,10 +466,30 @@ CoinControlDialog + + Coin Selection + Txanpon aukeraketa + + + Quantity: + Zenbat: + + + Bytes: + Byte kopurua: + Amount: Kopurua: + + Dust: + Hautsa: + + + Change: + Bueltak: + Amount Kopurua @@ -308,6 +498,14 @@ Date Data + + Confirmations + Konfirmazioak + + + Confirmed + Konfirmatuta + Copy address Helbidea kopiatu @@ -316,17 +514,53 @@ Copy label Etiketa kopiatu + + yes + bai + + + no + ez + (no label) (izendapenik ez) - + + (change) + (bueltak) + + CreateWalletActivity + + Creating Wallet <b>%1</b>... + Diruzorroa sortzen<b>%1</b>... + + + Create wallet failed + Diruzorroa sortzen hutsegitea + CreateWalletDialog - + + Create Wallet + Diruzorroa sortu + + + Wallet Name + Diruzorroaren izena + + + Encrypt Wallet + Diruzorroa enkriptatu + + + Create + Sortu + + EditAddressDialog @@ -364,12 +598,32 @@ FreespaceChecker + + name + izena + HelpMessageDialog + + version + bertsioa + Intro + + Welcome + Ongietorri + + + Welcome to %1. + Ongietorri %1-ra + + + Bitcoin + Bitcoin + Error Akatsa @@ -381,12 +635,44 @@ Form Inprimakia + + Unknown... + Ezezaguna... + + + Last block time + Azken blokearen unea + + + calculating... + kalkulatzen... + + + Hide + Izkutatu + OpenURIDialog + + Open URI + URI zabaldu + + + URI: + URI: + OpenWalletActivity + + Open wallet failed + Diruzorroa irekitzen hutsegitea + + + Open wallet warning + Diruzorroa irekitzen abisua + OptionsDialog @@ -394,10 +680,54 @@ Options Aukerak + + &Main + &Nagusia + + + Size of &database cache + Databasearen cache tamaina + + + Tor + Tor + + + &Window + &Lehioa + + + &Display + &Pantaila + + + &Unit to show amounts in: + Zenbatekoa azaltzeko &unitatea: + + + &OK + &Ados + + + &Cancel + &Ezeztatu + + + none + Bat ere ez + + + Configuration options + Konfiguraketa aukerak + Error Akatsa + + This change would require a client restart. + Aldaketa honek clienta berriro piztea eskatzen du + OverviewPage @@ -405,6 +735,14 @@ Form Inprimakia + + Pending: + Zai: + + + Total: + Guztira: + PaymentServer @@ -418,6 +756,10 @@ Amount Kopurua + + Error: %1 + Akatsa: %1 + unknown ezezaguna @@ -428,6 +770,10 @@ RPCConsole + + Last block time + Azken blokearen unea + ReceiveCoinsDialog @@ -496,14 +842,34 @@ Send Coins Txanponak bidali + + Quantity: + Zenbat: + + + Bytes: + Byte kopurua: + Amount: Kopurua: + + Change: + Bueltak: + + + Hide + Izkutatu + Send to multiple recipients at once Hainbat jasotzaileri batera bidali + + Dust: + Hautsa: + Balance: Saldoa: @@ -658,7 +1024,7 @@ Received with - Honekin jasoa + Honekin jasoa Sent to @@ -729,7 +1095,7 @@ Received with - Honekin jasoa + Honekin jasoa Sent to @@ -763,6 +1129,10 @@ Comma separated file (*.csv) Komaz bereizitako artxiboa (*.csv) + + Confirmed + Berretsia + Date Data @@ -789,6 +1159,10 @@ WalletController + + Close wallet + Diruzorroa itxi + WalletFrame diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts index 4d697b5f15..2e96626fa0 100644 --- a/src/qt/locale/bitcoin_fa.ts +++ b/src/qt/locale/bitcoin_fa.ts @@ -174,7 +174,7 @@ Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. والت رمز بندی شد . -یاد داشته باشید که پنجره رمز شده نمی تواند کلا از سرقت نرم افزارهای مخرب محافظ کند +یاد داشته باشید که پنجره رمز شده نمی تواند کلا از سرقت نرم افزارهای مخرب محافظ کند IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -627,7 +627,7 @@ Confirmations - تاییدیه + تاییدیه Confirmed @@ -794,7 +794,7 @@ Command-line options - گزینه های خط-فرمان + گزینه های خط-فرمان @@ -937,7 +937,7 @@ &Hide tray icon - مخفی کردن ایکون + مخفی کردن ایکون @@ -1153,7 +1153,7 @@ Your current balance in watch-only addresses - موجودی شما در همین لحظه در آدرس های Watch only Addresses + موجودی شما در همین لحظه در آدرس های Watch only Addresses Spendable: @@ -1828,7 +1828,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p (Smart fee not initialized yet. This usually takes a few blocks...) - (مقداردهی کارمزد هوشمند هنوز مشخص نشده است.این کارمزد معمولا به اندازه چند بلاک طول میکشد...) + (مقداردهی کارمزد هوشمند هنوز مشخص نشده است.این کارمزد معمولا به اندازه چند بلاک طول میکشد...) Send to multiple recipients at once @@ -1864,7 +1864,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Confirm the send action - تایید عملیات ارسال + تایید عملیات ارسال S&end @@ -2084,7 +2084,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p &Sign Message - &ثبت پیام + &ثبت پیام The Bitcoin address to sign the message with @@ -2373,7 +2373,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Amount removed from or added to balance. - میزان وجه کم شده یا اضافه شده به حساب + میزان وجه کم شده یا اضافه شده به حساب diff --git a/src/qt/locale/bitcoin_fa_IR.ts b/src/qt/locale/bitcoin_fa_IR.ts new file mode 100644 index 0000000000..606adbfd93 --- /dev/null +++ b/src/qt/locale/bitcoin_fa_IR.ts @@ -0,0 +1,173 @@ + + + AddressBookPage + + Right-click to edit address or label + کلیک راست برای ویرایش نشانی یا برچسب + + + Create a new address + ساختن یک ادرس جدید + + + &New + و جدید + + + Copy the currently selected address to the system clipboard + کپی کردن آدرس فعلی انتخاب شده در کلیپ بورد سیستم + + + &Copy + و کپی + + + Delete the currently selected address from the list + حذف آدرس انتخاب‌شده فعلی از فهرست + + + Enter address or label to search + آدرس یا برچسب را برای جستجو وارد کنید + + + Export the data in the current tab to a file + داده های موجود در برگه فعلی را به یک فایل صادر کنید + + + &Export + صادر کردن + + + &Delete + و حذف کردن + + + + AddressTableModel + + + AskPassphraseDialog + + + BanTableModel + + + BitcoinGUI + + + CoinControlDialog + + + CreateWalletActivity + + + CreateWalletDialog + + + EditAddressDialog + + + FreespaceChecker + + + HelpMessageDialog + + + Intro + + + ModalOverlay + + + OpenURIDialog + + + OpenWalletActivity + + + OptionsDialog + + + OverviewPage + + + PaymentServer + + + PeerTableModel + + + QObject + + + QRImageWidget + + + RPCConsole + + + ReceiveCoinsDialog + + + ReceiveRequestDialog + + + RecentRequestsTableModel + + + SendCoinsDialog + + + SendCoinsEntry + + + SendConfirmationDialog + + + ShutdownWindow + + + SignVerifyMessageDialog + + + TrafficGraphWidget + + + TransactionDesc + + + TransactionDescDialog + + + TransactionTableModel + + + TransactionView + + + UnitDisplayStatusBarControl + + + WalletController + + + WalletFrame + + + WalletModel + + + WalletView + + &Export + صادر کردن + + + Export the data in the current tab to a file + داده های موجود در برگه فعلی را به یک فایل صادر کنید + + + + bitcoin-core + + \ No newline at end of file diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index efa3defba3..92a231b319 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -199,6 +199,10 @@ Your wallet is about to be encrypted. Lompakkosi tulee kohta salatuksi. + + Your wallet is now encrypted. + Lompakkosi on nyt salattu. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. TÄRKEÄÄ: Kaikki tekemäsi vanhan lompakon varmuuskopiot pitäisi korvata uusilla suojatuilla varmuuskopioilla. Turvallisuussyistä edelliset varmuuskopiot muuttuvat turhiksi, kun aloitat uuden suojatun lompakon käytön. @@ -321,6 +325,14 @@ Open &URI... Avaa &URI... + + Create Wallet... + Luo lompakko... + + + Create a new wallet + Luo uusi lompakko + Wallet: Lompakko: @@ -481,6 +493,18 @@ Up to date Rahansiirtohistoria on ajan tasalla + + &Sending addresses + &Lähetysosoitteet + + + &Receiving addresses + &Vastaanotto-osoitteet + + + Open Wallet + Avaa lompakko + Open a wallet Avaa lompakko @@ -489,6 +513,10 @@ Close Wallet... Sulje lompakko... + + Close wallet + Sulje lompakko + Show the %1 help message to get a list with possible Bitcoin command-line options Näytä %1 ohjeet saadaksesi listan mahdollisista Bitcoinin komentorivivalinnoista @@ -533,6 +561,10 @@ Error: %1 Virhe: %1 + + Warning: %1 + Varoitus: %1 + Date: %1 @@ -755,10 +787,38 @@ CreateWalletActivity + + Creating Wallet <b>%1</b>... + Luodaan lompakkoa <b>%1</b>... + CreateWalletDialog - + + Create Wallet + Luo lompakko + + + Wallet Name + Lompakon nimi + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Salaa lompakko. Lompakko salataan valitsemallasa salasanalla. + + + Encrypt Wallet + Salaa lompakko + + + Make Blank Wallet + Luo tyhjä lompakko + + + Create + Luo + + EditAddressDialog @@ -1003,6 +1063,10 @@ OpenWalletActivity + + Open wallet failed + Lompakon avaaminen epäonnistui + default wallet oletuslompakko @@ -1102,6 +1166,10 @@ Reverting this setting requires re-downloading the entire blockchain. Tämän asetuksen muuttaminen vaatii koko lohkoketjun uudelleenlataamista. + + MiB + MiB + (0 = auto, <0 = leave that many cores free) (0 = auto, <0 = jätä näin monta ydintä vapaaksi) @@ -1652,6 +1720,10 @@ To specify a non-default location of the data directory use the '%1' option. Käytä '%1' -valitsinta määritelläksesi muun kuin oletuksen data-hakemistolle. + + Blocksdir + Blocksdir + To specify a non-default location of the blocks directory use the '%1' option. Käytä '%1' -valitsinta määritelläksesi muun kuin oletuksen lohkohakemistolle. @@ -1862,7 +1934,7 @@ Ban for - Estä + Estä &Unban @@ -2358,7 +2430,7 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Warning: Invalid Bitcoin address - Varoitus: Virheellinen Bitcoin-osoite + Varoitus: Virheellinen Bitcoin-osoite Warning: Unknown change address @@ -3077,6 +3149,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t WalletController + + Close wallet + Sulje lompakko + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. Lompakon sulkeminen liian pitkäksi aikaa saattaa johtaa tarpeeseen synkronoida koko ketju uudelleen, mikäli karsinta on käytössä. diff --git a/src/qt/locale/bitcoin_fil.ts b/src/qt/locale/bitcoin_fil.ts index 71baacf230..9ced1af626 100644 --- a/src/qt/locale/bitcoin_fil.ts +++ b/src/qt/locale/bitcoin_fil.ts @@ -483,7 +483,7 @@ &Window - Window + Window Minimize @@ -594,7 +594,7 @@ Bytes: - Bytes: + Bytes: Amount: @@ -718,7 +718,7 @@ Can vary +/- %1 satoshi(s) per input. - Maaaring magbago ng +/- %1 satoshi(s) kada input. + Maaaring magbago ng +/- %1 satoshi(s) kada input. (no label) @@ -1160,7 +1160,7 @@ &Window - Window + Window Show only a tray icon after minimizing the window. @@ -1945,7 +1945,7 @@ Clear all fields of the form. - Burahin ang laman ng lahat ng patlang ng form. + Burahin ang laman ng lahat ng patlang ng form. Clear @@ -1953,7 +1953,7 @@ Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. - Ang mga native segwit address (aka Bech32 o BIP-173) ay makakabawas ng iyong mga bayad sa transaksyon at nagaalok ng mas mahusay na proteksyon laban sa mga typo, ngunit ang mga lumang walet ay hindi sumusuporta nito. Kapag hindi ch-in-eck, gagawa ng mga address na katugma sa mga lumang walet sa halip. + Ang mga native segwit address (aka Bech32 o BIP-173) ay makakabawas ng iyong mga bayad sa transaksyon at nagaalok ng mas mahusay na proteksyon laban sa mga typo, ngunit ang mga lumang walet ay hindi sumusuporta nito. Kapag hindi ch-in-eck, gagawa ng mga address na katugma sa mga lumang walet sa halip. Generate native segwit (Bech32) address @@ -2106,7 +2106,7 @@ Bytes: - Bytes: + Bytes: Amount: @@ -2190,7 +2190,7 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Clear all fields of the form. - Limasin ang lahat ng mga patlang ng form. + Limasin ang lahat ng mga patlang ng form. Dust: @@ -2314,7 +2314,7 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng The total exceeds your balance when the %1 transaction fee is included. - Ang kabuuan ay lumampas sa iyong balanse kapag kasama ang %1 na bayad sa transaksyon. + Ang kabuuan ay lumampas sa iyong balanse kapag kasama ang %1 na bayad sa transaksyon. Duplicate address found: addresses should only be used once each. @@ -2385,7 +2385,7 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng The Bitcoin address to send the payment to - Ang Bitcoin address kung saan ipapadala and bayad + Ang Bitcoin address kung saan ipapadala and bayad Alt+A @@ -2514,7 +2514,7 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Sign the message to prove you own this Bitcoin address - Pirmahan ang mensahe upang mapatunayan na pagmamay-ari mo ang Bitcoin address na ito + Pirmahan ang mensahe upang mapatunayan na pagmamay-ari mo ang Bitcoin address na ito Sign &Message @@ -2752,7 +2752,7 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Ang mga nabuong coins ay dapat mayroong %1 blocks sa ibabaw bago sila gastusin. Kapag nabuo mo ang block na ito, nai-broadcast ito sa network na idadagdag sa block chain. Kung nabigo itong makapasok sa chain, magbabago ang katayuan nito sa "hindi tinanggap" at hindi it magagastos. Maaaring mangyari ito paminsan-minsan kung may isang node na bumuo ng isang block sa loob ng ilang segundo sa iyo. + Ang mga nabuong coins ay dapat mayroong %1 blocks sa ibabaw bago sila gastusin. Kapag nabuo mo ang block na ito, nai-broadcast ito sa network na idadagdag sa block chain. Kung nabigo itong makapasok sa chain, magbabago ang katayuan nito sa "hindi tinanggap" at hindi it magagastos. Maaaring mangyari ito paminsan-minsan kung may isang node na bumuo ng isang block sa loob ng ilang segundo sa iyo. Debug information @@ -3060,7 +3060,7 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng UnitDisplayStatusBarControl Unit to show amounts in. Click to select another unit. - Unit na gamit upang ipakita ang mga halaga. I-klik upang pumili ng isa pang yunit. + Unit na gamit upang ipakita ang mga halaga. I-klik upang pumili ng isa pang yunit. diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index 8b3ed89849..ec277e4eae 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -820,7 +820,7 @@ Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. - Désactiver les clés privées pour ce porte-monnaie. Les portes-monnaie avec des clés privées désactivées n'auront pas de clés privées et ne peuvent pas avoir une graine HD ou des clés privées importées. Ceci est idéal pour un porte-monnaie + Désactiver les clés privées pour ce porte-monnaie. Les portes-monnaie avec des clés privées désactivées n'auront pas de clés privées et ne peuvent pas avoir une graine HD ou des clés privées importées. Ceci est idéal pour un porte-monnaie Disable Private Keys diff --git a/src/qt/locale/bitcoin_he.ts b/src/qt/locale/bitcoin_he.ts index 0553c20607..8f9e59f5f7 100644 --- a/src/qt/locale/bitcoin_he.ts +++ b/src/qt/locale/bitcoin_he.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. אלו הן כתובות הביטקוין שלך לשליחת תשלומים. חשוב לבדוק את הסכום ואת הכתובת המקבלת לפני שליחת מטבעות. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + אלה כתובות הביטקוין שלך לקבלת תשלומים. השתמש בלחצן 'צור כתובת קבלה חדשה' בכרטיסייה קבלה כדי ליצור כתובות חדשות. + &Copy Address &העתק כתובת @@ -131,6 +135,10 @@ Repeat new passphrase חזור על הסיסמה החדשה + + Show passphrase + הצג סיסמה + Encrypt wallet הצפנת הארנק @@ -1080,7 +1088,7 @@ Prune &block storage to - יש לגזום את &מאגר הבלוקים אל + יש לגזום את &מאגר הבלוקים אל GB @@ -2214,7 +2222,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - כאשר יש פחות נפח עסקאות מאשר מקום בבלוק, כורים וכן צמתות מקשרות יכולות להכתיב עמלות מינימום. התשלום של עמלת מינימום הנו תקין, אך יש לקחת בחשבון שהדבר יכול לגרום לעסקה שלא תאושר ברגע שיש יותר ביקוש לעסקאות ביטקוין מאשר הרשת יכולה לעבד. + כאשר יש פחות נפח עסקאות מאשר מקום בבלוק, כורים וכן צמתות מקשרות יכולות להכתיב עמלות מינימום. התשלום של עמלת מינימום הנו תקין, אך יש לקחת בחשבון שהדבר יכול לגרום לעסקה שלא תאושר ברגע שיש יותר ביקוש לעסקאות ביטקוין מאשר הרשת יכולה לעבד. A too low fee might result in a never confirming transaction (read the tooltip) @@ -3255,7 +3263,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate. - שידור-חוזר של הבלוקים לא הצליח. תצטרכו לבצע בנייה מחדש של מאגר הנתונים באמצעות הדגל reindex-chainstate-. + שידור-חוזר של הבלוקים לא הצליח. תצטרכו לבצע בנייה מחדש של מאגר הנתונים באמצעות הדגל reindex-chainstate-. Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain @@ -3381,6 +3389,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Loading P2P addresses... טעינת כתובות P2P... + + Error: Disk space is too low! + שגיאה: שטח הדיסק נמוך מדי! +  + Loading banlist... טוען רשימת חסומים... @@ -3495,7 +3508,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Section [%s] is not recognized. - הפסקה [%s] אינה מזוהה. + הפסקה [%s] אינה מזוהה. Signing transaction failed diff --git a/src/qt/locale/bitcoin_hi.ts b/src/qt/locale/bitcoin_hi.ts index a71fc999fa..611618faba 100644 --- a/src/qt/locale/bitcoin_hi.ts +++ b/src/qt/locale/bitcoin_hi.ts @@ -19,11 +19,11 @@ &Copy - &कॉपी + &कॉपी C&lose - सी&लूज़ + सी&लूज़ Delete the currently selected address from the list @@ -71,7 +71,7 @@ Copy &Label - प्रतिलिप करे और चिन्हित करें + प्रतिलिप करे और चिन्हित करें &Edit @@ -102,7 +102,7 @@ Address - पता + पता (no label) @@ -133,7 +133,7 @@ This operation needs your wallet passphrase to unlock the wallet. - इस संचालान हेतु कृपया अपने वॉलेट के सुरक्षा संवाद को दर्ज करें + इस संचालान हेतु कृपया अपने वॉलेट के सुरक्षा संवाद को दर्ज करें Unlock wallet @@ -141,7 +141,7 @@ This operation needs your wallet passphrase to decrypt the wallet. - आपके वॉलेट को गोपनीय बनाने हेतु आपके वॉलेट का सुरक्षा संवाद अनिवार्य है + आपके वॉलेट को गोपनीय बनाने हेतु आपके वॉलेट का सुरक्षा संवाद अनिवार्य है Decrypt wallet @@ -216,7 +216,7 @@ Wallet: - तिजोरी + तिजोरी Change the passphrase used for wallet encryption @@ -439,7 +439,7 @@ Address - पता + पता Amount @@ -574,7 +574,7 @@ TransactionDescDialog This pane shows a detailed description of the transaction - ये खिड़की आपको लेन-देन का विस्तृत विवरण देगी ! + ये खिड़की आपको लेन-देन का विस्तृत विवरण देगी ! @@ -612,7 +612,7 @@ Address - पता + पता Exporting Failed diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/bitcoin_hr.ts index 428af22fd7..bef1f76f20 100644 --- a/src/qt/locale/bitcoin_hr.ts +++ b/src/qt/locale/bitcoin_hr.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Ovo su vaše Bitcoin adrese za slanje novca. Uvijek provjerite iznos i adresu primatelja prije slanja novca. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Ovo su vaše bitcoin adrese za primanje novca. Preporučeno je da koristite novu primateljsku adresu za svaku transakciju. + &Copy Address &Kopirajte adresu @@ -131,6 +135,10 @@ Repeat new passphrase Ponovite novu lozinku + + Show passphrase + Pokažite lozinku + Encrypt wallet Šifrirajte novčanik @@ -171,10 +179,30 @@ Wallet encrypted Novčanik šifriran + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Unesite novu lozinku za novčanik. <br/>Molimo vas da koristite zaporku od <b>deset ili više slučajnih znakova</b>, ili <b>osam ili više riječi.</b> + + + Enter the old passphrase and new passphrase for the wallet. + Unesite staru i novu lozinku za novčanik. + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. Zapamtite da šifriranje vašeg novčanika ne može u potpunosti zaštititi vaše bitcoinove od zloćudnog softvera kojim se zarazi vaše računalo. + + Wallet to be encrypted + Novčanik koji treba šifrirati + + + Your wallet is about to be encrypted. + Vaš novčanik će biti šifriran. + + + Your wallet is now encrypted. + Vaš novčanik je sad šifriran. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. VAŽNO: Sve prethodne pričuve vašeg novčanika trebale bi biti zamijenjene novo stvorenom, šifriranom datotekom novčanika. Zbog sigurnosnih razloga, prethodne pričuve nešifriranog novčanika će postati beskorisne čim počnete koristiti novi, šifrirani novčanik. @@ -297,6 +325,14 @@ Open &URI... Otvorite &URI... + + Create Wallet... + Stvorite novčanik... + + + Create a new wallet + Stvorite novi novčanik + Wallet: Novčanik: @@ -525,6 +561,10 @@ Error: %1 Greška: %1 + + Warning: %1 + Upozorenje: %1 + Date: %1 @@ -746,10 +786,58 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + Stvara se novčanik <b>%1</b>... + + + Create wallet failed + Neuspješno stvaranje novčanika + + + Create wallet warning + Upozorenje kod stvaranja novčanika + + CreateWalletDialog - + + Create Wallet + Stvorite novčanik + + + Wallet Name + Ime novčanika + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Šifrirajte novčanik. Novčanik bit će šifriran lozinkom po vašem izboru. + + + Encrypt Wallet + Šifrirajte novčanik + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Isključite privatne ključeve za ovaj novčanik. Novčanici gdje su privatni ključevi isključeni neće sadržati privatne ključeve te ne mogu imati HD sjeme ili uvezene privatne ključeve. Ova postavka je idealna za novčanike koje su isključivo za promatranje. + + + Disable Private Keys + Isključite privatne ključeve + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Stvorite prazni novčanik. Prazni novčanici nemaju privatnih ključeva ili skripta. Mogu se naknadno uvesti privatne ključeve i adrese ili postaviti HD sjeme. + + + Make Blank Wallet + Stvorite prazni novčanik + + + Create + Stvorite + + EditAddressDialog @@ -865,6 +953,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Kada kliknete OK, %1 počet će preuzimati i procesirati cijeli lanac blokova (%2GB) počevši s najranijim transakcijama u %3 kad je %4 prvi put pokrenut. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Vraćanje na ovu postavku zahtijeva ponovno preuzimanje cijelog lanca blokova. Brže je najprije preuzeti cijeli lanac pa ga kasnije obrezati. Isključuje napredne mogućnosti. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Početna sinkronizacija je vrlo zahtjevna i može otkriti hardverske probleme kod vašeg računala koji su prije prošli nezamijećeno. Svaki put kad pokrenete %1, nastavit će preuzimati odakle je stao. @@ -885,6 +977,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Odbacite blokove nakon provjere osim one najnovije do %1 GB-a (obrezujte) + At least %1 GB of data will be stored in this directory, and it will grow over time. Bit će spremljeno barem %1 GB podataka u ovoj mapi te će se povećati tijekom vremena. @@ -917,7 +1013,11 @@ (of %n GB needed) (od potrebnog prostora od %n GB)(od potrebnog prostora od %n GB)(od potrebnog %n GB) - + + (%n GB needed for full chain) + (potreban je %n GB za cijeli lanac)(potrebna su %n GB-a za cijeli lanac)(potrebno je %n GB-a za cijeli lanac) + + ModalOverlay @@ -994,6 +1094,14 @@ OpenWalletActivity + + Open wallet failed + Neuspješno otvaranje novčanika + + + Open wallet warning + Upozorenje kod otvaranja novčanika + default wallet uobičajeni novčanik @@ -1383,6 +1491,14 @@ Cannot process payment request because BIP70 support was not compiled in. Ne može se obraditi zahtjev uplate jer podrška za BIP70 nije bila uključena tijekom prevođenja. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Zbog rasprostranjenih sigurnosnih mana u BIP70-u, strogo se preporučuje da se ignoriraju bilo kakve naredbe o zamjeni novčanika sa strane trgovca. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Ako dobivate ovu grešku, trebali biste zatražiti od trgovca BIP21 kompatibilan URI. + Invalid payment address %1 Nevažeća adresa za plaćanje %1 @@ -1604,6 +1720,10 @@ Error encoding URI into QR Code. Greška kod kodiranja URI adrese u QR kod. + + QR code support not available. + Podrška za QR kodove je nedostupna. + Save QR Code Spremi QR kod @@ -1962,6 +2082,10 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. Opcionalan iznos koji možete zahtijevati. Ostavite ovo prazno ili unesite nulu ako ne želite zahtijevati specifičan iznos. + + &Create new receiving address + &Stvorite novu primateljsku adresu + Clear all fields of the form. Obriši sva polja @@ -2283,6 +2407,14 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k %1 (%2 blocks) %1 (%2 blokova) + + from wallet '%1' + iz novčanika '%1' + + + %1 to '%2' + od %1 do '%2' + %1 to %2 %1 na %2 @@ -2315,6 +2447,10 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Total Amount Ukupni iznos + + To review recipient list click "Show Details..." + Kliknite "Prikažite detalje..." kako biste pregledali popis primatelja + Confirm send coins Potvrdi slanje novca @@ -3088,6 +3224,10 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Close wallet Zatvorite novčanik + + Are you sure you wish to close the wallet <i>%1</i>? + Jeste li sigurni da želite zatvoriti novčanik <i>%1</i>? + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. Držanje novčanik zatvorenim predugo može rezultirati ponovnom sinkronizacijom cijelog lanca ako je obrezivanje uključeno. @@ -3360,6 +3500,10 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Initialization sanity check failed. %s is shutting down. Brzinska provjera inicijalizacije neuspješna. %s se zatvara. + + Invalid P2P permission: '%s' + Nevaljana dozvola za P2P: '%s' + Invalid amount for -%s=<amount>: '%s' Neispravan iznos za -%s=<amount>: '%s' @@ -3376,6 +3520,14 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Specified blocks directory "%s" does not exist. Zadana mapa blokova "%s" ne postoji. + + Unknown address type '%s' + Nepoznat tip adrese '%s' + + + Unknown change type '%s' + Nepoznat tip adrese za vraćanje ostatka '%s' + Upgrading txindex database Ažurira se txindex baza @@ -3384,6 +3536,10 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Loading P2P addresses... Pokreće se popis P2P adresa... + + Error: Disk space is too low! + Pogreška: Nema dovoljno prostora na disku! + Loading banlist... Pokreće se popis zabrana... @@ -3492,6 +3648,10 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Need to specify a port with -whitebind: '%s' Treba zadati port pomoću -whitebind: '%s' + + Prune mode is incompatible with -blockfilterindex. + Obrezan način rada nije u skladu s parametrom -blockfilterindex. + Reducing -maxconnections from %d to %d, because of system limitations. Smanjuje se -maxconnections sa %d na %d zbog sustavnih ograničenja. @@ -3550,6 +3710,10 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Unable to generate initial keys Ne mogu se generirati početni ključevi + + Unknown -blockfilterindex value %s. + Nepoznata vrijednost parametra -blockfilterindex %s. + Verifying wallet(s)... Provjerava(ju) se novčanik/(ci)... diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts index 3301b39856..b9af4ea976 100644 --- a/src/qt/locale/bitcoin_hu.ts +++ b/src/qt/locale/bitcoin_hu.ts @@ -323,7 +323,7 @@ Proxy is <b>enabled</b>: %1 - Proxy <b>aktív</b>: %1 + Proxy <b>aktív</b>: %1 Send coins to a Bitcoin address @@ -439,7 +439,7 @@ Transactions after this will not yet be visible. - Ez utáni tranzakciók még nem lesznek láthatóak. + Ez utáni tranzakciók még nem lesznek láthatóak. Error @@ -540,7 +540,7 @@ Wallet: %1 - Tárca: %1 + Tárca: %1 Type: %1 @@ -701,7 +701,7 @@ Copy bytes - Byte-ok másolása + Byte-ok másolása Copy dust @@ -762,7 +762,7 @@ The label associated with this address list entry - Ehhez a listaelemhez rendelt címke + Ehhez a listaelemhez rendelt címke The address associated with this address list entry. This can only be modified for sending addresses. @@ -895,7 +895,7 @@ Error: Specified data directory "%1" cannot be created. - Hiba: A megadott "%1" adatkönyvtár nem hozható létre. + Hiba: A megadott "%1" adatkönyvtár nem hozható létre. Error @@ -984,7 +984,7 @@ Opening Wallet <b>%1</b>... - Tárca megnyitása <b>%1</b>... + Tárca megnyitása <b>%1</b>... @@ -1511,7 +1511,7 @@ Error: Specified data directory "%1" does not exist. - Hiba: A megadott "%1" adatkönyvtár nem létezik. + Hiba: A megadott "%1" adatkönyvtár nem létezik. Error: Cannot parse configuration file: %1. @@ -1868,7 +1868,7 @@ Use this form to request payments. All fields are <b>optional</b>. - Használja ezt az űrlapot fizetési kérelmekhez. Minden mező <b>opcionális</b> + Használja ezt az űrlapot fizetési kérelmekhez. Minden mező <b>opcionális</b> An optional amount to request. Leave this empty or zero to not request a specific amount. @@ -2157,7 +2157,7 @@ Copy bytes - Byte-ok másolása + Byte-ok másolása Copy dust @@ -2385,7 +2385,7 @@ Sign the message to prove you own this Bitcoin address - Üzenet + Üzenet Sign &Message @@ -2511,7 +2511,7 @@ From - Küldő: + Küldő: unknown @@ -2844,7 +2844,7 @@ There was an error trying to save the transaction history to %1. - Hiba történt a tranzakciós előzmények %1 helyre való mentésekor. + Hiba történt a tranzakciós előzmények %1 helyre való mentésekor. Exporting Successful @@ -3046,7 +3046,7 @@ Not enough file descriptors available. - Nincs elég fájlleíró. + Nincs elég fájlleíró. Replaying blocks... diff --git a/src/qt/locale/bitcoin_id.ts b/src/qt/locale/bitcoin_id.ts index 1ca62902c8..3106a3dac8 100644 --- a/src/qt/locale/bitcoin_id.ts +++ b/src/qt/locale/bitcoin_id.ts @@ -1088,7 +1088,7 @@ Reverting this setting requires re-downloading the entire blockchain. - Mengembalikan pengaturan ini membutuhkan pengunduhan seluruh blockchain lagi. + Mengembalikan pengaturan ini membutuhkan pengunduhan seluruh blockchain lagi. MiB @@ -1370,7 +1370,7 @@ You are using a BIP70 URL which will be unsupported in the future. - Anda menggunakan URL BIP70 yang akan tidak lagi didukung di masa mendatang. + Anda menggunakan URL BIP70 yang akan tidak lagi didukung di masa mendatang. Payment request fetch URL is invalid: %1 @@ -1632,10 +1632,18 @@ Datadir Datadir + + To specify a non-default location of the data directory use the '%1' option. + Untuk menentukan lokasi direktori data yang tidak standar gunakan opsi '%1'. + Blocksdir Blocksdir + + To specify a non-default location of the blocks directory use the '%1' option. + Untuk menentukan lokasi direktori block non-default, gunakan opsi '%1'. + Startup time Waktu nyala @@ -1674,7 +1682,7 @@ Wallet: - Wallet: + Wallet: (none) @@ -1734,6 +1742,10 @@ + + Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. + Buka file log debug %1 dari direktori data saat ini. Dapat memakan waktu beberapa detik untuk file log besar. + Decrease font size Mengurangi ukuran font @@ -1796,7 +1808,7 @@ &Network Traffic - Kemacetan &Jaringan + Kemacetan &Jaringan Totals @@ -2393,7 +2405,7 @@ bitcoin-core Corrupted block database detected - Menemukan database blok yang rusak + Menemukan database blok yang rusak Do you want to rebuild the block database now? diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index 3f4a3e23e8..935a75cbd3 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -71,7 +71,7 @@ These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Questi sono i tuoi indirizzi Bitcoin per ricevere pagamenti. Usa il tasto "Crea nuovo indirizzo ricevente" nella schermata "Ricevi" per creare nuovi indirizzi. + Questi sono i tuoi indirizzi Bitcoin per ricevere pagamenti. Usa il tasto "Crea nuovo indirizzo ricevente" nella schermata "Ricevi" per creare nuovi indirizzi. &Copy Address @@ -197,11 +197,11 @@ Your wallet is about to be encrypted. - Il tuo portafoglio sta per essere criptato. + Il tuo portafoglio sta per essere criptato. Your wallet is now encrypted. - Il tuo portafoglio è ora criptato. + Il tuo portafoglio è ora criptato. IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -519,7 +519,7 @@ Show the %1 help message to get a list with possible Bitcoin command-line options - Mostra il messaggio di aiuto di %1 per ottenere una lista di opzioni di comando per Bitcoin + Mostra il messaggio di aiuto di %1 per ottenere una lista di opzioni di comando per Bitcoin default wallet @@ -812,7 +812,7 @@ Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. - Cripta il portafoglio. Il portafoglio sarà criptato con una passphrase a tua scelta. + Cripta il portafoglio. Il portafoglio sarà criptato con una passphrase a tua scelta. Encrypt Wallet @@ -828,7 +828,7 @@ Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. - Crea un portafoglio vuoto. I portafogli vuoti non hanno inizialmente nessuna chiave privata o script. Chiavi private e indirizzi possono essere importati, o un HD seed può essere impostato, in seguito. + Crea un portafoglio vuoto. I portafogli vuoti non hanno inizialmente nessuna chiave privata o script. Chiavi private e indirizzi possono essere importati, o un HD seed può essere impostato, in seguito. Make Blank Wallet @@ -956,7 +956,7 @@ Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. - Cambiare questa impostazione richiede di riscaricare l'intera blockchain. E' più veloce scaricare prima tutta la chain e poi fare prune. Disabilita alcune impostazioni avanzate. + Cambiare questa impostazione richiede di riscaricare l'intera blockchain. E' più veloce scaricare prima tutta la chain e poi fare prune. Disabilita alcune impostazioni avanzate. This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. @@ -1136,7 +1136,7 @@ Number of script &verification threads - Numero di thread di &verifica degli script + Numero di thread di &verifica degli script IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) @@ -1563,11 +1563,11 @@ Per specificare più URL separarli con una barra verticale "|". Bad response from server %1 - Risposta errata da parte del server %1 + Risposta errata da parte del server %1 Network request error - Errore di richiesta di rete + Errore di richiesta di rete Payment acknowledged @@ -1716,11 +1716,11 @@ Per specificare più URL separarli con una barra verticale "|". Resulting URI too long, try to reduce the text for label / message. - L'URI risultante è troppo lungo, prova a ridurre il testo nell'etichetta / messaggio. + L'URI risultante è troppo lungo, prova a ridurre il testo nell'etichetta / messaggio. Error encoding URI into QR Code. - Errore nella codifica dell'URI nel codice QR. + Errore nella codifica dell'URI nel codice QR. QR code support not available. @@ -2086,7 +2086,7 @@ Per specificare più URL separarli con una barra verticale "|". &Create new receiving address - Crea nuovo indirizzo ricevente. + Crea nuovo indirizzo ricevente. Clear all fields of the form. @@ -2423,7 +2423,7 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Are you sure you want to send? - Sei sicuro di voler inviare? + Sei sicuro di voler inviare? or @@ -2459,11 +2459,11 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " The recipient address is not valid. Please recheck. - L'indirizzo del destinatario non è valido. Si prega di ricontrollare. + L'indirizzo del destinatario non è valido. Si prega di ricontrollare. The amount to pay must be larger than 0. - L'importo da pagare deve essere maggiore di 0. + L'importo da pagare deve essere maggiore di 0. The amount exceeds your balance. @@ -2471,11 +2471,11 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " The total exceeds your balance when the %1 transaction fee is included. - Il totale è superiore al tuo saldo attuale includendo la commissione di %1. + Il totale è superiore al tuo saldo attuale includendo la commissione di %1. Duplicate address found: addresses should only be used once each. - Rilevato un indirizzo duplicato Ciascun indirizzo dovrebbe essere utilizzato una sola volta. + Rilevato un indirizzo duplicato Ciascun indirizzo dovrebbe essere utilizzato una sola volta. Transaction creation failed! @@ -2487,7 +2487,7 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " A fee higher than %1 is considered an absurdly high fee. - Una commissione maggiore di %1 è considerata irragionevolmente elevata. + Una commissione maggiore di %1 è considerata irragionevolmente elevata. Payment request expired. @@ -3114,7 +3114,7 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Abandon transaction - Abbandona transazione + Abbandona transazione Increase transaction fee @@ -3372,7 +3372,7 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Cannot provide specific connections and have addrman find outgoing connections at the same. - Non è possibile fornire connessioni specifiche e contemporaneamente usare addrman per trovare connessioni uscenti. + Non è possibile fornire connessioni specifiche e contemporaneamente usare addrman per trovare connessioni uscenti. Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index 5284b1842b..06482afa8f 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -2158,7 +2158,7 @@ Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. - 代替料金を利用することで、承認されるまでに数時間または数日 (ないし一生承認されない) トランザクションを送信してしまう可能性があります。手動にて手数料を選択するか、完全なブロックチェーンの検証が終わるまで待つことを検討しましょう + 代替料金を利用することで、承認されるまでに数時間または数日 (ないし一生承認されない) トランザクションを送信してしまう可能性があります。手動にて手数料を選択するか、完全なブロックチェーンの検証が終わるまで待つことを検討しましょう Warning: Fee estimation is currently not possible. diff --git a/src/qt/locale/bitcoin_km.ts b/src/qt/locale/bitcoin_km.ts index 39156c7598..e5976cf8d4 100644 --- a/src/qt/locale/bitcoin_km.ts +++ b/src/qt/locale/bitcoin_km.ts @@ -7,7 +7,7 @@ Create a new address - បង្កើតអាស្រយដ្ឋានថ្មីមួយ + បង្កើតអាស្រយដ្ឋានថ្មីមួយ &New @@ -118,7 +118,7 @@ Decrypt wallet - កាបូប​​ ឌីក្រីព + កាបូប​​ ឌីក្រីព Change passphrase diff --git a/src/qt/locale/bitcoin_ko.ts b/src/qt/locale/bitcoin_ko.ts index 34697d4c0f..46bb9c6cc7 100644 --- a/src/qt/locale/bitcoin_ko.ts +++ b/src/qt/locale/bitcoin_ko.ts @@ -682,7 +682,7 @@ Unlock unspent - 사용되지 않은 주소를 잠금 해제합니다. + 사용되지 않은 주소를 잠금 해제합니다. Copy quantity @@ -759,7 +759,7 @@ The label associated with this address list entry - 현재 선택된 주소 필드의 제목입니다. + 현재 선택된 주소 필드의 제목입니다. The address associated with this address list entry. This can only be modified for sending addresses. @@ -814,7 +814,7 @@ Directory already exists. Add %1 if you intend to create a new directory here. - 폴더가 이미 존재합니다. 새로운 폴더 생성을 원한다면 %1 명령어를 추가하세요. + 폴더가 이미 존재합니다. 새로운 폴더 생성을 원한다면 %1 명령어를 추가하세요. Path already exists, and is not a directory. @@ -856,7 +856,7 @@ As this is the first time the program is launched, you can choose where %1 will store its data. - 프로그램이 처음으로 실행되고 있습니다. %1가 어디에 데이터를 저장할지 선택할 수 있습니다. + 프로그램이 처음으로 실행되고 있습니다. %1가 어디에 데이터를 저장할지 선택할 수 있습니다. When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. @@ -1080,7 +1080,7 @@ Prune &block storage to - 블록 데이터를 지정된 크기로 축소합니다: + 블록 데이터를 지정된 크기로 축소합니다: GB @@ -1268,7 +1268,7 @@ This change would require a client restart. - 이 변경 사항 적용을 위해 프로그램 재시작이 필요합니다. + 이 변경 사항 적용을 위해 프로그램 재시작이 필요합니다. The supplied proxy address is invalid. @@ -1957,7 +1957,7 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. - 요청할 금액 입력칸으로 선택 사항입니다. 빈 칸으로 두거나 특정 금액이 필요하지 않는 경우 0을 입력하세요. + 요청할 금액 입력칸으로 선택 사항입니다. 빈 칸으로 두거나 특정 금액이 필요하지 않는 경우 0을 입력하세요. Clear all fields of the form. @@ -2768,7 +2768,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - 신규 채굴된 코인이 사용되기 위해서는 %1 개의 블록이 경과되어야 합니다. 블록을 생성할 때 블록체인에 추가되도록 네트워크에 전파되는 과정을 거치는데, 블록체인에 포함되지 못하고 실패한다면 해당 블록의 상태는 '미승인'으로 표현되고 비트코인 또한 사용될 수 없습니다. 이 현상은 다른 노드가 비슷한 시간대에 동시에 블록을 생성할 때 종종 발생할 수 있습니다. + 신규 채굴된 코인이 사용되기 위해서는 %1 개의 블록이 경과되어야 합니다. 블록을 생성할 때 블록체인에 추가되도록 네트워크에 전파되는 과정을 거치는데, 블록체인에 포함되지 못하고 실패한다면 해당 블록의 상태는 '미승인'으로 표현되고 비트코인 또한 사용될 수 없습니다. 이 현상은 다른 노드가 비슷한 시간대에 동시에 블록을 생성할 때 종종 발생할 수 있습니다. Debug information @@ -3168,7 +3168,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p There was an error trying to save the wallet data to %1. - 지갑 데이터를 %1 폴더에 저장하는 동안 오류가 발생했습니다. + 지갑 데이터를 %1 폴더에 저장하는 동안 오류가 발생했습니다. Backup Successful @@ -3263,7 +3263,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - 경고 : 모든 네트워크가 동의해야 하나, 일부 채굴자들에게 문제가 있는 것으로 보입니다. + 경고 : 모든 네트워크가 동의해야 하나, 일부 채굴자들에게 문제가 있는 것으로 보입니다. Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. @@ -3387,7 +3387,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Not enough file descriptors available. - 파일 디스크립터가 부족합니다. + 파일 디스크립터가 부족합니다. Prune cannot be configured with a negative value. @@ -3577,7 +3577,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. - 경고 : 지갑파일이 손상되어 데이터가 복구되었습니다. 원래의 %s 파일은 %s 후에 %s 이름으로 저장됩니다. 잔액과 거래 내역이 정확하지 않다면 백업 파일로 부터 복원해야 합니다. + 경고 : 지갑파일이 손상되어 데이터가 복구되었습니다. 원래의 %s 파일은 %s 후에 %s 이름으로 저장됩니다. 잔액과 거래 내역이 정확하지 않다면 백업 파일로 부터 복원해야 합니다. %s is set very high! diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts index 26150cbc7c..d142edff5a 100644 --- a/src/qt/locale/bitcoin_lt.ts +++ b/src/qt/locale/bitcoin_lt.ts @@ -67,7 +67,7 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Tai yra jūsų Bitcoin adresai išeinantiems mokėjimams. Visada pasitikrinkite sumą ir gavėjo adresą prieš siunčiant lėšas. + Tai yra jūsų Bitcoin adresai išeinantiems mokėjimams. Visada pasitikrinkite sumą ir gavėjo adresą prieš siunčiant lėšas. &Copy Address @@ -165,7 +165,7 @@ Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Dėmesio: jei užšifruosite savo piniginę ir pamesite slaptafrazę, jūs<b>PRARASITE VISUS SAVO BITCOINUS</b>! + Dėmesio: jei užšifruosite savo piniginę ir pamesite slaptafrazę, jūs<b>PRARASITE VISUS SAVO BITCOINUS</b>! Are you sure you wish to encrypt your wallet? @@ -177,7 +177,7 @@ IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - SVARBU: Betkokios ankstesnės jūsų piniginės atsarginės kopijos turėtų būti pakeistos naujai sugeneruotu, užšifruotu piniginės failu. Dėl saugumo sumetimų, anstesnės neužšifruotos piniginės kopijos failas taps nenaudingu nuo momento, kai nauja ir užšifruota piniginė bus pradėta naudoti. + SVARBU: Betkokios ankstesnės jūsų piniginės atsarginės kopijos turėtų būti pakeistos naujai sugeneruotu, užšifruotu piniginės failu. Dėl saugumo sumetimų, anstesnės neužšifruotos piniginės kopijos failas taps nenaudingu nuo momento, kai nauja ir užšifruota piniginė bus pradėta naudoti. Wallet encryption failed @@ -371,7 +371,7 @@ Sign messages with your Bitcoin addresses to prove you own them - Pasirašydami žinutes su savo Bitcoin adresais įrodysite jog esate jų savininkas + Pasirašydami žinutes su savo Bitcoin adresais įrodysite jog esate jų savininkas Verify messages to ensure they were signed with specified Bitcoin addresses @@ -439,7 +439,7 @@ Transactions after this will not yet be visible. - Sekančios operacijos dar nebus matomos. + Sekančios operacijos dar nebus matomos. Error diff --git a/src/qt/locale/bitcoin_mr_IN.ts b/src/qt/locale/bitcoin_mr_IN.ts index 9dc3dd19c8..b00ef57759 100644 --- a/src/qt/locale/bitcoin_mr_IN.ts +++ b/src/qt/locale/bitcoin_mr_IN.ts @@ -47,7 +47,7 @@ Choose the address to receive coins with - ज्या पत्त्यावर नाणी प्राप्त करायची आहेत तो + ज्या पत्त्यावर नाणी प्राप्त करायची आहेत तो C&hoose @@ -194,10 +194,6 @@ WalletView - - &Export - & - Export the data in the current tab to a file सध्याच्या टॅबमधील डेटा एका फाईलमध्ये एक्स्पोर्ट करा diff --git a/src/qt/locale/bitcoin_ms.ts b/src/qt/locale/bitcoin_ms.ts index ada2bfbde6..f6224aa4ee 100644 --- a/src/qt/locale/bitcoin_ms.ts +++ b/src/qt/locale/bitcoin_ms.ts @@ -245,7 +245,7 @@ Alihkan fail data ke dalam tab semasa Browse transaction history - Menyemak imbas sejarah transaksi + Menyemak imbas sejarah transaksi E&xit @@ -361,7 +361,7 @@ Alihkan fail data ke dalam tab semasa Encrypt the private keys that belong to your wallet - sulitkan kata laluan milik peribadi anda + sulitkan kata laluan milik peribadi anda Sign messages with your Bitcoin addresses to prove you own them diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/bitcoin_nb.ts index a7d0cbbdb2..bed94f127f 100644 --- a/src/qt/locale/bitcoin_nb.ts +++ b/src/qt/locale/bitcoin_nb.ts @@ -833,7 +833,7 @@ (%1-bit) - (%1-bit) + (%1-bit) About %1 @@ -864,11 +864,11 @@ This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. - Den initielle synkroniseringen er svært krevende, og kan forårsake problemer med maskinvaren i datamaskinen din som du tidligere ikke merket. Hver gang du kjører %1 vil den fortsette nedlastingen der den sluttet. + Den initielle synkroniseringen er svært krevende, og kan forårsake problemer med maskinvaren i datamaskinen din som du tidligere ikke merket. Hver gang du kjører %1 vil den fortsette nedlastingen der den sluttet. If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. - Hvis du har valgt å begrense blokkjedelagring (beskjæring), må historiske data fortsatt lastes ned og behandles, men de vil bli slettet etterpå for å holde bruken av lagringsplass lav. + Hvis du har valgt å begrense blokkjedelagring (beskjæring), må historiske data fortsatt lastes ned og behandles, men de vil bli slettet etterpå for å holde bruken av lagringsplass lav. Use the default data directory @@ -2150,7 +2150,7 @@ With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk. - Med Replace-By-Fee (BIP-125) kan du øke transaksjonens gebyr etter at den er sendt. Uten dette aktivert anbefales et høyere gebyr for å kompensere for risikoen for at transaksjonen blir forsinket. + Med Replace-By-Fee (BIP-125) kan du øke transaksjonens gebyr etter at den er sendt. Uten dette aktivert anbefales et høyere gebyr for å kompensere for risikoen for at transaksjonen blir forsinket. Clear &All @@ -3139,7 +3139,7 @@ Cannot provide specific connections and have addrman find outgoing connections at the same. - Kan ikke angi spesifikke tilkoblinger og ha addrman til å finne utgående tilkoblinger samtidig. + Kan ikke angi spesifikke tilkoblinger og ha addrman til å finne utgående tilkoblinger samtidig. Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. diff --git a/src/qt/locale/bitcoin_ne.ts b/src/qt/locale/bitcoin_ne.ts index f50d3069da..a1fbd4f82f 100644 --- a/src/qt/locale/bitcoin_ne.ts +++ b/src/qt/locale/bitcoin_ne.ts @@ -31,7 +31,7 @@ Export the data in the current tab to a file - वर्तमान ट्याबको डाटालाई फाइलमा निर्यात गर्नुहोस् + वर्तमान ट्याबको डाटालाई फाइलमा निर्यात गर्नुहोस् &Export diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index de4b719398..a13dd82156 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -179,6 +179,14 @@ Wallet encrypted Portemonnee versleuteld + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Voer de neuwe wachtwoordzin in voor de portemonnee.<br/>Gebruik a.u.b. een wachtwoordzin van <b>tien of meer willekeurige karakters</b>, of <b>acht of meer woorden</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Voer de oude wachtwoordzin en de nieuwe wachtwoordzin in voor de portemonnee. + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. Onthoud dat het versleutelen van uw portemonnee uw bitcoins niet volledig kan beschermen tegen diefstal, bijvoorbeeld door malware die uw computer infecteert. @@ -319,11 +327,11 @@ Create Wallet... - Wallet creëren + Wallet creëren Create a new wallet - Nieuwe wallet creëren + Nieuwe wallet creëren Wallet: @@ -796,7 +804,7 @@ CreateWalletDialog Create Wallet - Creëer wallet + Creëer wallet Wallet Name @@ -814,9 +822,13 @@ Disable Private Keys Schakel privésleutels uit + + Make Blank Wallet + Maak een lege portemonnee + Create - Creëer + Creëer @@ -986,7 +998,11 @@ (of %n GB needed) (van %n GB nodig)(van %n GB nodig) - + + (%n GB needed for full chain) + (%n GB nodig voor volledige keten)(%n GB nodig voor volledige keten) + + ModalOverlay @@ -1132,7 +1148,7 @@ Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URL's van derden (bijvoorbeeld blokexplorer) die in de transacties tab verschijnen als contextmenuelementen. %s in de URL is vervangen door transactiehash. Verscheidene URL's zijn gescheiden door een verticale streep |. + URL's van derden (bijvoorbeeld blokexplorer) die in de transacties tab verschijnen als contextmenuelementen. %s in de URL is vervangen door transactiehash. Verscheidene URL's zijn gescheiden door een verticale streep |. Open the %1 configuration file from the working directory. @@ -2043,6 +2059,10 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. Een optioneel te verzoeken bedrag. Laat dit leeg, of nul, om geen specifiek bedrag aan te vragen. + + &Create new receiving address + &Creëer een nieuw ontvangstadres + Clear all fields of the form. Wis alle velden op het formulier. @@ -2366,7 +2386,7 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 from wallet '%1' - van portemonnee '%1' + van portemonnee '%1' %1 to '%2' @@ -3179,7 +3199,7 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. - De portemonee te lang gesloten houden kan leiden tot het moeten hersynchroniseren van de hele keten als snoeien aktief is. + De portemonee te lang gesloten houden kan leiden tot het moeten hersynchroniseren van de hele keten als snoeien aktief is. @@ -3311,7 +3331,7 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Can't generate a change-address key. No keys in the internal keypool and can't generate any keys. - Kan geen rest-adres sleutel genereren. Er zijn geen sleutels in de interne sleutelverzameling en ik kan geen sleutels genereren. + Kan geen rest-adres sleutel genereren. Er zijn geen sleutels in de interne sleutelverzameling en ik kan geen sleutels genereren. Cannot obtain a lock on data directory %s. %s is probably already running. @@ -3567,7 +3587,7 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Error reading from database, shutting down. - Fout bij het lezen van de database, afsluiten. + Fout bij het lezen van de database, afsluiten. Error upgrading chainstate database @@ -3649,12 +3669,16 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Unable to create the PID file '%s': %s - Kan de PID file niet creëren. '%s': %s + Kan de PID file niet creëren. '%s': %s Unable to generate initial keys Niet mogelijk initiële sleutels te genereren + + Unknown -blockfilterindex value %s. + Onbekende -blokfilterindexwaarde %s. + Verifying wallet(s)... Portomenee(n) aan het verifiëren... diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts index 8fdccce4ef..37ef483934 100644 --- a/src/qt/locale/bitcoin_pl.ts +++ b/src/qt/locale/bitcoin_pl.ts @@ -952,7 +952,7 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. - Gdy naciśniesz OK, %1 zacznie się pobieranie i przetwarzanie całego %4 łańcucha bloków (%2GB) zaczynając od najwcześniejszych transakcji w %3 gdy %4 został uruchomiony. + Gdy naciśniesz OK, %1 zacznie się pobieranie i przetwarzanie całego %4 łańcucha bloków (%2GB) zaczynając od najwcześniejszych transakcji w %3 gdy %4 został uruchomiony. Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. @@ -1031,7 +1031,7 @@ Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Próba wydania bitcoinów które nie są jeszcze wyświetlone jako transakcja zostanie odrzucona przez sieć. + Próba wydania bitcoinów które nie są jeszcze wyświetlone jako transakcja zostanie odrzucona przez sieć. Number of blocks left @@ -1256,7 +1256,7 @@ Proxy &IP: - &IP proxy: + &IP proxy: &Port: @@ -1419,7 +1419,7 @@ Immature: - Niedojrzały: + Niedojrzały: Mined balance that has not yet matured @@ -1439,7 +1439,7 @@ Your current balance in watch-only addresses - Twoje obecne saldo na podglądanym adresie + Twoje obecne saldo na podglądanym adresie Spendable: @@ -1490,7 +1490,7 @@ Cannot process payment request because BIP70 support was not compiled in. - Nie mogę obsłużyć żądania zapłaty ponieważ wsparcie dla BIP70 nie zostało skompilowane. + Nie mogę obsłużyć żądania zapłaty ponieważ wsparcie dla BIP70 nie zostało skompilowane. Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. @@ -1758,7 +1758,7 @@ Using BerkeleyDB version - Używana wersja BerkeleyDB + Używana wersja BerkeleyDB Datadir @@ -2270,7 +2270,7 @@ If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Kiedy ta opcja jest wybrana, to jeżeli adres reszty jest pusty lub nieprawidłowy, to reszta będzie wysyłana na nowo wygenerowany adres, + Kiedy ta opcja jest wybrana, to jeżeli adres reszty jest pusty lub nieprawidłowy, to reszta będzie wysyłana na nowo wygenerowany adres, Custom change address @@ -2692,7 +2692,7 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! Wpisz adres, wiadomość oraz sygnaturę (podpis) odbiorcy (upewnij się, że dokładnie skopiujesz wszystkie zakończenia linii, spacje, tabulacje itp.). Uważaj by nie dodać więcej do podpisu niż do samej podpisywanej wiadomości by uniknąć ataku man-in-the-middle. -Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadawca posiada klucz do adresu, natomiast nie potwierdza to, że poprawne wysłanie jakiejkolwiek transakcji! +Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadawca posiada klucz do adresu, natomiast nie potwierdza to, że poprawne wysłanie jakiejkolwiek transakcji! The Bitcoin address the message was signed with @@ -3550,7 +3550,7 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw Not enough file descriptors available. - Brak wystarczającej liczby deskryptorów plików. + Brak wystarczającej liczby deskryptorów plików. Prune cannot be configured with a negative value. @@ -3696,7 +3696,7 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw Transaction amount too small - Zbyt niska kwota transakcji + Zbyt niska kwota transakcji Transaction too large @@ -3772,7 +3772,7 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw This is the transaction fee you will pay if you send a transaction. - To jest opłata transakcyjna którą zapłacisz jeśli wyślesz transakcję. + To jest opłata transakcyjna którą zapłacisz jeśli wyślesz transakcję. Transaction amounts must not be negative diff --git a/src/qt/locale/bitcoin_pt.ts b/src/qt/locale/bitcoin_pt.ts index 3dceb77124..424038dc46 100644 --- a/src/qt/locale/bitcoin_pt.ts +++ b/src/qt/locale/bitcoin_pt.ts @@ -864,7 +864,7 @@ This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. - Esta sincronização inicial é muito exigente, e pode expor problemas com o seu computador que previamente podem ter passado despercebidos. Cada vez que corre %1, este vai continuar a descarregar de onde deixou. + Esta sincronização inicial é muito exigente, e pode expor problemas com o seu computador que previamente podem ter passado despercebidos. Cada vez que corre %1, este vai continuar a descarregar de onde deixou. If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. @@ -884,11 +884,11 @@ At least %1 GB of data will be stored in this directory, and it will grow over time. - No mínimo %1 GB de dados irão ser armazenados nesta pasta. + No mínimo %1 GB de dados irão ser armazenados nesta pasta. Approximately %1 GB of data will be stored in this directory. - Aproximadamente %1 GB de dados irão ser guardados nesta pasta. + Aproximadamente %1 GB de dados irão ser guardados nesta pasta. %1 will download and store a copy of the Bitcoin block chain. @@ -1032,7 +1032,7 @@ Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. - Mostra se o padrão fornecido SOCKS5 proxy, está a ser utilizado para alcançar utilizadores participantes através deste tipo de rede. + Mostra se o padrão fornecido SOCKS5 proxy, está a ser utilizado para alcançar utilizadores participantes através deste tipo de rede. Use separate SOCKS&5 proxy to reach peers via Tor hidden services: @@ -1105,7 +1105,7 @@ Expert - Técnicos + Técnicos Enable coin &control features @@ -1257,7 +1257,7 @@ The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file. - O ficheiro de configuração é usado para especificar opções de utilizador avançado, que sobrescrevem as configurações do interface gráfico. Adicionalmente, qualquer opção da linha de comandos vai sobrescrever este ficheiro de configuração. + O ficheiro de configuração é usado para especificar opções de utilizador avançado, que sobrescrevem as configurações do interface gráfico. Adicionalmente, qualquer opção da linha de comandos vai sobrescrever este ficheiro de configuração. Error @@ -1273,7 +1273,7 @@ The supplied proxy address is invalid. - O endereço de proxy introduzido é inválido. + O endereço de proxy introduzido é inválido. @@ -2076,7 +2076,7 @@ Message - Mensagem + Mensagem (no label) @@ -3261,7 +3261,7 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain - Não é possível rebobinar a base de dados para um estado antes da divisão da cadeia de blocos. Necessita descarregar novamente a cadeia de blocos + Não é possível rebobinar a base de dados para um estado antes da divisão da cadeia de blocos. Necessita descarregar novamente a cadeia de blocos Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index 8974c4148c..ca16bcfe22 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -3,7 +3,7 @@ AddressBookPage Right-click to edit address or label - Clique com o botão direito para editar o endereço ou rótulo + Clique com o botão direito para editar o endereço ou rótulo Create a new address @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Estes são os seus endereços para enviar pagamentos. Sempre cheque a quantia e o endereço do destinatário antes de enviar moedas. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Esses são seus endereços de Bitcoin para receber pagamentos. Utilize o botão Criar novo endereço de recebimento na aba receber para criar um novo endereço + &Copy Address &Copiar endereço @@ -131,6 +135,10 @@ Repeat new passphrase Repita a nova frase de segurança + + Show passphrase + Exibir senha + Encrypt wallet Criptografar carteira @@ -171,10 +179,30 @@ Wallet encrypted Carteira criptografada + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Digite a nova senha para a carteira.<br/>Use uma senha de <b>10 ou mais caracteres randômicos</b>, ou <b>8 ou mais palavras</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Digite a senha antiga e a nova senha para a carteira + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. Lembre-se que sua carteira criptografada não poderá proteger totalmente os seus bitcoins de serem roubados por softwares maldosos que infectem seu computador. + + Wallet to be encrypted + Carteira para ser criptografada + + + Your wallet is about to be encrypted. + Sua carteira está prestes a ser encriptada. + + + Your wallet is now encrypted. + Sua carteira agora está criptografada. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. IMPORTANTE: Qualquer backup prévio que você tenha feito da sua carteira deve ser substituído pelo novo e encriptado arquivo gerado. Por razões de segurança, qualquer backup do arquivo não criptografado se tornará inútil assim que você começar a usar uma nova carteira criptografada. @@ -297,6 +325,14 @@ Open &URI... Abrir &URI... + + Create Wallet... + Criar Carteira... + + + Create a new wallet + Criar uma nova carteira + Wallet: Carteira: @@ -525,6 +561,10 @@ Error: %1 Erro: %1 + + Warning: %1 + Alerta: %1 + Date: %1 @@ -650,7 +690,7 @@ Received with address - Endereço + Endereço Date @@ -747,10 +787,58 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + Criando Carteira <b>%1</b>... + + + Create wallet failed + Criar carteira falhou + + + Create wallet warning + Criar carteira alerta + + CreateWalletDialog - + + Create Wallet + Criar Carteira + + + Wallet Name + Nome da Carteira + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Criptografar a carteira. A carteira será criptografada com uma senha de sua escolha. + + + Encrypt Wallet + Criptografar Carteira + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Desabilitar chaves privadas para esta carteira. Carteiras com chaves privadas desabilitadas não terão chaves privadas e não podem receber importação de palavras "seed" HD ou importação de chaves privadas. Isso é ideal para carteiras apenas de consulta. + + + Disable Private Keys + Desabilitar Chaves Privadas + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Criar uma carteira vazia. Carteiras vazias não possuem inicialmente chaves privadas ou scripts. Chaves privadas ou endereços podem ser importados, ou um conjunto de palavras "seed HD" pode ser definidos, posteriormente. + + + Make Blank Wallet + Criar Carteira Vazia + + + Create + Criar + + EditAddressDialog @@ -866,6 +954,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Quando você clica OK, %1 vai começar a baixar e processar todos os %4 da block chain (%2GB) começando com a mais recente transação em %3 quando %4 inicialmente foi lançado. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Reverter essa configuração requer o re-download de todo o blockchain. É mais rápido fazer o download de todo o blockchain primeiro e depois fazer prune. Essa opção desabilita algumas funcionalidades avançadas. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Esta sincronização inicial é muito exigente e pode expor problemas de hardware com o computador que passaram despercebidos anteriormente. Cada vez que você executar o %1, irá continuar baixando de onde parou. @@ -886,6 +978,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Descartar os blocos após verificação, exceto os mais recentes %1 GB (prune) + At least %1 GB of data will be stored in this directory, and it will grow over time. No mínimo %1 GB de dados serão armazenados neste diretório, e isso irá crescer com o tempo. @@ -918,7 +1014,11 @@ (of %n GB needed) (de %n GB necessário)(de %n GB necessário) - + + (%n GB needed for full chain) + (%n GB necessário para o blockchain completo)(%n GB necessário para o blockchain completo) + + ModalOverlay @@ -995,6 +1095,14 @@ OpenWalletActivity + + Open wallet failed + Abrir carteira falhou + + + Open wallet warning + Abrir carteira alerta + default wallet carteira padrão @@ -1040,7 +1148,7 @@ Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - Use um proxy SOCKS&5 separado para alcançar participantes via serviços ocultos Tor: + Use um proxy SOCKS&5 separado para alcançar participantes via serviços ocultos Tor: Hide the icon from the system tray. @@ -1335,7 +1443,7 @@ Spendable: - Disponível: + Disponível: Recent transactions @@ -1384,6 +1492,14 @@ Cannot process payment request because BIP70 support was not compiled in. O pagamento não pode ser processado porque o suporte ao BIP70 foi desativado. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Devido a falha de segurança divulgada no BIP70 é fortemente recomendado que qualquer instrução para comerciantes para mudar de carteira seja ignorado + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Se você está recebendo este erro você deve requisitar ao comerciante oferecer uma URI compatível com o BIP21. + Invalid payment address %1 Endereço de pagamento %1 inválido @@ -1605,6 +1721,10 @@ Error encoding URI into QR Code. Erro ao codificar o URI em código QR + + QR code support not available. + Suporte a QR code não disponível + Save QR Code Salvar código QR @@ -1774,7 +1894,7 @@ Connection Time - Tempo de conexão + Tempo de conexão Last Send @@ -1963,6 +2083,10 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. Uma quantia opcional para cobrar. Deixe vazio ou zero para não cobrar uma quantia específica. + + &Create new receiving address + &Criar novo endereço de recebimento + Clear all fields of the form. Limpa todos os campos do formulário. @@ -2154,7 +2278,7 @@ Transaction Fee: - Taxa de transação: + Taxa de transação: Choose... @@ -2284,6 +2408,14 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por %1 (%2 blocks) %1 (%2 blocos) + + from wallet '%1' + da carteira '%1' + + + %1 to '%2' + %1 para '%2' + %1 to %2 %1 a %2 @@ -2316,6 +2448,10 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Total Amount Valor total + + To review recipient list click "Show Details..." + Para revisar a lista de destinatários click "Exibir Detalhes..." + Confirm send coins Confirme o envio de moedas @@ -3069,7 +3205,7 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Range: - Intervalo: + Intervalo: to @@ -3089,6 +3225,10 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Close wallet Fechar carteira + + Are you sure you wish to close the wallet <i>%1</i>? + Tem certeza que deseja fechar a carteira <i>%1</i>? + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. Manter a carteira fechada por muito tempo pode resultar na necessidade de ressincronizar a block chain se prune está ativado. @@ -3231,7 +3371,7 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Cannot provide specific connections and have addrman find outgoing connections at the same. - Não é possível fornecer conexões específicas e ter addrman procurando conexões ao mesmo tempo. + Não é possível fornecer conexões específicas e ter addrman procurando conexões ao mesmo tempo. Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. @@ -3361,6 +3501,10 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Initialization sanity check failed. %s is shutting down. O teste de integridade de inicialização falhou. O %s está sendo desligado. + + Invalid P2P permission: '%s' + Permissão P2P inválida: '%s' + Invalid amount for -%s=<amount>: '%s' Quantidade inválida para -%s=<amount>: '%s' @@ -3382,6 +3526,10 @@ Diretório de blocos especificados "%s" não existe. Unknown address type '%s' Tipo de endereço desconhecido '%s' + + Unknown change type '%s' + Tipo de troco desconhecido '%s' + Upgrading txindex database Atualizando banco de dados txindex @@ -3390,6 +3538,10 @@ Diretório de blocos especificados "%s" não existe. Loading P2P addresses... Carregando endereços P2P... + + Error: Disk space is too low! + Erro: Espaço em disco está baixo! + Loading banlist... Carregando lista de banidos... @@ -3498,6 +3650,10 @@ Diretório de blocos especificados "%s" não existe. Need to specify a port with -whitebind: '%s' Necessário informar uma porta com -whitebind: '%s' + + Prune mode is incompatible with -blockfilterindex. + Modo prune é incompatível com o parâmetro -blockfilterindex. + Reducing -maxconnections from %d to %d, because of system limitations. Reduzindo -maxconnections de %d para %d, devido a limitações do sistema. @@ -3556,6 +3712,10 @@ Diretório de blocos especificados "%s" não existe. Unable to generate initial keys Não foi possível gerar as chaves iniciais + + Unknown -blockfilterindex value %s. + Valor do parâmetro -blockfilterindex desconhecido %s. + Verifying wallet(s)... Verificando carteira(s)... @@ -3578,7 +3738,7 @@ Diretório de blocos especificados "%s" não existe. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Esse produto inclui um software desenvolvido pelo OpenSSL Project para uso na OpenSSL Toolkit %s e software criptográfico escrito por Eric Young e software UPnP escrito por Thomas Bernard. + Esse produto inclui um software desenvolvido pelo OpenSSL Project para uso na OpenSSL Toolkit %s e software criptográfico escrito por Eric Young e software UPnP escrito por Thomas Bernard. Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. diff --git a/src/qt/locale/bitcoin_ro.ts b/src/qt/locale/bitcoin_ro.ts index 74f9504fba..c1e27e0d9e 100644 --- a/src/qt/locale/bitcoin_ro.ts +++ b/src/qt/locale/bitcoin_ro.ts @@ -1032,7 +1032,7 @@ Prune &block storage to - Reductie &block storage la + Reductie &block storage la GB @@ -1040,7 +1040,7 @@ Reverting this setting requires re-downloading the entire blockchain. - Inversarea acestei setari necesita re-descarcarea intregului blockchain. + Inversarea acestei setari necesita re-descarcarea intregului blockchain. (0 = auto, <0 = leave that many cores free) @@ -1200,7 +1200,7 @@ The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file. - Fisierul de configurare e folosit pentru a specifica optiuni utilizator avansate care modifica setarile din GUI. In plus orice optiune din linia de comanda va modifica acest fisier de configurare. + Fisierul de configurare e folosit pentru a specifica optiuni utilizator avansate care modifica setarile din GUI. In plus orice optiune din linia de comanda va modifica acest fisier de configurare. Error @@ -2262,7 +2262,7 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o A fee higher than %1 is considered an absurdly high fee. - O taxă mai mare de %1 este considerată o taxă absurd de mare + O taxă mai mare de %1 este considerată o taxă absurd de mare Payment request expired. @@ -2534,7 +2534,7 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o Message verified. - Mesaj verificat. + Mesaj verificat. @@ -3451,11 +3451,11 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Acest produs include software dezvoltat de OpenSSL Project pentru a fi folosit in Toolkitul OpenSSL %s, software criptografic scris de Eric Young si software UPnP scris de Thomas Bernard. + Acest produs include software dezvoltat de OpenSSL Project pentru a fi folosit in Toolkitul OpenSSL %s, software criptografic scris de Eric Young si software UPnP scris de Thomas Bernard. Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. - Lungimea totala a sirului versiunii retelei (%i) depaseste lungimea maxima (%i). Reduceti numarul sa dimensiunea uacomments. + Lungimea totala a sirului versiunii retelei (%i) depaseste lungimea maxima (%i). Reduceti numarul sa dimensiunea uacomments. Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index 4bd02d9f3d..7dfd35dc0b 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -1005,7 +1005,7 @@ Opening Wallet <b>%1</b>... - Кошелек открывается <b>%1</b>... + Кошелек открывается <b>%1</b>... @@ -1989,7 +1989,7 @@ Generate native segwit (Bech32) address - Создать "родной" segwit (Bech32) адрес + Создать "родной" segwit (Bech32) адрес Requested payments history @@ -3447,7 +3447,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Transaction fee and change calculation failed - Не удалось рассчитать комиссию и сдачу для транзакции + Не удалось рассчитать комиссию и сдачу для транзакции Unable to bind to %s on this computer. %s is probably already running. @@ -3645,7 +3645,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p This is the transaction fee you will pay if you send a transaction. - Это размер комиссии, которую вы заплатите при отправке транзакции + Это размер комиссии, которую вы заплатите при отправке транзакции Transaction amounts must not be negative diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts index 2bca9716d2..ffba4caaca 100644 --- a/src/qt/locale/bitcoin_sk.ts +++ b/src/qt/locale/bitcoin_sk.ts @@ -1064,7 +1064,7 @@ Open Configuration File - Otvoriť konfiguračný súbor + Otvoriť konfiguračný súbor Reset all client options to default. @@ -1438,7 +1438,7 @@ Error communicating with %1: %2 - Chyba komunikácie s %1: %2 + Chyba komunikácie s %1: %2 Payment request cannot be parsed! @@ -1544,7 +1544,7 @@ %1 and %2 - %1 a %2 + %1 a %2 %n year(s) @@ -3096,7 +3096,7 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. - Zatvorenie peňaženky na príliš dlhú dobu môže mať za následok potrebu znova synchronizovať celý blockchain v prípade, že je aktivované redukovanie blockchainu. + Zatvorenie peňaženky na príliš dlhú dobu môže mať za následok potrebu znova synchronizovať celý blockchain v prípade, že je aktivované redukovanie blockchainu. diff --git a/src/qt/locale/bitcoin_sl.ts b/src/qt/locale/bitcoin_sl.ts index 82d16acb91..29fd6ada06 100644 --- a/src/qt/locale/bitcoin_sl.ts +++ b/src/qt/locale/bitcoin_sl.ts @@ -169,7 +169,7 @@ Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Opozorilo: V primeru izgube gesla šifrirane denarnice, boste <b>IZGUBILI VSE SVOJE BITCOINE</b>! + Opozorilo: V primeru izgube gesla šifrirane denarnice boste <b>IZGUBILI VSE SVOJE BITCOINE</b>! Are you sure you wish to encrypt your wallet? @@ -187,6 +187,10 @@ Enter the old passphrase and new passphrase for the wallet. Vnesite staro geslo in novo geslo za denarnico. + + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Pomnite, da šifriranje denarnice ne more preprečiti kraje bitcoinov preko morebitnih virusov na vašem računalniku. + Wallet to be encrypted Denarnica, ki bo zašifrirana @@ -201,7 +205,7 @@ IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - POMEMBNO: Vse starejše varnostne kopije denarnice je potrebno zamenjati z novoizdelano, šifrirano, varnostno kopijo. Zaradi varnosti bodo stare varnostne kopije postale neuporabne takoj, ko začnete uporabljati novo, šifrirano denarnico. + POMEMBNO: Vse starejše varnostne kopije denarnice je potrebno zamenjati z novo, šifrirano datoteko denarnice. Zaradi varnosti bodo stare varnostne kopije postale neuporabne takoj, ko začnete uporabljati novo, šifrirano denarnico. Wallet encryption failed @@ -217,7 +221,7 @@ Wallet unlock failed - Denarnice ni bilo mogoče odkleniti. + Denarnice ni bilo mogoče odkleniti The passphrase entered for the wallet decryption was incorrect. @@ -225,7 +229,7 @@ Wallet decryption failed - Dešifriranje denarnice ni uspelo + Dešifriranje denarnice neuspešno Wallet passphrase was successfully changed. @@ -244,7 +248,7 @@ Banned Until - Prepoved do + Blokiran do @@ -283,7 +287,7 @@ &About %1 - &O nas%1 + &O %1 Show information about %1 @@ -355,7 +359,7 @@ Proxy is <b>enabled</b>: %1 - Namestniški strežnik je omogočen</b>: %1 + Namestniški strežnik je <b>omogočen</b>: %1 Send coins to a Bitcoin address @@ -427,7 +431,7 @@ Request payments (generates QR codes and bitcoin: URIs) - Zahtevajte plačilo (ustvarite zahtevek s kodo QR in URI tipa bitcoin:) + Zahtevajte plačilo (ustvarite zahtevek s kodo QR in URI tipa bitcoin) Show the list of used sending addresses and labels @@ -439,11 +443,11 @@ Open a bitcoin: URI or payment request - Izvedite plačilo iz zahtevka v datoteki ali iz URI tipa bitcoin: + Izvedite plačilo iz zahtevka v datoteki ali iz URI tipa bitcoin &Command-line options - Opcije &ukazne vrstice + Možnosti &ukazne vrstice %n active connection(s) to Bitcoin network @@ -463,7 +467,7 @@ %1 behind - imam še %1 zaostanka + %1 zaostanka Last received block was generated %1 ago. @@ -791,7 +795,11 @@ Create wallet failed Ustvarjanje denarnice neuspešno - + + Create wallet warning + Opozorilo za ustvarjanje denarnice + + CreateWalletDialog @@ -810,6 +818,10 @@ Encrypt Wallet Šifriraj denarnico + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Onemogoči zasebne ključe za to denarnico. Denarnice z onemogočenimi zasebnimi ključi ne bodo imele zasebnih ključev in ne morejo imeti semen HD ali uvoženih zasebnih ključev. To je idealno za "watch-only" denarnice. + Disable Private Keys Onemogoči zasebne ključe @@ -863,11 +875,11 @@ The entered address "%1" is not a valid Bitcoin address. - Vnešeni naslov %1 ni veljaven Bitcoin naslov. + Vnešeni naslov "%1" ni veljaven Bitcoin naslov. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. - Naslov %1 že obstaja kot naslov za prejemanje z oznako "%2" in ga je nemogoče dodati kot naslov za pošiljanje. + Naslov "%1" že obstaja kot naslov za prejemanje z oznako "%2" in ga je nemogoče dodati kot naslov za pošiljanje. The entered address "%1" is already in the address book with label "%2". @@ -942,6 +954,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Ko kliknete OK, bo %1 začel prenašati podatke in procesirati celotno %4 bazo podatkovnih blokov (%2 GB), začenši z najstarejšo transakcijo in z %3 ob prvotnem začetku %4. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Če spremenite to nastavitev, morate ponovno naložiti celotno verigo blokov. Hitreje je najprej prenesti celotno verigo in jo obrezati pozneje. Onemogoči nekatere napredne funkcije. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Začetna sinhronizacija je zelo zahtevna in lahko odkrije probleme s strojno opremo v vašem računalniku, ki so prej bili neopaženi. Vsakič, ko zaženete %1, bo le-ta nadaljeval s prenosom kjer je ostal. @@ -962,6 +978,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Po verifikaciji zavrzite vse bloke, razen zadnjih %1 GB (obrezava) + At least %1 GB of data will be stored in this directory, and it will grow over time. Vsaj %1 GB podatkov bo shranjenih v tem direktoriju, velikost podatkov pa bo s časom naraščala. @@ -988,7 +1008,7 @@ %n GB of free space available - %n GiB prostega prostora na voljo%n GiB prostega prostora na voljo%n GiB prostega prostora na voljo%n GiB prostega prostora na voljo + %n GiB prostega prostora na voljo%n GiB prostega prostora na voljo%n GiB prostega prostora na voljo%n GB prostega prostora na voljo (of %n GB needed) @@ -1035,7 +1055,7 @@ calculating... - Računam ... + računam ... Estimated time left until synced @@ -1047,7 +1067,7 @@ Unknown. Syncing Headers (%1, %2%)... - Neznano. Sinhroniziram glave (%1, %2%)... + Neznano. Sinhroniziram glave (%1, %2%) ... @@ -1079,6 +1099,10 @@ Open wallet failed Odpiranje denarnice neuspešno + + Open wallet warning + Opozorilo za odpiranje denarnice + default wallet privzeta denarnica @@ -1116,7 +1140,7 @@ IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Naslov IP posredniškega strežnika (npr. IPv4: 127.0.0.1 ali IPv6: ::1) + IP naslov posredniškega strežnika (npr. IPv4: 127.0.0.1 ali IPv6: ::1) Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. @@ -1128,7 +1152,7 @@ Hide the icon from the system tray. - Skrij ikono na pladnju. + Skrij ikono na sistemskem pladnju. &Hide tray icon @@ -1168,7 +1192,7 @@ Prune &block storage to - Obreži velikost podatkovne baze na + Obreži velikost podatkovne &baze na GB @@ -1220,7 +1244,7 @@ Allow incomin&g connections - &Dovoli dohodne povezave + Dovoli &dohodne povezave Connect to the Bitcoin network through a SOCKS5 proxy. @@ -1232,7 +1256,7 @@ Proxy &IP: - Naslov &IP posredniškega strežnika: + &IP naslov posredniškega strežnika: &Port: @@ -1304,7 +1328,7 @@ &Third party transaction URLs - URL nakazila tretjih oseb + URL nakazila &tretjih oseb Options set in this dialog are overridden by the command line or in the configuration file: @@ -1316,7 +1340,7 @@ &Cancel - &Prekliči + P&rekliči default @@ -1468,6 +1492,14 @@ Cannot process payment request because BIP70 support was not compiled in. Zahteve za plačilo ni mogoče obdelati, ker podpora za BIP70 ni bila sestavljena v Bitcoin Core. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Zaradi varnostnih napak v BIP70 priporočamo, da se kakršna koli navodila trgovca za zamenjavo denarnic ne upoštevajo. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Če ste prejeli to napako, zaprosite za URI, ki je združljiv z BIP21. + Invalid payment address %1 Neveljaven naslov za plačilo %1 @@ -1576,7 +1608,7 @@ Enter a Bitcoin address (e.g. %1) - Vnesite naslov Bitcoin (npr. %1): + Vnesite naslov Bitcoin (npr. %1) %1 d @@ -1620,11 +1652,11 @@ %n day(s) - %n dan%n dni%n dni%n dni + %n dan%n dneva%n dnevi%n dni %n week(s) - %n teden%n tedna%n tedne%n tednov + %n teden%n tedna%n tedni%n tednov %1 and %2 @@ -1675,7 +1707,7 @@ QRImageWidget &Save Image... - &Shrani sliko ... + &Shrani sliko &Copy Image @@ -1974,7 +2006,7 @@ WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - OPOZORILO: Goljufi so bili aktivni! Uporabnikom svetujejo, naj tukaj vnašajo ukaze in jim tako kradejo vsebino denarnice. Te konzole ne uporabljajte, če ne popolnoma razumete posledic ukazov. + OPOZORILO: Goljufi so aktivni! Uporabnikom svetujejo, naj tukaj vnašajo ukaze in jim tako ukradejo vsebino denarnice. Te konzole ne uporabljajte, če ne popolnoma razumete posledic ukazov. Network activity disabled @@ -2093,7 +2125,7 @@ Copy URI - Kopireaj URI + Kopiraj URI Copy label @@ -2214,11 +2246,11 @@ Quantity: - Št.vhodov: + Št. vhodov: Bytes: - Št.bajtov: + Št. bajtov: Amount: @@ -2273,7 +2305,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" per kilobyte - na KiB + na kilobajt Hide @@ -2329,7 +2361,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Clear &All - Počisti &vse + Počisti &vse Balance: @@ -2415,6 +2447,10 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Total Amount Skupni znesek + + To review recipient list click "Show Details..." + Za pregled sezama prejemnikov, kliknite na "Pokaži podrobnosti" + Confirm send coins Potrdi pošiljanje kovancev @@ -2488,7 +2524,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Pay &To: - Prejemnik &plačila: + &Prejemnik plačila: &Label: @@ -2645,7 +2681,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Clear &All - Počisti &vse + Počisti &vse &Verify Message @@ -2728,7 +2764,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" TrafficGraphWidget KB/s - KiB/s + KB/s @@ -2993,7 +3029,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Transaction status. Hover over this field to show number of confirmations. - Stanje transakcije. Zapeljite z miško čez to polje za prikaz števila potrdil. + Stanje transakcije. Zapeljite z miško čez to polje za prikaz števila potrdil. Date and time that the transaction was received. @@ -3396,6 +3432,10 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Change index out of range Indeks drobiža izven dovoljenega območja + + Config setting for %s only applied on %s network when in [%s] section. + Konfiguracijske nastavitve za %s se upoštevajo le na omrežju %s v sekciji [%s]. + Copyright (C) %i-%i Copyright (C) %i-%i @@ -3670,6 +3710,10 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Unable to generate initial keys Ne zmorem ustvariti začetnih ključev + + Unknown -blockfilterindex value %s. + Neznana vrednost -blockfilterindex %s. + Verifying wallet(s)... Preverjam denarnice ... @@ -3690,6 +3734,10 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" This is the transaction fee you may pay when fee estimates are not available. To je transakcijska provizija, ki jo lahko plačate, kadar ocene provizij niso na voljo. + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Ta izdelek vključuje programsko opremo, ki jo je razvil OpenSSL Project za uporabo v orodju OpenSSL Toolkit %s in kriptografsko programsko opremo, ki jo je napisal Eric Young, in programsko opremo UPnP, ki jo je napisal Thomas Bernard. + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. Skupna dolžina niza različice omrežja (%i) presega največjo dolžino (%i). Zmanjšajte število ali velikost ur. @@ -3768,7 +3816,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Cannot downgrade wallet - Ne morem + Ne morem Rescanning... diff --git a/src/qt/locale/bitcoin_sn.ts b/src/qt/locale/bitcoin_sn.ts index 731fbb0da5..0e3c61805a 100644 --- a/src/qt/locale/bitcoin_sn.ts +++ b/src/qt/locale/bitcoin_sn.ts @@ -126,7 +126,7 @@ CoinControlDialog Amount - Marii + Marii Date @@ -184,7 +184,7 @@ QObject Amount - Marii + Marii Enter a Bitcoin address (e.g. %1) @@ -212,7 +212,7 @@ N/A - Hapana + Hapana @@ -222,7 +222,7 @@ RPCConsole N/A - Hapana + Hapana @@ -236,7 +236,7 @@ Amount - Marii + Marii Label @@ -292,7 +292,7 @@ Amount - Marii + Marii diff --git a/src/qt/locale/bitcoin_sr@latin.ts b/src/qt/locale/bitcoin_sr@latin.ts index 06826ad18b..80cde0d3fc 100644 --- a/src/qt/locale/bitcoin_sr@latin.ts +++ b/src/qt/locale/bitcoin_sr@latin.ts @@ -83,7 +83,7 @@ Comma separated file (*.csv) - Zarezom odvojena datoteka (*.csv) + Zarezom odvojena datoteka (*.csv) Exporting Failed @@ -659,7 +659,7 @@ TransactionView Comma separated file (*.csv) - Zarezom odvojena datoteka (*.csv) + Zarezom odvojena datoteka (*.csv) Date diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts index a3f8fd8f3a..323bcaf714 100644 --- a/src/qt/locale/bitcoin_sv.ts +++ b/src/qt/locale/bitcoin_sv.ts @@ -932,7 +932,7 @@ Försök igen. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Att försöka spendera bitcoin som påverkas av transaktioner som ännu inte visas kommer inte accepteras av nätverket. + Att försöka spendera bitcoin som påverkas av transaktioner som ännu inte visas kommer inte accepteras av nätverket. Number of blocks left @@ -1149,11 +1149,11 @@ Försök igen. Proxy &IP: - Proxy-&IP: + Proxy-&IP: &Port: - &Port: + &Port: Port of the proxy (e.g. 9050) @@ -1201,7 +1201,7 @@ Försök igen. User Interface &language: - Användargränssnittets &språk: + Användargränssnittets &språk: The user interface language can be set here. This setting will take effect after restarting %1. @@ -1209,7 +1209,7 @@ Försök igen. &Unit to show amounts in: - &Måttenhet att visa belopp i: + &Måttenhet att visa belopp i: Choose the default subdivision unit to show in the interface and when sending coins. @@ -3602,11 +3602,11 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f This is the minimum transaction fee you pay on every transaction. - Det här är minimiavgiften du kommer betala för varje transaktion. + Det här är minimiavgiften du kommer betala för varje transaktion. This is the transaction fee you will pay if you send a transaction. - Det här är transaktionsavgiften du kommer betala om du skickar en transaktion. + Det här är transaktionsavgiften du kommer betala om du skickar en transaktion. Transaction amounts must not be negative diff --git a/src/qt/locale/bitcoin_szl.ts b/src/qt/locale/bitcoin_szl.ts index 0b4706383c..8f42ef290f 100644 --- a/src/qt/locale/bitcoin_szl.ts +++ b/src/qt/locale/bitcoin_szl.ts @@ -1338,7 +1338,7 @@ Wallet: - Portmanyj: + Portmanyj: Received diff --git a/src/qt/locale/bitcoin_ta.ts b/src/qt/locale/bitcoin_ta.ts index 3fcdc6453a..caf281158a 100644 --- a/src/qt/locale/bitcoin_ta.ts +++ b/src/qt/locale/bitcoin_ta.ts @@ -1,6 +1,10 @@ AddressBookPage + + Right-click to edit address or label + முகவரியை மாற்ற ரைட் கிளிக் செய்யவும் + Create a new address புதிய முகவரியை உருவாக்கவும் @@ -61,6 +65,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. இவை பணம் அனுப்புவதற்கு உங்கள் பிட்கின் முகவரிகள். நாணயங்களை அனுப்புவதற்கு முன் எப்பொழுதும் தொகையும் பெறுதலையும் சரிபார்க்கவும். + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + பிட்காயின் பெறுவதற்காக உங்கள் முகவரி இவை. புதிய முகவரிகளை உருவாக்க 'புதிய முகவரியை உருவாக்கு' என்ற பட்டனை கிளிக் செய்யவும். + &Copy Address & நகல் முகவரி @@ -123,6 +131,10 @@ Repeat new passphrase புதிய கடவுச்சொற்றொடரைக் கோருக + + Show passphrase + கடவுச்சொல்லை காட்டு + Encrypt wallet குறியாக்க பணப்பையை @@ -163,6 +175,10 @@ Wallet encrypted கைப்பை குறியாக்கம் செய்யப்பட்டது + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + வாலட்டை பாதுகாக்க புதிய கடவுச்சொல்லை உல்லிடவும். பத்து அல்லது அதற்கு மேற்பட்ட எழுத்துகள் அல்லது எட்டு அல்லது அதற்கு மேற்பட்ட எழுத்துக்களை கடவுச்சொல்லாக பயன்படுத்தவும். + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. முக்கியமானது: உங்கள் பணப்பரிமாற்றத்தை நீங்கள் உருவாக்கிய முந்தைய காப்புப்பிரதி புதிதாக உருவாக்கப்பட்ட, மறைகுறியாக்கப்பட்ட பணப்பரிமாற்றத்துடன் மாற்றப்பட வேண்டும். பாதுகாப்பு காரணங்களுக்காக, நீங்கள் புதிய, மறைகுறியாக்கப்பட்ட பணப்பையைப் பயன்படுத்த ஆரம்பித்தவுடன், மறைகுறியாக்கப்பட்ட பணப்பல் கோப்பின் முந்தைய காப்புப்பிரதிகள் பயனற்றதாகிவிடும். diff --git a/src/qt/locale/bitcoin_te.ts b/src/qt/locale/bitcoin_te.ts index c52827cea0..3ba1f4c173 100644 --- a/src/qt/locale/bitcoin_te.ts +++ b/src/qt/locale/bitcoin_te.ts @@ -31,11 +31,11 @@ Enter address or label to search - చిరునామా లేదా ఏదైనా పేరును వెతకండి + చిరునామా లేదా ఏదైనా పేరును వెతకండి Export the data in the current tab to a file - ప్రస్తుతం ఉన్న సమాచారాన్ని ఫైల్ లోనికి ఎగుమతి చేసుకోండి + ప్రస్తుతం ఉన్న సమాచారాన్ని ఫైల్ లోనికి ఎగుమతి చేసుకోండి &Export @@ -51,7 +51,7 @@ Choose the address to receive coins with - నాణెం అందుకోవటానికి చిరునామాను ఎంచుకోండి + నాణెం అందుకోవటానికి చిరునామాను ఎంచుకోండి C&hoose @@ -432,7 +432,7 @@ Export the data in the current tab to a file - ప్రస్తుతం ఉన్న సమాచారాన్ని ఫైల్ లోనికి ఎగుమతి చేసుకోండి + ప్రస్తుతం ఉన్న సమాచారాన్ని ఫైల్ లోనికి ఎగుమతి చేసుకోండి diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts index a4a9f9e6f4..061deee020 100644 --- a/src/qt/locale/bitcoin_tr.ts +++ b/src/qt/locale/bitcoin_tr.ts @@ -899,7 +899,7 @@ Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Son işlemler henüz görünmeyebilir ve bu nedenle cüzdanınızın bakiyesi yanlış olabilir. Bu bilgiler, aşağıda detaylandırıldığı gibi, cüzdanınız bitcoin ağı ile senkronizasyonunu tamamladığında doğru olacaktır. + Son işlemler henüz görünmeyebilir ve bu nedenle cüzdanınızın bakiyesi yanlış olabilir. Bu bilgiler, aşağıda detaylandırıldığı gibi, cüzdanınız bitcoin ağı ile senkronizasyonunu tamamladığında doğru olacaktır. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -1520,7 +1520,7 @@ Error: Cannot parse configuration file: %1. - Hata: %1 yapılandırma dosyası ayrıştırılamadı. + Hata: %1 yapılandırma dosyası ayrıştırılamadı. Error: %1 @@ -3236,7 +3236,7 @@ Invalid amount for -fallbackfee=<amount>: '%s' - -fallbackfee=<tutar> için geçersiz tutar: '%s' + -fallbackfee=<tutar> için geçersiz tutar: '%s' Unknown address type '%s' diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index 0c01a25d93..92a888e131 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -371,7 +371,7 @@ Sign messages with your Bitcoin addresses to prove you own them - Підтвердіть, що Ви є власником повідомлення підписавши його Вашою Bitcoin-адресою + Підтвердіть, що Ви є власником повідомлення підписавши його Вашою Bitcoin-адресою Verify messages to ensure they were signed with specified Bitcoin addresses @@ -678,7 +678,7 @@ Copy transaction ID - Копіювати ID транзакції + Копіювати ID транзакції Lock unspent @@ -2180,7 +2180,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis. Вкажіть комісію за кБ (1,000 байт) віртуального розміру транзакції. -Примітка: Так як комісія нараховується за байт, комісія "100 сатоші за кБ" для транзакції розміром 500 байт (пів 1 кБ) буде приблизно 50 сатоші. +Примітка: Так як комісія нараховується за байт, комісія "100 сатоші за кБ" для транзакції розміром 500 байт (пів 1 кБ) буде приблизно 50 сатоші. per kilobyte @@ -2596,7 +2596,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Private key for the entered address is not available. - Приватний ключ для введеної адреси недоступний. + Приватний ключ для введеної адреси недоступний. Message signing failed. @@ -2999,7 +2999,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Copy transaction ID - Скопіювати ID транзакції + Скопіювати ID транзакції Copy raw transaction @@ -3341,7 +3341,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Error opening block database - Помилка відкриття блоку бази даних + Помилка відкриття блоку бази даних Failed to listen on any port. Use -listen=0 if you want this. @@ -3397,7 +3397,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Prune cannot be configured with a negative value. - Розмір скороченого ланцюжка блоків не може бути від'ємним. + Розмір скороченого ланцюжка блоків не може бути від'ємним. Prune mode is incompatible with -txindex. @@ -3457,7 +3457,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p The transaction amount is too small to send after the fee has been deducted - Залишок від суми транзакції зі сплатою комісії занадто малий + Залишок від суми транзакції зі сплатою комісії занадто малий You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain @@ -3554,7 +3554,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Verifying wallet(s)... - Перевірка гаманця(ців)... + Перевірка гаманця(ців)... Warning: unknown new rules activated (versionbit %i) @@ -3634,7 +3634,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee. - Оцінка комісії не вдалася. Fallbackfee вимкнено. Зачекайте кілька блоків або ввімкніть -fallbackfee. + Оцінка комісії не вдалася. Fallbackfee вимкнено. Зачекайте кілька блоків або ввімкніть -fallbackfee. Warning: Private keys detected in wallet {%s} with disabled private keys diff --git a/src/qt/locale/bitcoin_ur.ts b/src/qt/locale/bitcoin_ur.ts index f780487c24..efb8956c5d 100644 --- a/src/qt/locale/bitcoin_ur.ts +++ b/src/qt/locale/bitcoin_ur.ts @@ -155,7 +155,7 @@ &Address - پتہ + پتہ diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/bitcoin_vi.ts index 3ad7da9133..c356567a19 100644 --- a/src/qt/locale/bitcoin_vi.ts +++ b/src/qt/locale/bitcoin_vi.ts @@ -411,7 +411,7 @@ &Command-line options - &Tùy chỉnh Command-line + &Tùy chỉnh Command-line %n active connection(s) to Bitcoin network @@ -491,7 +491,7 @@ No wallets available - Không có ví nào + Không có ví nào &Window @@ -969,7 +969,11 @@ Hide Ẩn - + + Unknown. Syncing Headers (%1, %2%)... + Không biết. Đang đồng bộ Headers (%1, %2%)... + + OpenURIDialog @@ -1650,7 +1654,7 @@ To specify a non-default location of the data directory use the '%1' option. - Để chỉ ra một nơi không mặt định của thư mục dữ liệu hãy dùng tùy chọn '%1' + Để chỉ ra một nơi không mặt định của thư mục dữ liệu hãy dùng tùy chọn '%1' Blocksdir @@ -1658,7 +1662,7 @@ To specify a non-default location of the blocks directory use the '%1' option. - Để chỉ ra một nơi không mặt định của thư mục các khối hãy dùng tùy chọn '%1' + Để chỉ ra một nơi không mặt định của thư mục các khối hãy dùng tùy chọn '%1' Startup time @@ -1880,6 +1884,14 @@ Use up and down arrows to navigate history, and %1 to clear screen. Use up and down arrows to navigate history, and %1 to clear screen. + + Type %1 for an overview of available commands. + Nhậ p %1 để biết tổng quan về các lệnh có sẵn. + + + For more information on using this console type %1. + Để biết thêm thông tin về việc sử dụng bảng điều khiển này, hãy nhập %1. + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. @@ -2314,7 +2326,7 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Total Amount - Tổng số + Tổng số To review recipient list click "Show Details..." @@ -3365,6 +3377,10 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Initialization sanity check failed. %s is shutting down. Initialization sanity check failed. %s is shutting down. + + Invalid P2P permission: '%s' + Quyền P2P không hợp lệ: '%s' + Invalid amount for -%s=<amount>: '%s' Invalid amount for -%s=<amount>: '%s' @@ -3509,10 +3525,26 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Reducing -maxconnections from %d to %d, because of system limitations. Reducing -maxconnections from %d to %d, because of system limitations. + + Section [%s] is not recognized. + Mục [%s] không được nhìn nhận. + Signing transaction failed Signing transaction failed + + Specified -walletdir "%s" does not exist + Thư mục ví được nêu -walletdir "%s" không tồn tại + + + Specified -walletdir "%s" is a relative path + Chỉ định -walletdir "%s" là đường dẫn tương đối + + + Specified -walletdir "%s" is not a directory + Chỉ định -walletdir "%s" không phải là một thư mục + The specified config file %s does not exist diff --git a/src/qt/locale/bitcoin_yo.ts b/src/qt/locale/bitcoin_yo.ts index 2e2c1657f7..8904bd7f26 100644 --- a/src/qt/locale/bitcoin_yo.ts +++ b/src/qt/locale/bitcoin_yo.ts @@ -3,7 +3,7 @@ AddressBookPage &New - ati tuntun + &ati tuntun @@ -80,7 +80,7 @@ OptionsDialog &OK - o da + &o da @@ -99,7 +99,7 @@ QRImageWidget &Save Image... - fi aworan pamo + fi aworan &pamo @@ -110,7 +110,7 @@ 1 &year - okan ati odun + okan ati &odun @@ -120,7 +120,7 @@ ReceiveRequestDialog &Save Image... - fi aworan pamo + fi aworan &pamo diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index 82bc22f836..b269faa539 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -467,7 +467,7 @@ %1 behind - 落后 %1 + 落后 %1 Last received block was generated %1 ago. @@ -1000,7 +1000,7 @@ Error: Specified data directory "%1" cannot be created. - 错误:无法创建指定的数据目录 "%1" + 错误:无法创建指定的数据目录 "%1" Error @@ -1086,7 +1086,7 @@ Select payment request file - 选择支付请求文件 + 选择支付请求文件 Select payment request file to open @@ -1439,7 +1439,7 @@ Your current balance in watch-only addresses - 您当前在仅观察观察地址中的余额 + 您当前在仅观察观察地址中的余额 Spendable: @@ -1459,7 +1459,7 @@ Current total balance in watch-only addresses - 仅观察地址中的当前总余额 + 仅观察地址中的当前总余额 @@ -2282,7 +2282,7 @@ Choose... - 选择... + 选择... Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. @@ -2638,7 +2638,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p The Bitcoin address to sign the message with - 用来对消息签名的地址 + 用来对消息签名的地址 Choose previously used address @@ -3603,7 +3603,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Error: Listening for incoming connections failed (listen returned error %s) - 错误:监听外部连接失败 (listen函数返回了错误 %s) + 错误:监听外部连接失败 (listen函数返回了错误 %s) Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index 14290cadde..3ab92b56e3 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -2511,7 +2511,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Do not shut down the computer until this window disappears. - 在這個視窗不見以前,請不要關掉電腦。 + 在這個視窗不見以前,請不要關掉電腦。 From 2a1567981644087793c54e267d633bd453c6b8a1 Mon Sep 17 00:00:00 2001 From: fanquake Date: Thu, 7 Nov 2019 14:19:53 -0500 Subject: [PATCH 021/388] doc: reintegrate release notes from wiki Taken from revision https://github.com/bitcoin-core/bitcoin-devwiki/wiki/0.19.0-Release-Notes-Draft/3f6f33ba44c30be9b3b30e674ffc0652f26b6798. --- doc/release-notes.md | 755 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 722 insertions(+), 33 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 71dc40e66c..bd9d76d577 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,23 +1,9 @@ -*After branching off for a major version release of Bitcoin Core, use this -template to create the initial release notes draft.* +0.19.0 Release Notes +==================== -*The release notes draft is a temporary file that can be added to by anyone. See -[/doc/developer-notes.md#release-notes](/doc/developer-notes.md#release-notes) -for the process.* +Bitcoin Core version 0.19.0 is now available from: -*Create the draft, named* "*version* Release Notes Draft" -*(e.g. "0.20.0 Release Notes Draft"), as a collaborative wiki in:* - -https://github.com/bitcoin-core/bitcoin-devwiki/wiki/ - -*Before the final release, move the notes back to this git repository.* - -*version* Release Notes Draft -=============================== - -Bitcoin Core version *version* is now available from: - - + This release includes new features, various bug fixes and performance improvements, as well as updated translations. @@ -57,10 +43,6 @@ built using Qt 5.9.x, which doesn't support versions of macOS older than 10.10. Additionally, Bitcoin Core does not yet change appearance when macOS "dark mode" is activated. -In addition to previously-supported CPU platforms, this release's -pre-compiled distribution also provides binaries for the RISC-V -platform. - Notable changes =============== @@ -110,6 +92,13 @@ Updated settings releases. See the `bitcoind -help` output for these two options for details about the available permissions. (#16248) +- Users setting custom `dbcache` values can increase their setting slightly + without using any more real memory. Recent changes reduced the memory use + by about 9% and made chainstate accounting more accurate (it was underestimating + the use of memory before). For example, if you set a value of "450" before, you + may now set a value of "500" to use about the same real amount of memory. (#16957) + + Updated RPCs ------------ @@ -117,7 +106,7 @@ Note: some low-level RPC changes mainly useful for testing are described in the Low-level Changes section below. - `sendmany` no longer has a `minconf` argument. This argument was not - well specified and would lead to RPC errors even when the wallet's + well-specified and would lead to RPC errors even when the wallet's coin selection succeeded. Users who want to influence coin selection can use the existing `-spendzeroconfchange`, `-limitancestorcount`, `-limitdescendantcount` and `-walletrejectlongchains` configuration @@ -152,7 +141,7 @@ Low-level Changes section below. - `sendrawtransaction` and `testmempoolaccept` no longer accept a `allowhighfees` parameter to fail mempool acceptance if the - transaction fee exceedes the value of the configuration option + transaction fee exceeds the value of the configuration option `-maxtxfee`. Now there is a hardcoded default maximum feerate that can be changed when calling either RPC using a `maxfeerate` parameter. (#15620) @@ -171,7 +160,7 @@ Low-level Changes section below. - `gettransaction` now accepts a third (boolean) argument `verbose`. If set to `true`, a new `decoded` field will be added to the response containing the decoded transaction. This field is equivalent to RPC `decoderawtransaction`, - or RPC `getrawtransaction` when `verbose` is passed. + or RPC `getrawtransaction` when `verbose` is passed. (#16185, #16866, #16873) - `createwallet` accepts a new `passphrase` parameter. If set, this will create the new wallet encrypted with the given passphrase. If @@ -179,20 +168,22 @@ Low-level Changes section below. used. (#16394) - `getchaintxstats` RPC now returns the additional key of - `window_final_block_height`. + `window_final_block_height`. (#16695) - `getmempoolentry` now provides a `weight` field containing the transaction weight as defined in BIP141. (#16647) -- The `getnetworkinfo` and `getpeerinfo` commands now contain a new field with decoded network service flags. +- The `getnetworkinfo` and `getpeerinfo` commands now contain a new field with decoded network service flags. (#16786) - `getdescriptorinfo` now returns an additional `checksum` field containing the checksum for the unmodified descriptor provided by the user (that is, before the descriptor is normalized for the `descriptor` field). (#15986) -- `joinpsbts` will shuffle the order of the inputs and outputs of the resulting joined psbt. - Previously inputs and outputs were added in the order that the PSBTs were provided which makes correlating inputs to outputs extremely easy. +- `joinpsbts` now shuffles the order of the inputs and outputs of the resulting + joined PSBT. Previously, inputs and outputs were added in the order PSBTs were + provided. This made it easy to correlate inputs to outputs, representing a + privacy leak. (#16512) - `walletcreatefundedpsbt` now signals BIP125 Replace-by-Fee if the `-walletrbf` configuration option is set to true. (#15911) @@ -200,13 +191,12 @@ Low-level Changes section below. GUI changes ----------- -- Provides bech32 addresses by default. The user may change the address +- The GUI wallet now provides bech32 addresses by default. The user may change the address type during invoice generation using a GUI toggle, or the default address - type may be changed by the `-addresstype` configuration option. + type may be changed with the `-addresstype` configuration option. (#15711, #16497) -- In 0.18.0 a `./configure` flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0 this flag is now __disabled__ by default. -- If you want compile Bitcoin Core with BIP70 support in the GUI, you can pass `--enable-bip70` to `./configure`. +- In 0.18.0, a `./configure` flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now __disabled__ by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass `--enable-bip70` to `./configure`. (#15584) Deprecated or removed configuration options ------------------------------------------- @@ -224,6 +214,8 @@ Deprecated or removed RPCs configuration parameter `deprecatedrpc=totalFee` is specified. This parameter will be fully removed in a subsequent release. (#15996) +- `bumpfee` has a new `fee_rate` option as a replacement for the deprecated `totalFee`. (#16727) + - `generate` is now removed after being deprecated in Bitcoin Core 0.18. Use the `generatetoaddress` RPC instead. (#15492) @@ -252,6 +244,8 @@ P2P changes using specific BIP37 nodes or an alternative transaction filtering system. (#16152) +- By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out. (#15759) + Miscellaneous CLI Changes ------------------------- @@ -387,10 +381,705 @@ Build system changes [CVE-2017-1000494](https://security-tracker.debian.org/tracker/CVE-2017-1000494) (both in jessie and in stretch). (#15993) +0.19.0 change log +================= + +### Consensus +- #16128 Delete error-prone CScript constructor only used with FindAndDelete (instagibbs) +- #16060 Bury bip9 deployments (jnewbery) + +### Policy +- #15557 Enhance `bumpfee` to include inputs when targeting a feerate (instagibbs) +- #15846 Make sending to future native witness outputs standard (sipa) + +### Block and transaction handling +- #15632 Remove ResendWalletTransactions from the Validation Interface (jnewbery) +- #14121 Index for BIP 157 block filters (jimpo) +- #15141 Rewrite DoS interface between validation and net_processing (sdaftuar) +- #15880 utils and libraries: Replace deprecated Boost Filesystem functions (hebasto) +- #15971 validation: Add compile-time checking for negative locking requirement in LimitValidationInterfaceQueue (practicalswift) +- #15999 init: Remove dead code in LoadChainTip (MarcoFalke) +- #16015 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift) +- #16056 remove unused magic number from consistency check (instagibbs) +- #16171 Remove -mempoolreplacement to prevent needless block prop slowness (TheBlueMatt) +- #15894 Remove duplicated "Error: " prefix in logs (hebasto) +- #14193 validation: Add missing mempool locks (MarcoFalke) +- #15681 Allow one extra single-ancestor transaction per package (TheBlueMatt) +- #15305 [validation] Crash if disconnecting a block fails (sdaftuar) +- #16471 log correct messages when CPFP fails (jnewbery) +- #16433 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke) +- #13868 Remove unused fScriptChecks parameter from CheckInputs (Empact) +- #16421 Conservatively accept RBF bumps bumping one tx at the package limits (TheBlueMatt) +- #16854 Prevent UpdateTip log message from being broken up (stevenroose) +- #16956 validation: Make GetWitnessCommitmentIndex public (MarcoFalke) +- #16713 Ignore old versionbit activations to avoid 'unknown softforks' warning (jnewbery) +- #17002 chainparams: Bump assumed chain params (MarcoFalke) +- #16849 Fix block index inconsistency in InvalidateBlock() (sdaftuar) + +### P2P protocol and network code +- #15597 Generate log entry when blocks messages are received unexpectedly (pstratem) +- #15654 Remove unused unsanitized user agent string CNode::strSubVer (MarcoFalke) +- #15689 netaddress: Update CNetAddr for ORCHIDv2 (dongcarl) +- #15834 Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map (sdaftuar) +- #15651 torcontrol: Use the default/standard network port for Tor hidden services, even if the internal port is set differently (luke-jr) +- #16188 Document what happens to getdata of unknown type (MarcoFalke) +- #15649 Add ChaCha20Poly1305@Bitcoin AEAD (jonasschnelli) +- #16152 Disable bloom filtering by default (TheBlueMatt) +- #15993 Drop support of the insecure miniUPnPc versions (hebasto) +- #16197 Use mockable time for tx download (MarcoFalke) +- #16248 Make whitebind/whitelist permissions more flexible (NicolasDorier) +- #16618 [Fix] Allow connection of a noban banned peer (NicolasDorier) +- #16631 Restore default whitelistrelay to true (NicolasDorier) +- #15759 Add 2 outbound block-relay-only connections (sdaftuar) +- #15558 Don't query all DNS seeds at once (sipa) +- #16999 0.19 seeds update (laanwj) + +### Wallet +- #15288 Remove wallet -> node global function calls (ryanofsky) +- #15491 Improve log output for errors during load (gwillen) +- #13541 wallet/rpc: sendrawtransaction maxfeerate (kallewoof) +- #15680 Remove resendwallettransactions RPC method (jnewbery) +- #15508 Refactor analyzepsbt for use outside RPC code (gwillen) +- #15747 Remove plethora of Get*Balance (MarcoFalke) +- #15728 Refactor relay transactions (jnewbery) +- #15639 bitcoin-wallet tool: Drop libbitcoin_server.a dependency (ryanofsky) +- #15853 Remove unused import checkpoints.h (MarcoFalke) +- #15780 add cachable amounts for caching credit/debit values (kallewoof) +- #15778 Move maxtxfee from node to wallet (jnewbery) +- #15901 log on rescan completion (andrewtoth) +- #15917 Avoid logging no_such_file_or_directory error (promag) +- #15452 Replace CScriptID and CKeyID in CTxDestination with dedicated types (instagibbs) +- #15870 Only fail rescan when blocks have actually been pruned (MarcoFalke) +- #15006 Add option to create an encrypted wallet (achow101) +- #16001 Give WalletModel::UnlockContext move semantics (sipa) +- #15741 Batch write imported stuff in importmulti (achow101) +- #16144 do not encrypt wallets with disabled private keys (mrwhythat) +- #15024 Allow specific private keys to be derived from descriptor (meshcollider) +- #13756 "avoid_reuse" wallet flag for improved privacy (kallewoof) +- #16226 Move ismine to the wallet module (achow101) +- #16239 wallet/rpc: follow-up clean-up/fixes to avoid_reuse (kallewoof) +- #16286 refactoring: wallet: Fix GCC 7.4.0 warning (hebasto) +- #16257 abort when attempting to fund a transaction above -maxtxfee (Sjors) +- #16237 Have the wallet give out destinations instead of keys (achow101) +- #16322 Fix -maxtxfee check by moving it to CWallet::CreateTransaction (promag) +- #16361 Remove redundant pre-TopUpKeypool check (instagibbs) +- #16244 Move wallet creation out of the createwallet rpc into its own function (achow101) +- #16227 Refactor CWallet's inheritance chain (achow101) +- #16208 Consume ReserveDestination on successful CreateTransaction (instagibbs) +- #16301 Use CWallet::Import* functions in all import* RPCs (achow101) +- #16402 Remove wallet settings from chainparams (MarcoFalke) +- #16415 Get rid of PendingWalletTx class (ryanofsky) +- #15588 Log the actual wallet file version and no longer publicly expose the "version" record (achow101) +- #16399 Improve wallet creation (fjahr) +- #16475 Enumerate walletdb keys (MarcoFalke) +- #15709 Do not add "setting" key as unknown (Bushstar) +- #16451 Remove CMerkleTx (jnewbery) +- #15906 Move min_depth and max_depth to coin control (amitiuttarwar) +- #16502 Drop unused OldKey (promag) +- #16394 Allow createwallet to take empty passwords to make unencrypted wallets (achow101) +- #15911 Use wallet RBF default for walletcreatefundedpsbt (Sjors) +- #16503 Remove p2pEnabled from Chain interface (ariard) +- #16557 restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (jnewbery) +- #14934 Descriptor expansion cache clarifications (Sjors) +- #16383 rpcwallet: default include_watchonly to true for watchonly wallets (jb55) +- #16542 Return more specific errors about invalid descriptors (achow101) +- #16572 Fix Char as Bool in Wallet (JeremyRubin) +- #16753 extract PubKey from P2PK script with Solver (theStack) +- #16716 Use wallet name instead of pointer on unload/release (promag) +- #16185 gettransaction: add an argument to decode the transaction (darosior) +- #16745 Translate all initErrors in CreateWalletFromFile (MarcoFalke) +- #16792 Assert that the HRP is lowercase in Bech32::Encode (meshcollider) +- #16624 encapsulate transactions state (ariard) +- #16830 Cleanup walletinitinterface.h (hebasto) +- #16796 Fix segfault in CreateWalletFromFile (MarcoFalke) +- #16866 Rename 'decode' argument in gettransaction method to 'verbose' (jnewbery) +- #16727 Explicit feerate for bumpfee (instagibbs) +- #16609 descriptor: fix missed m_script_arg arg renaming in #14934 (fanquake) + +### RPC and other APIs +- #15492 remove deprecated generate method (Sjors) +- #15566 cli: Replace testnet with chain and return network name as per bip70 (fanquake) +- #15564 cli: Remove duplicate wallet fields from -getinfo (fanquake) +- #15642 Remove deprecated rpc warnings (jnewbery) +- #15637 Rename size to vsize in mempool related calls (fanquake) +- #15620 Uncouple non-wallet rpcs from maxTxFee global (MarcoFalke) +- #15616 Clarify decodescript RPCResult doc (MarcoFalke) +- #15669 Fix help text for signtransactionwithXXX (torkelrogstad) +- #15596 Ignore sendmany::minconf as dummy value (MarcoFalke) +- #15755 remove unused var in rawtransaction.cpp (Bushstar) +- #15746 RPCHelpMan: Always name dictionary keys (MarcoFalke) +- #15748 remove dead mining code (jnewbery) +- #15751 Speed up deriveaddresses for large ranges (sipa) +- #15770 Validate maxfeerate with AmountFromValue (promag) +- #15474 rest/rpc: Make mempoolinfo atomic (promag) +- #15463 Speedup getaddressesbylabel (promag) +- #15784 Remove dependency on interfaces::Chain in SignTransaction (ariard) +- #15323 Expose g_is_mempool_loaded via getmempoolinfo (Empact) +- #15932 Serialize in getblock without cs_main (MarcoFalke) +- #15930 Add balances RPC (MarcoFalke) +- #15730 Show scanning details in getwalletinfo (promag) +- #14802 faster getblockstats using BlockUndo data (FelixWeis) +- #14984 Speedup getrawmempool when verbose=true (promag) +- #16071 Hint for importmulti in help output of importpubkey and importaddress (kristapsk) +- #16063 Mention getwalletinfo where a rescan is triggered (promag) +- #16024 deriveaddresses: Correction of descriptor checksum in RPC example (ccapo) +- #16217 getrawtransaction: inform about blockhash argument when lookup fails (darosior) +- #15427 Add support for descriptors to utxoupdatepsbt (sipa) +- #16262 Allow shutdown while in generateblocks (pstratem) +- #15483 Adding a 'logpath' entry to getrpcinfo (darosior) +- #16325 Clarify that block count means height excl genesis (MarcoFalke) +- #16326 add new utxoupdatepsbt arguments to the CRPCCommand and CPRCCvertParam tables (jnewbery) +- #16332 Add logpath description for getrpcinfo (instagibbs) +- #16240 JSONRPCRequest-aware RPCHelpMan (kallewoof) +- #15996 Deprecate totalfee argument in `bumpfee` (instagibbs) +- #16467 sendrawtransaction help privacy note (jonatack) +- #16596 Fix getblocktemplate CLI example (emilengler) +- #15986 Add checksum to getdescriptorinfo (sipa) +- #16647 add weight to getmempoolentry output (fanquake) +- #16695 Add window final block height to getchaintxstats (leto) +- #16798 Refactor rawtransaction_util's SignTransaction to separate prevtx parsing (achow101) +- #16285 Improve scantxoutset response and help message (promag) +- #16725 Don't show addresses or P2PK in decoderawtransaction (NicolasDorier) +- #16787 Human readable network services (darosior) +- #16251 Improve signrawtransaction error reporting (ajtowns) +- #16873 fix regression in gettransaction (jonatack) +- #16512 Shuffle inputs and outputs after joining psbts (achow101) +- #16521 Use the default maxfeerate value as BTC/kB (Remagpie) +- #16817 Fix casing in getblockchaininfo to be inline with other fields (dangershony) +- #17131 fix -rpcclienttimeout 0 option (fjahr) +- #17249 Add missing deque include to fix build (jbeich) + +### GUI +- #15464 Drop unused return values in WalletFrame (promag) +- #15614 Defer removeAndDeleteWallet when no modal widget is active (promag) +- #15711 Generate bech32 addresses by default (MarcoFalke) +- #15829 update request payment button text and tab description (fanquake) +- #15874 Resolve the qt/guiutil <-> qt/optionsmodel CD (251Labs) +- #15371 Uppercase bech32 addresses in qr codes (benthecarman) +- #15928 Move QRImageWidget to its own file-pair (luke-jr) +- #16113 move coin control "OK" to the right hand side of the dialog (fanquake) +- #16090 Add vertical spacer to peer detail widget (JosuGZ) +- #15886 qt, wallet: Revamp SendConfirmationDialog (hebasto) +- #16263 Use qInfo() if no error occurs (hebasto) +- #16153 Add antialiasing to traffic graph widget (JosuGZ) +- #16350 Remove unused guard (hebasto) +- #16106 Sort wallets in open wallet menu (promag) +- #16291 Stop translating PACKAGE_NAME (MarcoFalke) +- #16380 Remove unused bits from the service flags enum (MarcoFalke) +- #16379 Fix autostart filenames on Linux for testnet/regtest (hebasto) +- #16366 init: Use InitError for all errors in bitcoind/qt (MarcoFalke) +- #16436 Do not create payment server if -disablewallet option provided (hebasto) +- #16514 Remove unused RPCConsole::tabFocus (promag) +- #16497 Generate bech32 addresses by default (take 2, fixup) (MarcoFalke) +- #16349 Remove redundant WalletController::addWallet slot (hebasto) +- #16578 Do not pass in command line arguments to QApplication (achow101) +- #16612 Remove menu icons (laanwj) +- #16677 remove unused PlatformStyle::TextColorIcon (fanquake) +- #16694 Ensure transaction send error is always visible (fanquake) +- #14879 Add warning messages to the debug window (hebasto) +- #16708 Replace obsolete functions of QSslSocket (hebasto) +- #16701 Replace functions deprecated in Qt 5.13 (hebasto) +- #16706 Replace deprecated QSignalMapper by lambda expressions (hebasto) +- #16707 Remove obsolete QModelIndex::child() (hebasto) +- #16758 Replace QFontMetrics::width() with TextWidth() (hebasto) +- #16760 Change uninstall icon on Windows (GChuf) +- #16720 Replace objc_msgSend() function calls with the native Objective-C syntax (hebasto) +- #16788 Update transifex slug for 0.19 (laanwj) +- #15450 Create wallet menu option (achow101) +- #16735 Remove unused menu items for Windows and Linux (GChuf) +- #16826 Do additional character escaping for wallet names and address labels (achow101) +- #15529 Add Qt programs to msvc build (updated, no code changes) (sipsorcery) +- #16714 add prune to intro screen with smart default (Sjors) +- #16858 advise users not to switch wallets when opening a BIP70 URI (jameshilliard) +- #16822 Create wallet menu option follow-ups (jonatack) +- #16882 Re-generate translations before 0.19.0 (MarcoFalke) +- #16928 Rename address checkbox back to bech32 (MarcoFalke) +- #16837 Fix {C{,XX},LD}FLAGS pickup (dongcarl) +- #16971 Change default size of intro frame (emilengler) +- #16988 Periodic translations update (laanwj) +- #16852 When BIP70 is disabled, get PaymentRequest merchant using string search (achow101) +- #16952 make sure to update the UI when deleting a transaction (jonasschnelli) +- #17031 Prevent processing duplicate payment requests (promag) +- #17135 Make polling in ClientModel asynchronous (promag) +- #17120 Fix start timer from non QThread (promag) +- #17257 disable font antialiasing for QR image address (fanquake) + +### Build system +- #14954 Require python 3.5 (MarcoFalke) +- #15580 native_protobuf: avoid system zlib (dongcarl) +- #15601 Switch to python3 (take 3) (MarcoFalke) +- #15581 Make less assumptions about build env (dongcarl) +- #14853 latest RapidCheck (fanquake) +- #15446 Improve depends debuggability (dongcarl) +- #13788 Fix --disable-asm for newer assembly checks/code (luke-jr) +- #12051 add missing debian contrib file to tarball (puchu) +- #15919 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift) +- #15978 .gitignore: Don't ignore depends patches (dongcarl) +- #15939 gitian: Remove windows 32 bit build (MarcoFalke) +- #15239 scripts and tools: Move non-linux build source tarballs to "bitcoin-binaries/version" directory (hebasto) +- #14047 Add HKDF_HMAC256_L32 and method to negate a private key (jonasschnelli) +- #16051 add patch to common dependencies (fanquake) +- #16049 switch to secure download of all dependencies (Kemu) +- #16059 configure: Fix thread_local detection (dongcarl) +- #16089 add ability to skip building zeromq (fanquake) +- #15844 Purge libtool archives (dongcarl) +- #15461 update to Boost 1.70 (Sjors) +- #16141 remove GZIP export from gitian descriptors (fanquake) +- #16235 Cleaned up and consolidated msbuild files (no code changes) (sipsorcery) +- #16246 MSVC: Fix error in debug mode (Fix #16245) (NicolasDorier) +- #16183 xtrans: Configure flags cleanup (dongcarl) +- #16258 [MSVC]: Create the config.ini as part of bitcoind build (NicolasDorier) +- #16271 remove -Wall from rapidcheck build flags (fanquake) +- #16309 [MSVC] allow user level project customization (NicolasDorier) +- #16308 [MSVC] Copy build output to src/ automatically after build (NicolasDorier) +- #15457 Check std::system for -[alert|block|wallet]notify (Sjors) +- #16344 use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors) +- #16352 prune dbus from depends (fanquake) +- #16270 expat 2.2.7 (fanquake) +- #16408 Prune X packages (dongcarl) +- #16386 disable unused Qt features (fanquake) +- #16424 Treat -Wswitch as error when --enable-werror (MarcoFalke) +- #16441 remove qt libjpeg check from bitcoin_qt.m4 (fanquake) +- #16434 Specify AM_CPPFLAGS for ZMQ (domob1812) +- #16534 add Qt Creator Makefile.am.user to .gitignore (Bushstar) +- #16573 disable building libsecp256k1 benchmarks (fanquake) +- #16533 disable libxcb extensions (fanquake) +- #16589 Remove unused src/obj-test folder (MarcoFalke) +- #16435 autoconf: Sane `--enable-debug` defaults (dongcarl) +- #16622 echo property tests status during build (jonatack) +- #16611 Remove src/obj directory from repository (laanwj) +- #16371 ignore macOS make deploy artefacts & add them to clean-local (fanquake) +- #16654 build: update RapidCheck Makefile (jonatack) +- #16370 cleanup package configure flags (fanquake) +- #16746 msbuild: Ignore linker warning (sipsorcery) +- #16750 msbuild: adds bench_bitcoin to auto generated project files (sipsorcery) +- #16810 guix: Remove ssp spec file hack (dongcarl) +- #16477 skip deploying plugins we dont use in macdeployqtplus (fanquake) +- #16413 Bump QT to LTS release 5.9.8 (THETCR) +- #15584 disable BIP70 support by default (fanquake) +- #16871 make building protobuf optional in depends (fanquake) +- #16879 remove redundant sed patching (fanquake) +- #16809 zlib: Move toolchain options to configure (dongcarl) +- #15146 Solve SmartOS FD_ZERO build issue (Empact) +- #16870 update boost macros to latest upstream for improved error reporting (fanquake) +- #16982 Factor out qt translations from build system (laanwj) +- #16926 Add OpenSSL termios fix for musl libc (nmarley) +- #16927 Refresh ZeroMQ 4.3.1 patch (nmarley) +- #17005 Qt version appears only if GUI is being built (ch4ot1c) +- #16468 Exclude depends/Makefile in .gitignore (promag) + +### Tests and QA +- #15296 Add script checking for deterministic line coverage in unit tests (practicalswift) +- #15338 ci: Build and run tests once on freebsd (MarcoFalke) +- #15479 Add .style.yapf (MarcoFalke) +- #15534 lint-format-strings: open files sequentially (fix for OS X) (gwillen) +- #15504 fuzz: Link BasicTestingSetup (shared with unit tests) (MarcoFalke) +- #15473 bench: Benchmark mempooltojson (MarcoFalke) +- #15466 Print remaining jobs in test_runner.py (stevenroose) +- #15631 mininode: Clearer error message on invalid magic bytes (MarcoFalke) +- #15255 Remove travis_wait from lint script (gkrizek) +- #15686 make pruning test faster (jnewbery) +- #15533 .style.yapf: Set column_limit=160 (MarcoFalke) +- #15660 Overhaul p2p_compactblocks.py (sdaftuar) +- #15495 Add regtests for HTTP status codes (domob1812) +- #15772 Properly log named args in authproxy (MarcoFalke) +- #15771 Prevent concurrency issues reading .cookie file (promag) +- #15693 travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke) +- #15629 init: Throw error when network specific config is ignored (MarcoFalke) +- #15773 Add BitcoinTestFramework::sync_* methods (MarcoFalke) +- #15797 travis: Bump second timeout to 33 minutes, add rationale (MarcoFalke) +- #15788 Unify testing setups for fuzz, bench, and unit tests (MarcoFalke) +- #15352 Reduce noise level in test_bitcoin output (practicalswift) +- #15779 Add wallet_balance benchmark (MarcoFalke) +- #15843 fix outdated include in blockfilter_index_tests (jamesob) +- #15866 Add missing syncwithvalidationinterfacequeue to wallet_import_rescan (MarcoFalke) +- #15697 Make swap_magic_bytes in p2p_invalid_messages atomic (MarcoFalke) +- #15895 Avoid re-reading config.ini unnecessarily (luke-jr) +- #15896 feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME in messages rather than hardcoding Bitcoin Core (luke-jr) +- #15897 QA/mininode: Send all headers upfront in send_blocks_and_test to avoid sending an unconnected one (luke-jr) +- #15696 test_runner: Move feature_pruning to base tests (MarcoFalke) +- #15869 Add settings merge test to prevent regresssions (ryanofsky) +- #15758 Add further tests to wallet_balance (MarcoFalke) +- #15841 combine_logs: append node stderr and stdout if it exists (MarcoFalke) +- #15949 test_runner: Move pruning back to extended (MarcoFalke) +- #15927 log thread names by default in functional tests (jnewbery) +- #15664 change default Python block serialization to witness (instagibbs) +- #15988 Add test for ArgsManager::GetChainName (ryanofsky) +- #15963 Make random seed logged and settable (jnewbery) +- #15943 Fail if RPC has been added without tests (MarcoFalke) +- #16036 travis: Run all lint scripts even if one fails (scravy) +- #13555 parameterize adjustment period in versionbits_computeblockversion (JBaczuk) +- #16079 wallet_balance.py: Prevent edge cases (stevenroose) +- #16078 replace tx hash with txid in rawtransaction test (LongShao007) +- #16042 Bump MAX_NODES to 12 (MarcoFalke) +- #16124 Limit Python linting to files in the repo (practicalswift) +- #16143 Mark unit test blockfilter_index_initial_sync as non-deterministic (practicalswift) +- #16214 travis: Fix caching issues (MarcoFalke) +- #15982 Make msg_block a witness block (MarcoFalke) +- #16225 Make coins_tests/updatecoins_simulation_test deterministic (practicalswift) +- #16236 fuzz: Log output even if fuzzer failed (MarcoFalke) +- #15520 cirrus: Run extended test feature_pruning (MarcoFalke) +- #16234 Add test for unknown args (MarcoFalke) +- #16207 stop generating lcov coverage when functional tests fail (asood123) +- #16252 Log to debug.log in all unit tests (MarcoFalke) +- #16289 Add missing ECC_Stop() in GUI rpcnestedtests.cpp (jonasschnelli) +- #16278 Remove unused includes (practicalswift) +- #16302 Add missing syncwithvalidationinterfacequeue to wallet_balance test (MarcoFalke) +- #15538 wallet_bumpfee.py: Make sure coin selection produces change (instagibbs) +- #16294 Create at most one testing setup (MarcoFalke) +- #16299 bench: Move generated data to a dedicated translation unit (promag) +- #16329 Add tests for getblockchaininfo.softforks (MarcoFalke) +- #15687 tool wallet test coverage for unexpected writes to wallet (jonatack) +- #16267 bench: Benchmark blocktojson (fanatid) +- #14505 Add linter to make sure single parameter constructors are marked explicit (practicalswift) +- #16338 Disable other targets when enable-fuzz is set (qmma70) +- #16334 rpc_users: Also test rpcauth.py with password (dongcarl) +- #15282 Replace hard-coded hex tx with class in test framework (stevenroose) +- #16390 Add --filter option to test_runner.py (promag) +- #15891 Require standard txs in regtest by default (MarcoFalke) +- #16374 Enable passing wildcard test names to test runner from root (jonatack) +- #16420 Fix race condition in wallet_encryption test (jonasschnelli) +- #16422 remove redundant setup in addrman_tests (zenosage) +- #16438 travis: Print memory and number of cpus (MarcoFalke) +- #16445 Skip flaky p2p_invalid_messages test on macOS (fjahr) +- #16459 Fix race condition in example_test.py (sdaftuar) +- #16464 Ensure we don't generate a too-big block in p2sh sigops test (sdaftuar) +- #16491 fix deprecated log.warn in feature_dbcrash test (jonatack) +- #15134 Switch one of the Travis jobs to an unsigned char environment (-funsigned-char) (practicalswift) +- #16505 Changes verbosity of msbuild from quiet to normal in the appveyor script (sipsorcery) +- #16293 Make test cases separate functions (MarcoFalke) +- #16470 Fail early on disconnect in mininode.wait_for_* (MarcoFalke) +- #16277 Suppress output in test_bitcoin for expected errors (gertjaap) +- #16493 Fix test failures (MarcoFalke) +- #16538 Add missing sync_blocks to feature_pruning (MarcoFalke) +- #16509 Adapt test framework for chains other than "regtest" (MarcoFalke) +- #16363 Add test for BIP30 duplicate tx (MarcoFalke) +- #16535 Explain why -whitelist is used in feature_fee_estimation (MarcoFalke) +- #16554 only include and use OpenSSL where it's actually needed (BIP70) (fanquake) +- #16598 Remove confusing hash256 function in util (elichai) +- #16595 travis: Use extended 90 minute timeout when available (MarcoFalke) +- #16563 Add unit test for AddTimeData (mzumsande) +- #16561 Use colors and dots in test_runner.py output only if standard output is a terminal (practicalswift) +- #16465 Test p2sh-witness and bech32 in wallet_import_rescan (MarcoFalke) +- #16582 Rework ci (Use travis only as fallback env) (MarcoFalke) +- #16633 travis: Fix test_runner.py timeouts (MarcoFalke) +- #16646 Run tests with UPnP disabled (fanquake) +- #16623 ci: Add environment files for all settings (MarcoFalke) +- #16656 fix rpc_setban.py race (jonasschnelli) +- #16570 Make descriptor tests deterministic (davereikher) +- #16404 Test ZMQ notification after chain reorg (promag) +- #16726 Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values (practicalswift) +- #16739 ci: Pass down $makejobs to test_runner.py, other improvements (MarcoFalke) +- #16767 Check for codespell in lint-spelling.sh (kristapsk) +- #16768 Make lint-includes.sh work from any directory (kristapsk) +- #15257 Scripts and tools: Bump flake8 to 3.7.8 (Empact) +- #16804 Remove unused try-block in assert_debug_log (MarcoFalke) +- #16850 `servicesnames` field in `getpeerinfo` and `getnetworkinfo` (darosior) +- #16551 Test that low difficulty chain fork is rejected (MarcoFalke) +- #16737 Establish only one connection between nodes in rpc_invalidateblock (MarcoFalke) +- #16845 Add notes on how to generate data/wallets/high_minversion (MarcoFalke) +- #16888 Bump timeouts in slow running tests (MarcoFalke) +- #16864 Add python bech32 impl round-trip test (instagibbs) +- #16865 add some unit tests for merkle.cpp (soroosh-sdi) +- #14696 Add explicit references to related CVE's in p2p_invalid_block test (lucash-dev) +- #16907 lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke) +- #16898 Remove connect_nodes_bi (MarcoFalke) +- #16917 Move common function assert_approx() into util.py (fridokus) +- #16921 Add information on how to add Vulture suppressions (practicalswift) +- #16920 Fix extra_args in wallet_import_rescan.py (MarcoFalke) +- #16918 Make PORT_MIN in test runner configurable (MarcoFalke) +- #16941 travis: Disable feature_block in tsan run due to oom (MarcoFalke) +- #16929 follow-up to rpc: default maxfeerate value as BTC/kB (jonatack) +- #16959 ci: Set $host before setting fallback values (MarcoFalke) +- #16961 Remove python dead code linter (laanwj) +- #16931 add unittests for CheckProofOfWork (soroosh-sdi) +- #16991 Fix service flag comparison check in rpc_net test (luke-jr) (laanwj) +- #16987 Correct docstring param name (jbampton) +- #17015 Explain QT_QPA_PLATFORM for gui tests (MarcoFalke) +- #17006 Enable UBSan for Travis fuzzing job (practicalswift) +- #17086 Fix fs_tests for unknown locales (carnhofdaki) +- #15903 appveyor: Write @PACKAGE_NAME@ to config (MarcoFalke) +- #16742 test: add executable flag for wallet_watchonly.py (theStack) +- #16740 qa: Relax so that the subscriber is ready before publishing zmq messages (#16740) + +### Miscellaneous +- #15335 Fix lack of warning of unrecognized section names (AkioNak) +- #15528 contrib: Bump gitian descriptors for 0.19 (MarcoFalke) +- #15609 scripts and tools: Set 'distro' explicitly (hebasto) +- #15519 Add Poly1305 implementation (jonasschnelli) +- #15643 contrib: Gh-merge: include acks in merge commit (MarcoFalke) +- #15838 scripts and tools: Fetch missing review comments in github-merge.py (nkostoulas) +- #15920 lint: Check that all wallet args are hidden (MarcoFalke) +- #15849 Thread names in logs and deadlock debug tools (jamesob) +- #15650 Handle the result of posix_fallocate system call (lucayepa) +- #15766 scripts and tools: Upgrade gitian image before signing (hebasto) +- #15512 Add ChaCha20 encryption option (XOR) (jonasschnelli) +- #15968 Fix portability issue with pthreads (grim-trigger) +- #15970 Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL (orientye) +- #15863 scripts and tools: Ensure repos are up-to-date in gitian-build.py (hebasto) +- #15224 Add RNG strengthening (10ms once every minute) (sipa) +- #15840 Contrib scripts: Filter IPv6 by ASN (abitfan) +- #13998 Scripts and tools: gitian-build.py improvements and corrections (hebasto) +- #15236 scripts and tools: Make --setup command independent (hebasto) +- #16114 contrib: Add curl as a required program in gitian-build.py (fanquake) +- #16046 util: Add type safe gettime (MarcoFalke) +- #15703 Update secp256k1 subtree to latest upstream (sipa) +- #16086 contrib: Use newer config.guess & config.sub in install_db4.sh (fanquake) +- #16130 Don't GPG sign intermediate commits with github-merge tool (stevenroose) +- #16162 scripts: Add key for michael ford (fanquake) to trusted keys list (fanquake) +- #16201 devtools: Always use unabbreviated commit IDs in github-merge.py (laanwj) +- #16112 util: Log early messages (MarcoFalke) +- #16223 devtools: Fetch and display ACKs at sign-off time in github-merge (laanwj) +- #16300 util: Explain why the path is cached (MarcoFalke) +- #16314 scripts and tools: Update copyright_header.py script (hebasto) +- #16158 Fix logic of memory_cleanse() on MSVC and clean up docs (real-or-random) +- #14734 fix an undefined behavior in uint::SetHex (kazcw) +- #16327 scripts and tools: Update ShellCheck linter (hebasto) +- #15277 contrib: Enable building in guix containers (dongcarl) +- #16362 Add bilingual_str type (hebasto) +- #16481 logs: add missing space (harding) +- #16581 sipsorcery gitian key (sipsorcery) +- #16566 util: Refactor upper/lowercase functions (kallewoof) +- #16620 util: Move resolveerrmsg to util/error (MarcoFalke) +- #16625 scripts: Remove github-merge.py (fanquake) +- #15864 Fix datadir handling (hebasto) +- #16670 util: Add join helper to join a list of strings (MarcoFalke) +- #16665 scripts: Move update-translations.py to maintainer-tools repo (fanquake) +- #16730 Support serialization of `std::vector` (sipa) +- #16556 Fix systemd service file configuration directory setup (setpill) +- #15615 Add log output during initial header sync (jonasschnelli) +- #16774 Avoid unnecessary "Synchronizing blockheaders" log messages (jonasschnelli) +- #16489 log: harmonize bitcoind logging (jonatack) +- #16577 util: Cbufferedfile fixes and unit test (LarryRuane) +- #16984 util: Make thread names shorter (hebasto) +- #17038 Don't rename main thread at process level (laanwj) +- #17184 util: Filter out macos process serial number (hebasto) +- #17095 util: Filter control characters out of log messages (laanwj) +- #17085 init: Change fallback locale to C.UTF-8 (laanwj) +- #16957 9% less memory: make SaltedOutpointHasher noexcept (martinus) + +### Documentation +- #15514 Update Transifex links (fanquake) +- #15513 add "sections" info to example bitcoin.conf (fanquake) +- #15530 Move wallet lock annotations to header (MarcoFalke) +- #15562 remove duplicate clone step in build-windows.md (fanquake) +- #15565 remove release note fragments (fanquake) +- #15444 Additional productivity tips (Sjors) +- #15577 Enable TLS in link to chris.beams.io (JeremyRand) +- #15604 release note for disabling reject messages by default (jnewbery) +- #15611 Add Gitian key for droark (droark) +- #15626 Update ACK description in CONTRIBUTING.md (jonatack) +- #15603 Add more tips to productivity.md (gwillen) +- #15683 Comment for seemingly duplicate LIBBITCOIN_SERVER (Bushstar) +- #15685 rpc-mining: Clarify error messages (MarcoFalke) +- #15760 Clarify sendrawtransaction::maxfeerate==0 help (MarcoFalke) +- #15659 fix findFork comment (r8921039) +- #15718 Improve netaddress comments (dongcarl) +- #15833 remove out-of-date comment on pay-to-witness support (r8921039) +- #15821 Remove upgrade note in release notes from EOL versions (MarcoFalke) +- #15267 explain AcceptToMemoryPoolWorker's coins_to_uncache (jamesob) +- #15887 Align code example style with clang-format (hebasto) +- #15877 Fix -dustrelayfee= argument docs grammar (keepkeyjon) +- #15908 Align MSVC build options with Linux build ones (hebasto) +- #15941 Add historical release notes for 0.18.0 (laanwj) +- #15794 Clarify PR guidelines w/re documentation (dongcarl) +- #15607 Release process updates (jonatack) +- #14364 Clarify -blocksdir usage (sangaman) +- #15777 Add doxygen comments for keypool classes (jnewbery) +- #15820 Add productivity notes for dummy rebases (dongcarl) +- #15922 Explain how to pass in non-fundamental types into functions (MarcoFalke) +- #16080 build/doc: update bitcoin_config.h packages, release process (jonatack) +- #16047 analyzepsbt description in doc/psbt.md (jonatack) +- #16039 add release note for 14954 (fanquake) +- #16139 Add riscv64 to outputs list in release-process.md (JeremyRand) +- #16140 create security policy (narula) +- #16164 update release process for SECURITY.md (jonatack) +- #16213 Remove explicit mention of versions from SECURITY.md (MarcoFalke) +- #16186 doc/lint: Fix spelling errors identified by codespell 1.15.0 (Empact) +- #16149 Rework section on ACK in CONTRIBUTING.md (MarcoFalke) +- #16196 Add release notes for 14897 & 15834 (MarcoFalke) +- #16241 add rapidcheck to vcpkg install list (fanquake) +- #16243 Remove travis badge from readme (MarcoFalke) +- #16256 remove orphaned header in developer notes (jonatack) +- #15964 Improve build-osx document formatting (giulio92) +- #16313 Fix broken link in doc/build-osx.md (jonatack) +- #16330 Use placeholder instead of key expiration date (hebasto) +- #16339 add reduce-memory.md (fanquake) +- #16347 Include static members in Doxygen (dongcarl) +- #15824 Improve netbase comments (dongcarl) +- #16430 Update bips 35, 37 and 111 status (MarcoFalke) +- #16455 Remove downgrading warning in release notes, per 0.18 branch (MarcoFalke) +- #16484 update labels in CONTRIBUTING.md (MarcoFalke) +- #16483 update Python command in msvc readme (sipsorcery) +- #16504 Add release note for the deprecated totalFee option of bumpfee (promag) +- #16448 add note on precedence of options in bitcoin.conf (fanquake) +- #16536 Update and extend benchmarking.md (ariard) +- #16530 Fix grammar and punctuation in developer notes (Tech1k) +- #16574 Add historical release notes for 0.18.1 (laanwj) +- #16585 Update Markdown syntax for bdb packages (emilengler) +- #16586 Mention other ways to conserve memory on compilation (MarcoFalke) +- #16605 Add missing contributor to 0.18.1 release notes (meshcollider) +- #16615 Fix typos in COPYRIGHT (gapeman) +- #16626 Fix spelling error chache -> cache (nilswloewen) +- #16587 Improve versionbits.h documentation (ariard) +- #16643 Add ZMQ dependencies to the Fedora build instructions (hebasto) +- #16634 Refer in rpcbind doc to the manpage (MarcoFalke) +- #16555 mention whitelist is inbound, and applies to blocksonly (Sjors) +- #16645 initial RapidCheck property-based testing documentation (jonatack) +- #16691 improve depends prefix documentation (fanquake) +- #16629 Add documentation for the new whitelist permissions (NicolasDorier) +- #16723 Update labels in CONTRIBUTING.md (hebasto) +- #16461 Tidy up shadowing section (promag) +- #16621 add default bitcoin.conf locations (GChuf) +- #16752 Delete stale URL in test README (michaelfolkson) +- #14862 Declare BLOCK_VALID_HEADER reserved (MarcoFalke) +- #16806 Add issue templates for bug and feature request (MarcoFalke) +- #16857 Elaborate need to re-login on Debian-based after usermod for Tor group (clashicly) +- #16863 Add a missing closing parenthesis in the bitcoin-wallet's help (darosior) +- #16757 CChainState return values (MarcoFalke) +- #16847 add comments clarifying how local services are advertised (jamesob) +- #16812 Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in (ch4ot1c) +- #16885 Update tx-size-small comment with relevant CVE disclosure (instagibbs) +- #16900 Fix doxygen comment for SignTransaction in rpc/rawtransaction_util (MarcoFalke) +- #16914 Update homebrew instruction for doxygen (Sjors) +- #16912 Remove Doxygen intro from src/bitcoind.cpp (ch4ot1c) +- #16960 replace outdated OpenSSL comment in test README (fanquake) +- #16968 Remove MSVC update step from translation process (laanwj) +- #16953 Improve test READMEs (fjahr) +- #16962 Put PR template in comments (laanwj) +- #16397 Clarify includeWatching for fundrawtransaction (stevenroose) +- #15459 add how to calculate blockchain and chainstate size variables to release process (marcoagner) +- #16997 Update bips.md for 0.19 (laanwj) +- #17001 Remove mention of renamed mapBlocksUnlinked (MarcoFalke) +- #17014 Consolidate release notes before 0.19.0 (move-only) (MarcoFalke) +- #17111 update bips.md with buried BIP9 deployments (MarcoFalke) + Credits ======= Thanks to everyone who directly contributed to this release: +- 251 +- Aaron Clauson +- Akio Nakamura +- Alistair Mann +- Amiti Uttarwar +- Andrew Chow +- andrewtoth +- Anthony Towns +- Antoine Riard +- Aseem Sood +- Ben Carman +- Ben Woosley +- bpay +- Carl Dong +- Carnhof Daki +- Chris Capobianco +- Chris Moore +- Chuf +- clashic +- clashicly +- Cory Fields +- Daki Carnhof +- Dan Gershony +- Daniel Edgecumbe +- Daniel Kraft +- Daniel McNally +- darosior +- David A. Harding +- David Reikher +- Douglas Roark +- Elichai Turkel +- Emil +- Emil Engler +- ezegom +- Fabian Jahr +- fanquake +- Felix Weis +- Ferdinando M. Ametrano +- fridokus +- gapeman +- GChuf +- Gert-Jaap Glasbergen +- Giulio Lombardo +- Glenn Willen +- Graham Krizek +- Gregory Sanders +- grim-trigger +- gwillen +- Hennadii Stepanov +- Jack Mallers +- James Hilliard +- James O'Beirne +- Jan Beich +- Jeremy Rubin +- JeremyRand +- Jim Posen +- John Bampton +- John Newbery +- Jon Atack +- Jon Layton +- Jonas Schnelli +- Jonathan "Duke" Leto +- João Barbosa +- Joonmo Yang +- Jordan Baczuk +- Jorge Timón +- Josu Goñi +- Julian Fleischer +- Karl-Johan Alm +- Kaz Wesley +- keepkeyjon +- Kirill Fomichev +- Kristaps Kaupe +- Kristian Kramer +- Larry Ruane +- Lenny Maiorani +- LongShao007 +- Luca Venturini +- lucash-dev +- Luke Dashjr +- marcoagner +- MarcoFalke +- marcuswin +- Martin Ankerl +- Martin Zumsande +- Matt Corallo +- MeshCollider +- Michael Folkson +- Miguel Herranz +- Nathan Marley +- Neha Narula +- nicolas.dorier +- Nils Loewen +- nkostoulas +- orient +- Patrick Strateman +- Peter Bushnell +- Peter Wagner +- Pieter Wuille +- practicalswift +- qmma +- r8921039 +- RJ Rybarczyk +- Russell Yanofsky +- Samuel Dobson +- Sebastian Falbesoner +- setpill +- shannon1916 +- Sjors Provoost +- soroosh-sdi +- Steven Roose +- Suhas Daftuar +- tecnovert +- THETCR +- Tim Ruffing +- Tobias Kaderle +- Torkel Rogstad +- Ulrich Kempken +- whythat +- William Casarin +- Wladimir J. van der Laan +- zenosage As well as everyone that helped translating on [Transifex](https://www.transifex.com/bitcoin/bitcoin/). From 8bca3ce0b121b77bec4915617dfceed4c023962c Mon Sep 17 00:00:00 2001 From: fanquake Date: Thu, 7 Nov 2019 14:23:27 -0500 Subject: [PATCH 022/388] doc: add macOS DMG opening note to release notes --- doc/release-notes.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index bd9d76d577..6a39cf5a6d 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -43,6 +43,10 @@ built using Qt 5.9.x, which doesn't support versions of macOS older than 10.10. Additionally, Bitcoin Core does not yet change appearance when macOS "dark mode" is activated. +Users running macOS Catalina may need to "right-click" and then choose "Open" +to open the Bitcoin Core .dmg. This is due to new signing requirements +imposed by Apple, which the Bitcoin Core project does not yet adhere too. + Notable changes =============== From 2d0b3c07162a7050f48698069550f674b4599423 Mon Sep 17 00:00:00 2001 From: fanquake Date: Mon, 4 Nov 2019 14:39:34 -0500 Subject: [PATCH 023/388] cli: fix -getinfo output when compiled with no wallet Github-Pull: #17368 Rebased-From: 3d05d332693ec860626fc77e6ba50dec94e4e83c --- src/bitcoin-cli.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp index 7fdd8e9466..67a69f85eb 100644 --- a/src/bitcoin-cli.cpp +++ b/src/bitcoin-cli.cpp @@ -262,7 +262,7 @@ class GetinfoRequestHandler: public BaseRequestHandler result.pushKV("proxy", batch[ID_NETWORKINFO]["result"]["networks"][0]["proxy"]); result.pushKV("difficulty", batch[ID_BLOCKCHAININFO]["result"]["difficulty"]); result.pushKV("chain", UniValue(batch[ID_BLOCKCHAININFO]["result"]["chain"])); - if (!batch[ID_WALLETINFO].isNull()) { + if (!batch[ID_WALLETINFO]["result"].isNull()) { result.pushKV("walletversion", batch[ID_WALLETINFO]["result"]["walletversion"]); result.pushKV("balance", batch[ID_WALLETINFO]["result"]["balance"]); result.pushKV("keypoololdest", batch[ID_WALLETINFO]["result"]["keypoololdest"]); From 42414bfd054793ca7bcf5ba329c48649e5d7933c Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Fri, 8 Nov 2019 21:15:45 +0100 Subject: [PATCH 024/388] build: set CLIENT_VERSION_RC to 0 pre-final Tree-SHA512: 3d071f93f6fc5b30ccfb3ca34d7e050370d2d6201aca892503a4300a761116d69ceed7c770283581fcce0ce78ff7c0a6820db8600877d09fba9ed0cd488f4bf7 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 7276e41af4..22edb3f794 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 19) define(_CLIENT_VERSION_REVISION, 0) define(_CLIENT_VERSION_BUILD, 0) -define(_CLIENT_VERSION_RC, 3) +define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2019) define(_COPYRIGHT_HOLDERS,[The %s developers]) From e05b2dba16d48f5a68915967d29bcb02defbb673 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sun, 10 Nov 2019 11:41:45 +0100 Subject: [PATCH 025/388] doc: Clean out release notes post-release Tree-SHA512: 8f54da0099227270a51e3ab82e001cca82aa3f2f8e6303cd31f9c9a4d2867113e2776f2a7babf4737cfca1830cf0077070621a0c3bb881d5f9d36dde0b0104d1 --- doc/release-notes.md | 1068 +------------------- doc/release-notes/release-notes-0.19.0.md | 1086 +++++++++++++++++++++ 2 files changed, 1112 insertions(+), 1042 deletions(-) create mode 100644 doc/release-notes/release-notes-0.19.0.md diff --git a/doc/release-notes.md b/doc/release-notes.md index 6a39cf5a6d..db5aa0d8a7 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,9 +1,23 @@ -0.19.0 Release Notes -==================== +*After branching off for a major version release of Bitcoin Core, use this +template to create the initial release notes draft.* -Bitcoin Core version 0.19.0 is now available from: +*The release notes draft is a temporary file that can be added to by anyone. See +[/doc/developer-notes.md#release-notes](/doc/developer-notes.md#release-notes) +for the process.* - +*Create the draft, named* "*version* Release Notes Draft" +*(e.g. "0.20.0 Release Notes Draft"), as a collaborative wiki in:* + +https://github.com/bitcoin-core/bitcoin-devwiki/wiki/ + +*Before the final release, move the notes back to this git repository.* + +*version* Release Notes Draft +=============================== + +Bitcoin Core version *version* is now available from: + + This release includes new features, various bug fixes and performance improvements, as well as updated translations. @@ -25,7 +39,7 @@ installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) or `bitcoind`/`bitcoin-qt` (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but might take some time if the datadir needs to be migrated. Old +possible, but it might take some time if the datadir needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. Compatibility @@ -38,1052 +52,22 @@ to use Bitcoin Core on unsupported systems. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. -From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is -built using Qt 5.9.x, which doesn't support versions of macOS older than -10.10. Additionally, Bitcoin Core does not yet change appearance when +From Bitcoin Core 0.17.0 onwards, macOS versions earlier than 10.10 are no +longer supported, as Bitcoin Core is now built using Qt 5.9.x which requires +macOS 10.10+. Additionally, Bitcoin Core does not yet change appearance when macOS "dark mode" is activated. -Users running macOS Catalina may need to "right-click" and then choose "Open" -to open the Bitcoin Core .dmg. This is due to new signing requirements -imposed by Apple, which the Bitcoin Core project does not yet adhere too. +In addition to previously supported CPU platforms, this release's pre-compiled +distribution provides binaries for the RISC-V platform. Notable changes =============== -New user documentation ----------------------- - -- [Reduce memory](https://github.com/bitcoin/bitcoin/blob/master/doc/reduce-memory.md) - suggests configuration tweaks for running Bitcoin Core on systems with - limited memory. (#16339) - -New RPCs --------- - -- `getbalances` returns an object with all balances (`mine`, - `untrusted_pending` and `immature`). Please refer to the RPC help of - `getbalances` for details. The new RPC is intended to replace - `getbalance`, `getunconfirmedbalance`, and the balance fields in - `getwalletinfo`. These old calls and fields may be removed in a - future version. (#15930, #16239) - -- `setwalletflag` sets and unsets wallet flags that enable or disable - features specific to that existing wallet, such as the new - `avoid_reuse` feature documented elsewhere in these release notes. - (#13756) - -- `getblockfilter` gets the BIP158 filter for the specified block. This - RPC is only enabled if block filters have been created using the - `-blockfilterindex` configuration option. (#14121) - -New settings ------------- - -- `-blockfilterindex` enables the creation of BIP158 block filters for - the entire blockchain. Filters will be created in the background and - currently use about 4 GiB of space. Note: this version of Bitcoin - Core does not serve block filters over the P2P network, although the - local user may obtain block filters using the `getblockfilter` RPC. - (#14121) - -Updated settings ----------------- - -- `whitebind` and `whitelist` now accept a list of permissions to - provide peers connecting using the indicated interfaces or IP - addresses. If no permissions are specified with an address or CIDR - network, the implicit default permissions are the same as previous - releases. See the `bitcoind -help` output for these two options for - details about the available permissions. (#16248) - -- Users setting custom `dbcache` values can increase their setting slightly - without using any more real memory. Recent changes reduced the memory use - by about 9% and made chainstate accounting more accurate (it was underestimating - the use of memory before). For example, if you set a value of "450" before, you - may now set a value of "500" to use about the same real amount of memory. (#16957) - - -Updated RPCs ------------- - -Note: some low-level RPC changes mainly useful for testing are described in the -Low-level Changes section below. - -- `sendmany` no longer has a `minconf` argument. This argument was not - well-specified and would lead to RPC errors even when the wallet's - coin selection succeeded. Users who want to influence coin selection - can use the existing `-spendzeroconfchange`, `-limitancestorcount`, - `-limitdescendantcount` and `-walletrejectlongchains` configuration - arguments. (#15596) - -- `getbalance` and `sendtoaddress`, plus the new RPCs `getbalances` and - `createwallet`, now accept an "avoid_reuse" parameter that controls - whether already used addresses should be included in the operation. - Additionally, `sendtoaddress` will avoid partial spends when - `avoid_reuse` is enabled even if this feature is not already enabled - via the `-avoidpartialspends` command line flag because not doing so - would risk using up the "wrong" UTXO for an address reuse case. - (#13756) - -- RPCs which have an `include_watchonly` argument or `includeWatching` option now default to `true` for watch-only - wallets. Affected RPCs are: `getbalance`, `listreceivedbyaddress`, `listreceivedbylabel`, `listtransactions`, - `listsinceblock`, `gettransaction`, `walletcreatefundedpsbt`, and `fundrawtransaction`. (#16383) - -- `listunspent` now returns a "reused" bool for each output if the - wallet flag "avoid_reuse" is enabled. (#13756) - -- `getblockstats` now uses BlockUndo data instead of the transaction - index, making it much faster, no longer dependent on the `-txindex` - configuration option, and functional for all non-pruned blocks. - (#14802) - -- `utxoupdatepsbt` now accepts a `descriptors` parameter that will fill - out input and output scripts and keys when known. P2SH-witness inputs - will be filled in from the UTXO set when a descriptor is provided that - shows they're spending segwit outputs. See the RPC help text for full - details. (#15427) - -- `sendrawtransaction` and `testmempoolaccept` no longer accept a - `allowhighfees` parameter to fail mempool acceptance if the - transaction fee exceeds the value of the configuration option - `-maxtxfee`. Now there is a hardcoded default maximum feerate that - can be changed when calling either RPC using a `maxfeerate` parameter. - (#15620) - -- `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry`, and - `getrawmempool` no longer return a `size` field unless the - configuration option `-deprecatedrpc=size` is used. Instead a new - `vsize` field is returned with the transaction's virtual size - (consistent with other RPCs such as `getrawtransaction`). (#15637) - -- `getwalletinfo` now includes a `scanning` field that is either `false` - (no scanning) or an object with information about the duration and - progress of the wallet's scanning historical blocks for transactions - affecting its balances. (#15730) - -- `gettransaction` now accepts a third (boolean) argument `verbose`. If - set to `true`, a new `decoded` field will be added to the response containing - the decoded transaction. This field is equivalent to RPC `decoderawtransaction`, - or RPC `getrawtransaction` when `verbose` is passed. (#16185, #16866, #16873) - -- `createwallet` accepts a new `passphrase` parameter. If set, this - will create the new wallet encrypted with the given passphrase. If - unset (the default) or set to an empty string, no encryption will be - used. (#16394) - -- `getchaintxstats` RPC now returns the additional key of - `window_final_block_height`. (#16695) - -- `getmempoolentry` now provides a `weight` field containing the - transaction weight as defined in BIP141. (#16647) - -- The `getnetworkinfo` and `getpeerinfo` commands now contain a new field with decoded network service flags. (#16786) - -- `getdescriptorinfo` now returns an additional `checksum` field - containing the checksum for the unmodified descriptor provided by the - user (that is, before the descriptor is normalized for the - `descriptor` field). (#15986) - -- `joinpsbts` now shuffles the order of the inputs and outputs of the resulting - joined PSBT. Previously, inputs and outputs were added in the order PSBTs were - provided. This made it easy to correlate inputs to outputs, representing a - privacy leak. (#16512) - -- `walletcreatefundedpsbt` now signals BIP125 Replace-by-Fee if the - `-walletrbf` configuration option is set to true. (#15911) - -GUI changes ------------ - -- The GUI wallet now provides bech32 addresses by default. The user may change the address type - during invoice generation using a GUI toggle, or the default address - type may be changed with the `-addresstype` configuration option. - (#15711, #16497) - -- In 0.18.0, a `./configure` flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now __disabled__ by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass `--enable-bip70` to `./configure`. (#15584) - -Deprecated or removed configuration options -------------------------------------------- - -- `-mempoolreplacement` is removed, although default node behavior - remains the same. This option previously allowed the user to prevent - the node from accepting or relaying BIP125 transaction replacements. - This is different from the remaining configuration option - `-walletrbf`. (#16171) - -Deprecated or removed RPCs --------------------------- - -- `bumpfee` no longer accepts a `totalFee` option unless the - configuration parameter `deprecatedrpc=totalFee` is specified. This - parameter will be fully removed in a subsequent release. (#15996) - -- `bumpfee` has a new `fee_rate` option as a replacement for the deprecated `totalFee`. (#16727) - -- `generate` is now removed after being deprecated in Bitcoin Core 0.18. - Use the `generatetoaddress` RPC instead. (#15492) - -P2P changes ------------ - -- BIP 61 reject messages were deprecated in v0.18. They are now disabled - by default, but can be enabled by setting the `-enablebip61` command - line option. BIP 61 reject messages will be removed entirely in a - future version of Bitcoin Core. (#14054) - -- To eliminate well-known denial-of-service vectors in Bitcoin Core, - especially for nodes with spinning disks, the default value for the - `-peerbloomfilters` configuration option has been changed to false. - This prevents Bitcoin Core from sending the BIP111 NODE_BLOOM service - flag, accepting BIP37 bloom filters, or serving merkle blocks or - transactions matching a bloom filter. Users who still want to provide - bloom filter support may either set the configuration option to true - to re-enable both BIP111 and BIP37 support or enable just BIP37 - support for specific peers using the updated `-whitelist` and - `-whitebind` configuration options described elsewhere in these - release notes. For the near future, lightweight clients using public - BIP111/BIP37 nodes should still be able to connect to older versions - of Bitcoin Core and nodes that have manually enabled BIP37 support, - but developers of such software should consider migrating to either - using specific BIP37 nodes or an alternative transaction filtering - system. (#16152) - -- By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out. (#15759) - -Miscellaneous CLI Changes -------------------------- - -- The `testnet` field in `bitcoin-cli -getinfo` has been renamed to - `chain` and now returns the current network name as defined in BIP70 - (main, test, regtest). (#15566) - -Low-level changes -================= - -RPC ---- - -- `getblockchaininfo` no longer returns a `bip9_softforks` object. - Instead, information has been moved into the `softforks` object and - an additional `type` field describes how Bitcoin Core determines - whether that soft fork is active (e.g. BIP9 or BIP90). See the RPC - help for details. (#16060) - -- `getblocktemplate` no longer returns a `rules` array containing `CSV` - and `segwit` (the BIP9 deployments that are currently in active - state). (#16060) - -- `getrpcinfo` now returns a `logpath` field with the path to - `debug.log`. (#15483) - -Tests ------ - -- The regression test chain enabled by the `-regtest` command line flag - now requires transactions to not violate standard policy by default. - This is the same default used for mainnet and makes it easier to test - mainnet behavior on regtest. Note that the testnet still allows - non-standard txs by default and that the policy can be locally - adjusted with the `-acceptnonstdtxn` command line flag for both test - chains. (#15891) - -Configuration ------------- - -- A setting specified in the default section but not also specified in a - network-specific section (e.g. testnet) will now produce an error - preventing startup instead of just a warning unless the network is - mainnet. This prevents settings intended for mainnet from being - applied to testnet or regtest. (#15629) - -- On platforms supporting `thread_local`, log lines can be prefixed with - the name of the thread that caused the log. To enable this behavior, - use `-logthreadnames=1`. (#15849) - -Network -------- - -- When fetching a transaction announced by multiple peers, previous versions of - Bitcoin Core would sequentially attempt to download the transaction from each - announcing peer until the transaction is received, in the order that those - peers' announcements were received. In this release, the download logic has - changed to randomize the fetch order across peers and to prefer sending - download requests to outbound peers over inbound peers. This fixes an issue - where inbound peers could prevent a node from getting a transaction. - (#14897, #15834) - -- If a Tor hidden service is being used, Bitcoin Core will be bound to - the standard port 8333 even if a different port is configured for - clearnet connections. This prevents leaking node identity through use - of identical non-default port numbers. (#15651) - -Mempool and transaction relay ------------------------------ - -- Allows one extra single-ancestor transaction per package. Previously, - if a transaction in the mempool had 25 descendants, or it and all of - its descendants were over 101,000 vbytes, any newly-received - transaction that was also a descendant would be ignored. Now, one - extra descendant will be allowed provided it is an immediate - descendant (child) and the child's size is 10,000 vbytes or less. - This makes it possible for two-party contract protocols such as - Lightning Network to give each participant an output they can spend - immediately for Child-Pays-For-Parent (CPFP) fee bumping without - allowing one malicious participant to fill the entire package and thus - prevent the other participant from spending their output. (#15681) - -- Transactions with outputs paying v1 to v16 witness versions (future - segwit versions) are now accepted into the mempool, relayed, and - mined. Attempting to spend those outputs remains forbidden by policy - ("non-standard"). When this change has been widely deployed, wallets - and services can accept any valid bech32 Bitcoin address without - concern that transactions paying future segwit versions will become - stuck in an unconfirmed state. (#15846) - -- Legacy transactions (transactions with no segwit inputs) must now be - sent using the legacy encoding format, enforcing the rule specified in - BIP144. (#14039) - -Wallet ------- - -- When in pruned mode, a rescan that was triggered by an `importwallet`, - `importpubkey`, `importaddress`, or `importprivkey` RPC will only fail - when blocks have been pruned. Previously it would fail when `-prune` - has been set. This change allows setting `-prune` to a high value - (e.g. the disk size) without the calls to any of the import RPCs - failing until the first block is pruned. (#15870) - -- When creating a transaction with a fee above `-maxtxfee` (default 0.1 - BTC), the RPC commands `walletcreatefundedpsbt` and - `fundrawtransaction` will now fail instead of rounding down the fee. - Be aware that the `feeRate` argument is specified in BTC per 1,000 - vbytes, not satoshi per vbyte. (#16257) - -- A new wallet flag `avoid_reuse` has been added (default off). When - enabled, a wallet will distinguish between used and unused addresses, - and default to not use the former in coin selection. When setting - this flag on an existing wallet, rescanning the blockchain is required - to correctly mark previously used destinations. Together with "avoid - partial spends" (added in Bitcoin Core v0.17.0), this can eliminate a - serious privacy issue where a malicious user can track spends by - sending small payments to a previously-paid address that would then - be included with unrelated inputs in future payments. (#13756) - -Build system changes --------------------- - -- Python >=3.5 is now required by all aspects of the project. This - includes the build systems, test framework and linters. The previously - supported minimum (3.4), was EOL in March 2019. (#14954) - -- The minimum supported miniUPnPc API version is set to 10. This keeps - compatibility with Ubuntu 16.04 LTS and Debian 8 `libminiupnpc-dev` - packages. Please note, on Debian this package is still vulnerable to - [CVE-2017-8798](https://security-tracker.debian.org/tracker/CVE-2017-8798) - (in jessie only) and - [CVE-2017-1000494](https://security-tracker.debian.org/tracker/CVE-2017-1000494) - (both in jessie and in stretch). (#15993) - -0.19.0 change log -================= - -### Consensus -- #16128 Delete error-prone CScript constructor only used with FindAndDelete (instagibbs) -- #16060 Bury bip9 deployments (jnewbery) - -### Policy -- #15557 Enhance `bumpfee` to include inputs when targeting a feerate (instagibbs) -- #15846 Make sending to future native witness outputs standard (sipa) - -### Block and transaction handling -- #15632 Remove ResendWalletTransactions from the Validation Interface (jnewbery) -- #14121 Index for BIP 157 block filters (jimpo) -- #15141 Rewrite DoS interface between validation and net_processing (sdaftuar) -- #15880 utils and libraries: Replace deprecated Boost Filesystem functions (hebasto) -- #15971 validation: Add compile-time checking for negative locking requirement in LimitValidationInterfaceQueue (practicalswift) -- #15999 init: Remove dead code in LoadChainTip (MarcoFalke) -- #16015 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift) -- #16056 remove unused magic number from consistency check (instagibbs) -- #16171 Remove -mempoolreplacement to prevent needless block prop slowness (TheBlueMatt) -- #15894 Remove duplicated "Error: " prefix in logs (hebasto) -- #14193 validation: Add missing mempool locks (MarcoFalke) -- #15681 Allow one extra single-ancestor transaction per package (TheBlueMatt) -- #15305 [validation] Crash if disconnecting a block fails (sdaftuar) -- #16471 log correct messages when CPFP fails (jnewbery) -- #16433 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke) -- #13868 Remove unused fScriptChecks parameter from CheckInputs (Empact) -- #16421 Conservatively accept RBF bumps bumping one tx at the package limits (TheBlueMatt) -- #16854 Prevent UpdateTip log message from being broken up (stevenroose) -- #16956 validation: Make GetWitnessCommitmentIndex public (MarcoFalke) -- #16713 Ignore old versionbit activations to avoid 'unknown softforks' warning (jnewbery) -- #17002 chainparams: Bump assumed chain params (MarcoFalke) -- #16849 Fix block index inconsistency in InvalidateBlock() (sdaftuar) - -### P2P protocol and network code -- #15597 Generate log entry when blocks messages are received unexpectedly (pstratem) -- #15654 Remove unused unsanitized user agent string CNode::strSubVer (MarcoFalke) -- #15689 netaddress: Update CNetAddr for ORCHIDv2 (dongcarl) -- #15834 Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map (sdaftuar) -- #15651 torcontrol: Use the default/standard network port for Tor hidden services, even if the internal port is set differently (luke-jr) -- #16188 Document what happens to getdata of unknown type (MarcoFalke) -- #15649 Add ChaCha20Poly1305@Bitcoin AEAD (jonasschnelli) -- #16152 Disable bloom filtering by default (TheBlueMatt) -- #15993 Drop support of the insecure miniUPnPc versions (hebasto) -- #16197 Use mockable time for tx download (MarcoFalke) -- #16248 Make whitebind/whitelist permissions more flexible (NicolasDorier) -- #16618 [Fix] Allow connection of a noban banned peer (NicolasDorier) -- #16631 Restore default whitelistrelay to true (NicolasDorier) -- #15759 Add 2 outbound block-relay-only connections (sdaftuar) -- #15558 Don't query all DNS seeds at once (sipa) -- #16999 0.19 seeds update (laanwj) - -### Wallet -- #15288 Remove wallet -> node global function calls (ryanofsky) -- #15491 Improve log output for errors during load (gwillen) -- #13541 wallet/rpc: sendrawtransaction maxfeerate (kallewoof) -- #15680 Remove resendwallettransactions RPC method (jnewbery) -- #15508 Refactor analyzepsbt for use outside RPC code (gwillen) -- #15747 Remove plethora of Get*Balance (MarcoFalke) -- #15728 Refactor relay transactions (jnewbery) -- #15639 bitcoin-wallet tool: Drop libbitcoin_server.a dependency (ryanofsky) -- #15853 Remove unused import checkpoints.h (MarcoFalke) -- #15780 add cachable amounts for caching credit/debit values (kallewoof) -- #15778 Move maxtxfee from node to wallet (jnewbery) -- #15901 log on rescan completion (andrewtoth) -- #15917 Avoid logging no_such_file_or_directory error (promag) -- #15452 Replace CScriptID and CKeyID in CTxDestination with dedicated types (instagibbs) -- #15870 Only fail rescan when blocks have actually been pruned (MarcoFalke) -- #15006 Add option to create an encrypted wallet (achow101) -- #16001 Give WalletModel::UnlockContext move semantics (sipa) -- #15741 Batch write imported stuff in importmulti (achow101) -- #16144 do not encrypt wallets with disabled private keys (mrwhythat) -- #15024 Allow specific private keys to be derived from descriptor (meshcollider) -- #13756 "avoid_reuse" wallet flag for improved privacy (kallewoof) -- #16226 Move ismine to the wallet module (achow101) -- #16239 wallet/rpc: follow-up clean-up/fixes to avoid_reuse (kallewoof) -- #16286 refactoring: wallet: Fix GCC 7.4.0 warning (hebasto) -- #16257 abort when attempting to fund a transaction above -maxtxfee (Sjors) -- #16237 Have the wallet give out destinations instead of keys (achow101) -- #16322 Fix -maxtxfee check by moving it to CWallet::CreateTransaction (promag) -- #16361 Remove redundant pre-TopUpKeypool check (instagibbs) -- #16244 Move wallet creation out of the createwallet rpc into its own function (achow101) -- #16227 Refactor CWallet's inheritance chain (achow101) -- #16208 Consume ReserveDestination on successful CreateTransaction (instagibbs) -- #16301 Use CWallet::Import* functions in all import* RPCs (achow101) -- #16402 Remove wallet settings from chainparams (MarcoFalke) -- #16415 Get rid of PendingWalletTx class (ryanofsky) -- #15588 Log the actual wallet file version and no longer publicly expose the "version" record (achow101) -- #16399 Improve wallet creation (fjahr) -- #16475 Enumerate walletdb keys (MarcoFalke) -- #15709 Do not add "setting" key as unknown (Bushstar) -- #16451 Remove CMerkleTx (jnewbery) -- #15906 Move min_depth and max_depth to coin control (amitiuttarwar) -- #16502 Drop unused OldKey (promag) -- #16394 Allow createwallet to take empty passwords to make unencrypted wallets (achow101) -- #15911 Use wallet RBF default for walletcreatefundedpsbt (Sjors) -- #16503 Remove p2pEnabled from Chain interface (ariard) -- #16557 restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (jnewbery) -- #14934 Descriptor expansion cache clarifications (Sjors) -- #16383 rpcwallet: default include_watchonly to true for watchonly wallets (jb55) -- #16542 Return more specific errors about invalid descriptors (achow101) -- #16572 Fix Char as Bool in Wallet (JeremyRubin) -- #16753 extract PubKey from P2PK script with Solver (theStack) -- #16716 Use wallet name instead of pointer on unload/release (promag) -- #16185 gettransaction: add an argument to decode the transaction (darosior) -- #16745 Translate all initErrors in CreateWalletFromFile (MarcoFalke) -- #16792 Assert that the HRP is lowercase in Bech32::Encode (meshcollider) -- #16624 encapsulate transactions state (ariard) -- #16830 Cleanup walletinitinterface.h (hebasto) -- #16796 Fix segfault in CreateWalletFromFile (MarcoFalke) -- #16866 Rename 'decode' argument in gettransaction method to 'verbose' (jnewbery) -- #16727 Explicit feerate for bumpfee (instagibbs) -- #16609 descriptor: fix missed m_script_arg arg renaming in #14934 (fanquake) - -### RPC and other APIs -- #15492 remove deprecated generate method (Sjors) -- #15566 cli: Replace testnet with chain and return network name as per bip70 (fanquake) -- #15564 cli: Remove duplicate wallet fields from -getinfo (fanquake) -- #15642 Remove deprecated rpc warnings (jnewbery) -- #15637 Rename size to vsize in mempool related calls (fanquake) -- #15620 Uncouple non-wallet rpcs from maxTxFee global (MarcoFalke) -- #15616 Clarify decodescript RPCResult doc (MarcoFalke) -- #15669 Fix help text for signtransactionwithXXX (torkelrogstad) -- #15596 Ignore sendmany::minconf as dummy value (MarcoFalke) -- #15755 remove unused var in rawtransaction.cpp (Bushstar) -- #15746 RPCHelpMan: Always name dictionary keys (MarcoFalke) -- #15748 remove dead mining code (jnewbery) -- #15751 Speed up deriveaddresses for large ranges (sipa) -- #15770 Validate maxfeerate with AmountFromValue (promag) -- #15474 rest/rpc: Make mempoolinfo atomic (promag) -- #15463 Speedup getaddressesbylabel (promag) -- #15784 Remove dependency on interfaces::Chain in SignTransaction (ariard) -- #15323 Expose g_is_mempool_loaded via getmempoolinfo (Empact) -- #15932 Serialize in getblock without cs_main (MarcoFalke) -- #15930 Add balances RPC (MarcoFalke) -- #15730 Show scanning details in getwalletinfo (promag) -- #14802 faster getblockstats using BlockUndo data (FelixWeis) -- #14984 Speedup getrawmempool when verbose=true (promag) -- #16071 Hint for importmulti in help output of importpubkey and importaddress (kristapsk) -- #16063 Mention getwalletinfo where a rescan is triggered (promag) -- #16024 deriveaddresses: Correction of descriptor checksum in RPC example (ccapo) -- #16217 getrawtransaction: inform about blockhash argument when lookup fails (darosior) -- #15427 Add support for descriptors to utxoupdatepsbt (sipa) -- #16262 Allow shutdown while in generateblocks (pstratem) -- #15483 Adding a 'logpath' entry to getrpcinfo (darosior) -- #16325 Clarify that block count means height excl genesis (MarcoFalke) -- #16326 add new utxoupdatepsbt arguments to the CRPCCommand and CPRCCvertParam tables (jnewbery) -- #16332 Add logpath description for getrpcinfo (instagibbs) -- #16240 JSONRPCRequest-aware RPCHelpMan (kallewoof) -- #15996 Deprecate totalfee argument in `bumpfee` (instagibbs) -- #16467 sendrawtransaction help privacy note (jonatack) -- #16596 Fix getblocktemplate CLI example (emilengler) -- #15986 Add checksum to getdescriptorinfo (sipa) -- #16647 add weight to getmempoolentry output (fanquake) -- #16695 Add window final block height to getchaintxstats (leto) -- #16798 Refactor rawtransaction_util's SignTransaction to separate prevtx parsing (achow101) -- #16285 Improve scantxoutset response and help message (promag) -- #16725 Don't show addresses or P2PK in decoderawtransaction (NicolasDorier) -- #16787 Human readable network services (darosior) -- #16251 Improve signrawtransaction error reporting (ajtowns) -- #16873 fix regression in gettransaction (jonatack) -- #16512 Shuffle inputs and outputs after joining psbts (achow101) -- #16521 Use the default maxfeerate value as BTC/kB (Remagpie) -- #16817 Fix casing in getblockchaininfo to be inline with other fields (dangershony) -- #17131 fix -rpcclienttimeout 0 option (fjahr) -- #17249 Add missing deque include to fix build (jbeich) - -### GUI -- #15464 Drop unused return values in WalletFrame (promag) -- #15614 Defer removeAndDeleteWallet when no modal widget is active (promag) -- #15711 Generate bech32 addresses by default (MarcoFalke) -- #15829 update request payment button text and tab description (fanquake) -- #15874 Resolve the qt/guiutil <-> qt/optionsmodel CD (251Labs) -- #15371 Uppercase bech32 addresses in qr codes (benthecarman) -- #15928 Move QRImageWidget to its own file-pair (luke-jr) -- #16113 move coin control "OK" to the right hand side of the dialog (fanquake) -- #16090 Add vertical spacer to peer detail widget (JosuGZ) -- #15886 qt, wallet: Revamp SendConfirmationDialog (hebasto) -- #16263 Use qInfo() if no error occurs (hebasto) -- #16153 Add antialiasing to traffic graph widget (JosuGZ) -- #16350 Remove unused guard (hebasto) -- #16106 Sort wallets in open wallet menu (promag) -- #16291 Stop translating PACKAGE_NAME (MarcoFalke) -- #16380 Remove unused bits from the service flags enum (MarcoFalke) -- #16379 Fix autostart filenames on Linux for testnet/regtest (hebasto) -- #16366 init: Use InitError for all errors in bitcoind/qt (MarcoFalke) -- #16436 Do not create payment server if -disablewallet option provided (hebasto) -- #16514 Remove unused RPCConsole::tabFocus (promag) -- #16497 Generate bech32 addresses by default (take 2, fixup) (MarcoFalke) -- #16349 Remove redundant WalletController::addWallet slot (hebasto) -- #16578 Do not pass in command line arguments to QApplication (achow101) -- #16612 Remove menu icons (laanwj) -- #16677 remove unused PlatformStyle::TextColorIcon (fanquake) -- #16694 Ensure transaction send error is always visible (fanquake) -- #14879 Add warning messages to the debug window (hebasto) -- #16708 Replace obsolete functions of QSslSocket (hebasto) -- #16701 Replace functions deprecated in Qt 5.13 (hebasto) -- #16706 Replace deprecated QSignalMapper by lambda expressions (hebasto) -- #16707 Remove obsolete QModelIndex::child() (hebasto) -- #16758 Replace QFontMetrics::width() with TextWidth() (hebasto) -- #16760 Change uninstall icon on Windows (GChuf) -- #16720 Replace objc_msgSend() function calls with the native Objective-C syntax (hebasto) -- #16788 Update transifex slug for 0.19 (laanwj) -- #15450 Create wallet menu option (achow101) -- #16735 Remove unused menu items for Windows and Linux (GChuf) -- #16826 Do additional character escaping for wallet names and address labels (achow101) -- #15529 Add Qt programs to msvc build (updated, no code changes) (sipsorcery) -- #16714 add prune to intro screen with smart default (Sjors) -- #16858 advise users not to switch wallets when opening a BIP70 URI (jameshilliard) -- #16822 Create wallet menu option follow-ups (jonatack) -- #16882 Re-generate translations before 0.19.0 (MarcoFalke) -- #16928 Rename address checkbox back to bech32 (MarcoFalke) -- #16837 Fix {C{,XX},LD}FLAGS pickup (dongcarl) -- #16971 Change default size of intro frame (emilengler) -- #16988 Periodic translations update (laanwj) -- #16852 When BIP70 is disabled, get PaymentRequest merchant using string search (achow101) -- #16952 make sure to update the UI when deleting a transaction (jonasschnelli) -- #17031 Prevent processing duplicate payment requests (promag) -- #17135 Make polling in ClientModel asynchronous (promag) -- #17120 Fix start timer from non QThread (promag) -- #17257 disable font antialiasing for QR image address (fanquake) - -### Build system -- #14954 Require python 3.5 (MarcoFalke) -- #15580 native_protobuf: avoid system zlib (dongcarl) -- #15601 Switch to python3 (take 3) (MarcoFalke) -- #15581 Make less assumptions about build env (dongcarl) -- #14853 latest RapidCheck (fanquake) -- #15446 Improve depends debuggability (dongcarl) -- #13788 Fix --disable-asm for newer assembly checks/code (luke-jr) -- #12051 add missing debian contrib file to tarball (puchu) -- #15919 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift) -- #15978 .gitignore: Don't ignore depends patches (dongcarl) -- #15939 gitian: Remove windows 32 bit build (MarcoFalke) -- #15239 scripts and tools: Move non-linux build source tarballs to "bitcoin-binaries/version" directory (hebasto) -- #14047 Add HKDF_HMAC256_L32 and method to negate a private key (jonasschnelli) -- #16051 add patch to common dependencies (fanquake) -- #16049 switch to secure download of all dependencies (Kemu) -- #16059 configure: Fix thread_local detection (dongcarl) -- #16089 add ability to skip building zeromq (fanquake) -- #15844 Purge libtool archives (dongcarl) -- #15461 update to Boost 1.70 (Sjors) -- #16141 remove GZIP export from gitian descriptors (fanquake) -- #16235 Cleaned up and consolidated msbuild files (no code changes) (sipsorcery) -- #16246 MSVC: Fix error in debug mode (Fix #16245) (NicolasDorier) -- #16183 xtrans: Configure flags cleanup (dongcarl) -- #16258 [MSVC]: Create the config.ini as part of bitcoind build (NicolasDorier) -- #16271 remove -Wall from rapidcheck build flags (fanquake) -- #16309 [MSVC] allow user level project customization (NicolasDorier) -- #16308 [MSVC] Copy build output to src/ automatically after build (NicolasDorier) -- #15457 Check std::system for -[alert|block|wallet]notify (Sjors) -- #16344 use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors) -- #16352 prune dbus from depends (fanquake) -- #16270 expat 2.2.7 (fanquake) -- #16408 Prune X packages (dongcarl) -- #16386 disable unused Qt features (fanquake) -- #16424 Treat -Wswitch as error when --enable-werror (MarcoFalke) -- #16441 remove qt libjpeg check from bitcoin_qt.m4 (fanquake) -- #16434 Specify AM_CPPFLAGS for ZMQ (domob1812) -- #16534 add Qt Creator Makefile.am.user to .gitignore (Bushstar) -- #16573 disable building libsecp256k1 benchmarks (fanquake) -- #16533 disable libxcb extensions (fanquake) -- #16589 Remove unused src/obj-test folder (MarcoFalke) -- #16435 autoconf: Sane `--enable-debug` defaults (dongcarl) -- #16622 echo property tests status during build (jonatack) -- #16611 Remove src/obj directory from repository (laanwj) -- #16371 ignore macOS make deploy artefacts & add them to clean-local (fanquake) -- #16654 build: update RapidCheck Makefile (jonatack) -- #16370 cleanup package configure flags (fanquake) -- #16746 msbuild: Ignore linker warning (sipsorcery) -- #16750 msbuild: adds bench_bitcoin to auto generated project files (sipsorcery) -- #16810 guix: Remove ssp spec file hack (dongcarl) -- #16477 skip deploying plugins we dont use in macdeployqtplus (fanquake) -- #16413 Bump QT to LTS release 5.9.8 (THETCR) -- #15584 disable BIP70 support by default (fanquake) -- #16871 make building protobuf optional in depends (fanquake) -- #16879 remove redundant sed patching (fanquake) -- #16809 zlib: Move toolchain options to configure (dongcarl) -- #15146 Solve SmartOS FD_ZERO build issue (Empact) -- #16870 update boost macros to latest upstream for improved error reporting (fanquake) -- #16982 Factor out qt translations from build system (laanwj) -- #16926 Add OpenSSL termios fix for musl libc (nmarley) -- #16927 Refresh ZeroMQ 4.3.1 patch (nmarley) -- #17005 Qt version appears only if GUI is being built (ch4ot1c) -- #16468 Exclude depends/Makefile in .gitignore (promag) - -### Tests and QA -- #15296 Add script checking for deterministic line coverage in unit tests (practicalswift) -- #15338 ci: Build and run tests once on freebsd (MarcoFalke) -- #15479 Add .style.yapf (MarcoFalke) -- #15534 lint-format-strings: open files sequentially (fix for OS X) (gwillen) -- #15504 fuzz: Link BasicTestingSetup (shared with unit tests) (MarcoFalke) -- #15473 bench: Benchmark mempooltojson (MarcoFalke) -- #15466 Print remaining jobs in test_runner.py (stevenroose) -- #15631 mininode: Clearer error message on invalid magic bytes (MarcoFalke) -- #15255 Remove travis_wait from lint script (gkrizek) -- #15686 make pruning test faster (jnewbery) -- #15533 .style.yapf: Set column_limit=160 (MarcoFalke) -- #15660 Overhaul p2p_compactblocks.py (sdaftuar) -- #15495 Add regtests for HTTP status codes (domob1812) -- #15772 Properly log named args in authproxy (MarcoFalke) -- #15771 Prevent concurrency issues reading .cookie file (promag) -- #15693 travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke) -- #15629 init: Throw error when network specific config is ignored (MarcoFalke) -- #15773 Add BitcoinTestFramework::sync_* methods (MarcoFalke) -- #15797 travis: Bump second timeout to 33 minutes, add rationale (MarcoFalke) -- #15788 Unify testing setups for fuzz, bench, and unit tests (MarcoFalke) -- #15352 Reduce noise level in test_bitcoin output (practicalswift) -- #15779 Add wallet_balance benchmark (MarcoFalke) -- #15843 fix outdated include in blockfilter_index_tests (jamesob) -- #15866 Add missing syncwithvalidationinterfacequeue to wallet_import_rescan (MarcoFalke) -- #15697 Make swap_magic_bytes in p2p_invalid_messages atomic (MarcoFalke) -- #15895 Avoid re-reading config.ini unnecessarily (luke-jr) -- #15896 feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME in messages rather than hardcoding Bitcoin Core (luke-jr) -- #15897 QA/mininode: Send all headers upfront in send_blocks_and_test to avoid sending an unconnected one (luke-jr) -- #15696 test_runner: Move feature_pruning to base tests (MarcoFalke) -- #15869 Add settings merge test to prevent regresssions (ryanofsky) -- #15758 Add further tests to wallet_balance (MarcoFalke) -- #15841 combine_logs: append node stderr and stdout if it exists (MarcoFalke) -- #15949 test_runner: Move pruning back to extended (MarcoFalke) -- #15927 log thread names by default in functional tests (jnewbery) -- #15664 change default Python block serialization to witness (instagibbs) -- #15988 Add test for ArgsManager::GetChainName (ryanofsky) -- #15963 Make random seed logged and settable (jnewbery) -- #15943 Fail if RPC has been added without tests (MarcoFalke) -- #16036 travis: Run all lint scripts even if one fails (scravy) -- #13555 parameterize adjustment period in versionbits_computeblockversion (JBaczuk) -- #16079 wallet_balance.py: Prevent edge cases (stevenroose) -- #16078 replace tx hash with txid in rawtransaction test (LongShao007) -- #16042 Bump MAX_NODES to 12 (MarcoFalke) -- #16124 Limit Python linting to files in the repo (practicalswift) -- #16143 Mark unit test blockfilter_index_initial_sync as non-deterministic (practicalswift) -- #16214 travis: Fix caching issues (MarcoFalke) -- #15982 Make msg_block a witness block (MarcoFalke) -- #16225 Make coins_tests/updatecoins_simulation_test deterministic (practicalswift) -- #16236 fuzz: Log output even if fuzzer failed (MarcoFalke) -- #15520 cirrus: Run extended test feature_pruning (MarcoFalke) -- #16234 Add test for unknown args (MarcoFalke) -- #16207 stop generating lcov coverage when functional tests fail (asood123) -- #16252 Log to debug.log in all unit tests (MarcoFalke) -- #16289 Add missing ECC_Stop() in GUI rpcnestedtests.cpp (jonasschnelli) -- #16278 Remove unused includes (practicalswift) -- #16302 Add missing syncwithvalidationinterfacequeue to wallet_balance test (MarcoFalke) -- #15538 wallet_bumpfee.py: Make sure coin selection produces change (instagibbs) -- #16294 Create at most one testing setup (MarcoFalke) -- #16299 bench: Move generated data to a dedicated translation unit (promag) -- #16329 Add tests for getblockchaininfo.softforks (MarcoFalke) -- #15687 tool wallet test coverage for unexpected writes to wallet (jonatack) -- #16267 bench: Benchmark blocktojson (fanatid) -- #14505 Add linter to make sure single parameter constructors are marked explicit (practicalswift) -- #16338 Disable other targets when enable-fuzz is set (qmma70) -- #16334 rpc_users: Also test rpcauth.py with password (dongcarl) -- #15282 Replace hard-coded hex tx with class in test framework (stevenroose) -- #16390 Add --filter option to test_runner.py (promag) -- #15891 Require standard txs in regtest by default (MarcoFalke) -- #16374 Enable passing wildcard test names to test runner from root (jonatack) -- #16420 Fix race condition in wallet_encryption test (jonasschnelli) -- #16422 remove redundant setup in addrman_tests (zenosage) -- #16438 travis: Print memory and number of cpus (MarcoFalke) -- #16445 Skip flaky p2p_invalid_messages test on macOS (fjahr) -- #16459 Fix race condition in example_test.py (sdaftuar) -- #16464 Ensure we don't generate a too-big block in p2sh sigops test (sdaftuar) -- #16491 fix deprecated log.warn in feature_dbcrash test (jonatack) -- #15134 Switch one of the Travis jobs to an unsigned char environment (-funsigned-char) (practicalswift) -- #16505 Changes verbosity of msbuild from quiet to normal in the appveyor script (sipsorcery) -- #16293 Make test cases separate functions (MarcoFalke) -- #16470 Fail early on disconnect in mininode.wait_for_* (MarcoFalke) -- #16277 Suppress output in test_bitcoin for expected errors (gertjaap) -- #16493 Fix test failures (MarcoFalke) -- #16538 Add missing sync_blocks to feature_pruning (MarcoFalke) -- #16509 Adapt test framework for chains other than "regtest" (MarcoFalke) -- #16363 Add test for BIP30 duplicate tx (MarcoFalke) -- #16535 Explain why -whitelist is used in feature_fee_estimation (MarcoFalke) -- #16554 only include and use OpenSSL where it's actually needed (BIP70) (fanquake) -- #16598 Remove confusing hash256 function in util (elichai) -- #16595 travis: Use extended 90 minute timeout when available (MarcoFalke) -- #16563 Add unit test for AddTimeData (mzumsande) -- #16561 Use colors and dots in test_runner.py output only if standard output is a terminal (practicalswift) -- #16465 Test p2sh-witness and bech32 in wallet_import_rescan (MarcoFalke) -- #16582 Rework ci (Use travis only as fallback env) (MarcoFalke) -- #16633 travis: Fix test_runner.py timeouts (MarcoFalke) -- #16646 Run tests with UPnP disabled (fanquake) -- #16623 ci: Add environment files for all settings (MarcoFalke) -- #16656 fix rpc_setban.py race (jonasschnelli) -- #16570 Make descriptor tests deterministic (davereikher) -- #16404 Test ZMQ notification after chain reorg (promag) -- #16726 Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values (practicalswift) -- #16739 ci: Pass down $makejobs to test_runner.py, other improvements (MarcoFalke) -- #16767 Check for codespell in lint-spelling.sh (kristapsk) -- #16768 Make lint-includes.sh work from any directory (kristapsk) -- #15257 Scripts and tools: Bump flake8 to 3.7.8 (Empact) -- #16804 Remove unused try-block in assert_debug_log (MarcoFalke) -- #16850 `servicesnames` field in `getpeerinfo` and `getnetworkinfo` (darosior) -- #16551 Test that low difficulty chain fork is rejected (MarcoFalke) -- #16737 Establish only one connection between nodes in rpc_invalidateblock (MarcoFalke) -- #16845 Add notes on how to generate data/wallets/high_minversion (MarcoFalke) -- #16888 Bump timeouts in slow running tests (MarcoFalke) -- #16864 Add python bech32 impl round-trip test (instagibbs) -- #16865 add some unit tests for merkle.cpp (soroosh-sdi) -- #14696 Add explicit references to related CVE's in p2p_invalid_block test (lucash-dev) -- #16907 lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke) -- #16898 Remove connect_nodes_bi (MarcoFalke) -- #16917 Move common function assert_approx() into util.py (fridokus) -- #16921 Add information on how to add Vulture suppressions (practicalswift) -- #16920 Fix extra_args in wallet_import_rescan.py (MarcoFalke) -- #16918 Make PORT_MIN in test runner configurable (MarcoFalke) -- #16941 travis: Disable feature_block in tsan run due to oom (MarcoFalke) -- #16929 follow-up to rpc: default maxfeerate value as BTC/kB (jonatack) -- #16959 ci: Set $host before setting fallback values (MarcoFalke) -- #16961 Remove python dead code linter (laanwj) -- #16931 add unittests for CheckProofOfWork (soroosh-sdi) -- #16991 Fix service flag comparison check in rpc_net test (luke-jr) (laanwj) -- #16987 Correct docstring param name (jbampton) -- #17015 Explain QT_QPA_PLATFORM for gui tests (MarcoFalke) -- #17006 Enable UBSan for Travis fuzzing job (practicalswift) -- #17086 Fix fs_tests for unknown locales (carnhofdaki) -- #15903 appveyor: Write @PACKAGE_NAME@ to config (MarcoFalke) -- #16742 test: add executable flag for wallet_watchonly.py (theStack) -- #16740 qa: Relax so that the subscriber is ready before publishing zmq messages (#16740) - -### Miscellaneous -- #15335 Fix lack of warning of unrecognized section names (AkioNak) -- #15528 contrib: Bump gitian descriptors for 0.19 (MarcoFalke) -- #15609 scripts and tools: Set 'distro' explicitly (hebasto) -- #15519 Add Poly1305 implementation (jonasschnelli) -- #15643 contrib: Gh-merge: include acks in merge commit (MarcoFalke) -- #15838 scripts and tools: Fetch missing review comments in github-merge.py (nkostoulas) -- #15920 lint: Check that all wallet args are hidden (MarcoFalke) -- #15849 Thread names in logs and deadlock debug tools (jamesob) -- #15650 Handle the result of posix_fallocate system call (lucayepa) -- #15766 scripts and tools: Upgrade gitian image before signing (hebasto) -- #15512 Add ChaCha20 encryption option (XOR) (jonasschnelli) -- #15968 Fix portability issue with pthreads (grim-trigger) -- #15970 Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL (orientye) -- #15863 scripts and tools: Ensure repos are up-to-date in gitian-build.py (hebasto) -- #15224 Add RNG strengthening (10ms once every minute) (sipa) -- #15840 Contrib scripts: Filter IPv6 by ASN (abitfan) -- #13998 Scripts and tools: gitian-build.py improvements and corrections (hebasto) -- #15236 scripts and tools: Make --setup command independent (hebasto) -- #16114 contrib: Add curl as a required program in gitian-build.py (fanquake) -- #16046 util: Add type safe gettime (MarcoFalke) -- #15703 Update secp256k1 subtree to latest upstream (sipa) -- #16086 contrib: Use newer config.guess & config.sub in install_db4.sh (fanquake) -- #16130 Don't GPG sign intermediate commits with github-merge tool (stevenroose) -- #16162 scripts: Add key for michael ford (fanquake) to trusted keys list (fanquake) -- #16201 devtools: Always use unabbreviated commit IDs in github-merge.py (laanwj) -- #16112 util: Log early messages (MarcoFalke) -- #16223 devtools: Fetch and display ACKs at sign-off time in github-merge (laanwj) -- #16300 util: Explain why the path is cached (MarcoFalke) -- #16314 scripts and tools: Update copyright_header.py script (hebasto) -- #16158 Fix logic of memory_cleanse() on MSVC and clean up docs (real-or-random) -- #14734 fix an undefined behavior in uint::SetHex (kazcw) -- #16327 scripts and tools: Update ShellCheck linter (hebasto) -- #15277 contrib: Enable building in guix containers (dongcarl) -- #16362 Add bilingual_str type (hebasto) -- #16481 logs: add missing space (harding) -- #16581 sipsorcery gitian key (sipsorcery) -- #16566 util: Refactor upper/lowercase functions (kallewoof) -- #16620 util: Move resolveerrmsg to util/error (MarcoFalke) -- #16625 scripts: Remove github-merge.py (fanquake) -- #15864 Fix datadir handling (hebasto) -- #16670 util: Add join helper to join a list of strings (MarcoFalke) -- #16665 scripts: Move update-translations.py to maintainer-tools repo (fanquake) -- #16730 Support serialization of `std::vector` (sipa) -- #16556 Fix systemd service file configuration directory setup (setpill) -- #15615 Add log output during initial header sync (jonasschnelli) -- #16774 Avoid unnecessary "Synchronizing blockheaders" log messages (jonasschnelli) -- #16489 log: harmonize bitcoind logging (jonatack) -- #16577 util: Cbufferedfile fixes and unit test (LarryRuane) -- #16984 util: Make thread names shorter (hebasto) -- #17038 Don't rename main thread at process level (laanwj) -- #17184 util: Filter out macos process serial number (hebasto) -- #17095 util: Filter control characters out of log messages (laanwj) -- #17085 init: Change fallback locale to C.UTF-8 (laanwj) -- #16957 9% less memory: make SaltedOutpointHasher noexcept (martinus) - -### Documentation -- #15514 Update Transifex links (fanquake) -- #15513 add "sections" info to example bitcoin.conf (fanquake) -- #15530 Move wallet lock annotations to header (MarcoFalke) -- #15562 remove duplicate clone step in build-windows.md (fanquake) -- #15565 remove release note fragments (fanquake) -- #15444 Additional productivity tips (Sjors) -- #15577 Enable TLS in link to chris.beams.io (JeremyRand) -- #15604 release note for disabling reject messages by default (jnewbery) -- #15611 Add Gitian key for droark (droark) -- #15626 Update ACK description in CONTRIBUTING.md (jonatack) -- #15603 Add more tips to productivity.md (gwillen) -- #15683 Comment for seemingly duplicate LIBBITCOIN_SERVER (Bushstar) -- #15685 rpc-mining: Clarify error messages (MarcoFalke) -- #15760 Clarify sendrawtransaction::maxfeerate==0 help (MarcoFalke) -- #15659 fix findFork comment (r8921039) -- #15718 Improve netaddress comments (dongcarl) -- #15833 remove out-of-date comment on pay-to-witness support (r8921039) -- #15821 Remove upgrade note in release notes from EOL versions (MarcoFalke) -- #15267 explain AcceptToMemoryPoolWorker's coins_to_uncache (jamesob) -- #15887 Align code example style with clang-format (hebasto) -- #15877 Fix -dustrelayfee= argument docs grammar (keepkeyjon) -- #15908 Align MSVC build options with Linux build ones (hebasto) -- #15941 Add historical release notes for 0.18.0 (laanwj) -- #15794 Clarify PR guidelines w/re documentation (dongcarl) -- #15607 Release process updates (jonatack) -- #14364 Clarify -blocksdir usage (sangaman) -- #15777 Add doxygen comments for keypool classes (jnewbery) -- #15820 Add productivity notes for dummy rebases (dongcarl) -- #15922 Explain how to pass in non-fundamental types into functions (MarcoFalke) -- #16080 build/doc: update bitcoin_config.h packages, release process (jonatack) -- #16047 analyzepsbt description in doc/psbt.md (jonatack) -- #16039 add release note for 14954 (fanquake) -- #16139 Add riscv64 to outputs list in release-process.md (JeremyRand) -- #16140 create security policy (narula) -- #16164 update release process for SECURITY.md (jonatack) -- #16213 Remove explicit mention of versions from SECURITY.md (MarcoFalke) -- #16186 doc/lint: Fix spelling errors identified by codespell 1.15.0 (Empact) -- #16149 Rework section on ACK in CONTRIBUTING.md (MarcoFalke) -- #16196 Add release notes for 14897 & 15834 (MarcoFalke) -- #16241 add rapidcheck to vcpkg install list (fanquake) -- #16243 Remove travis badge from readme (MarcoFalke) -- #16256 remove orphaned header in developer notes (jonatack) -- #15964 Improve build-osx document formatting (giulio92) -- #16313 Fix broken link in doc/build-osx.md (jonatack) -- #16330 Use placeholder instead of key expiration date (hebasto) -- #16339 add reduce-memory.md (fanquake) -- #16347 Include static members in Doxygen (dongcarl) -- #15824 Improve netbase comments (dongcarl) -- #16430 Update bips 35, 37 and 111 status (MarcoFalke) -- #16455 Remove downgrading warning in release notes, per 0.18 branch (MarcoFalke) -- #16484 update labels in CONTRIBUTING.md (MarcoFalke) -- #16483 update Python command in msvc readme (sipsorcery) -- #16504 Add release note for the deprecated totalFee option of bumpfee (promag) -- #16448 add note on precedence of options in bitcoin.conf (fanquake) -- #16536 Update and extend benchmarking.md (ariard) -- #16530 Fix grammar and punctuation in developer notes (Tech1k) -- #16574 Add historical release notes for 0.18.1 (laanwj) -- #16585 Update Markdown syntax for bdb packages (emilengler) -- #16586 Mention other ways to conserve memory on compilation (MarcoFalke) -- #16605 Add missing contributor to 0.18.1 release notes (meshcollider) -- #16615 Fix typos in COPYRIGHT (gapeman) -- #16626 Fix spelling error chache -> cache (nilswloewen) -- #16587 Improve versionbits.h documentation (ariard) -- #16643 Add ZMQ dependencies to the Fedora build instructions (hebasto) -- #16634 Refer in rpcbind doc to the manpage (MarcoFalke) -- #16555 mention whitelist is inbound, and applies to blocksonly (Sjors) -- #16645 initial RapidCheck property-based testing documentation (jonatack) -- #16691 improve depends prefix documentation (fanquake) -- #16629 Add documentation for the new whitelist permissions (NicolasDorier) -- #16723 Update labels in CONTRIBUTING.md (hebasto) -- #16461 Tidy up shadowing section (promag) -- #16621 add default bitcoin.conf locations (GChuf) -- #16752 Delete stale URL in test README (michaelfolkson) -- #14862 Declare BLOCK_VALID_HEADER reserved (MarcoFalke) -- #16806 Add issue templates for bug and feature request (MarcoFalke) -- #16857 Elaborate need to re-login on Debian-based after usermod for Tor group (clashicly) -- #16863 Add a missing closing parenthesis in the bitcoin-wallet's help (darosior) -- #16757 CChainState return values (MarcoFalke) -- #16847 add comments clarifying how local services are advertised (jamesob) -- #16812 Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in (ch4ot1c) -- #16885 Update tx-size-small comment with relevant CVE disclosure (instagibbs) -- #16900 Fix doxygen comment for SignTransaction in rpc/rawtransaction_util (MarcoFalke) -- #16914 Update homebrew instruction for doxygen (Sjors) -- #16912 Remove Doxygen intro from src/bitcoind.cpp (ch4ot1c) -- #16960 replace outdated OpenSSL comment in test README (fanquake) -- #16968 Remove MSVC update step from translation process (laanwj) -- #16953 Improve test READMEs (fjahr) -- #16962 Put PR template in comments (laanwj) -- #16397 Clarify includeWatching for fundrawtransaction (stevenroose) -- #15459 add how to calculate blockchain and chainstate size variables to release process (marcoagner) -- #16997 Update bips.md for 0.19 (laanwj) -- #17001 Remove mention of renamed mapBlocksUnlinked (MarcoFalke) -- #17014 Consolidate release notes before 0.19.0 (move-only) (MarcoFalke) -- #17111 update bips.md with buried BIP9 deployments (MarcoFalke) - Credits ======= Thanks to everyone who directly contributed to this release: -- 251 -- Aaron Clauson -- Akio Nakamura -- Alistair Mann -- Amiti Uttarwar -- Andrew Chow -- andrewtoth -- Anthony Towns -- Antoine Riard -- Aseem Sood -- Ben Carman -- Ben Woosley -- bpay -- Carl Dong -- Carnhof Daki -- Chris Capobianco -- Chris Moore -- Chuf -- clashic -- clashicly -- Cory Fields -- Daki Carnhof -- Dan Gershony -- Daniel Edgecumbe -- Daniel Kraft -- Daniel McNally -- darosior -- David A. Harding -- David Reikher -- Douglas Roark -- Elichai Turkel -- Emil -- Emil Engler -- ezegom -- Fabian Jahr -- fanquake -- Felix Weis -- Ferdinando M. Ametrano -- fridokus -- gapeman -- GChuf -- Gert-Jaap Glasbergen -- Giulio Lombardo -- Glenn Willen -- Graham Krizek -- Gregory Sanders -- grim-trigger -- gwillen -- Hennadii Stepanov -- Jack Mallers -- James Hilliard -- James O'Beirne -- Jan Beich -- Jeremy Rubin -- JeremyRand -- Jim Posen -- John Bampton -- John Newbery -- Jon Atack -- Jon Layton -- Jonas Schnelli -- Jonathan "Duke" Leto -- João Barbosa -- Joonmo Yang -- Jordan Baczuk -- Jorge Timón -- Josu Goñi -- Julian Fleischer -- Karl-Johan Alm -- Kaz Wesley -- keepkeyjon -- Kirill Fomichev -- Kristaps Kaupe -- Kristian Kramer -- Larry Ruane -- Lenny Maiorani -- LongShao007 -- Luca Venturini -- lucash-dev -- Luke Dashjr -- marcoagner -- MarcoFalke -- marcuswin -- Martin Ankerl -- Martin Zumsande -- Matt Corallo -- MeshCollider -- Michael Folkson -- Miguel Herranz -- Nathan Marley -- Neha Narula -- nicolas.dorier -- Nils Loewen -- nkostoulas -- orient -- Patrick Strateman -- Peter Bushnell -- Peter Wagner -- Pieter Wuille -- practicalswift -- qmma -- r8921039 -- RJ Rybarczyk -- Russell Yanofsky -- Samuel Dobson -- Sebastian Falbesoner -- setpill -- shannon1916 -- Sjors Provoost -- soroosh-sdi -- Steven Roose -- Suhas Daftuar -- tecnovert -- THETCR -- Tim Ruffing -- Tobias Kaderle -- Torkel Rogstad -- Ulrich Kempken -- whythat -- William Casarin -- Wladimir J. van der Laan -- zenosage -As well as everyone that helped translating on [Transifex](https://www.transifex.com/bitcoin/bitcoin/). +As well as to everyone that helped with translations on +[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.19.0.md b/doc/release-notes/release-notes-0.19.0.md new file mode 100644 index 0000000000..153da68a6e --- /dev/null +++ b/doc/release-notes/release-notes-0.19.0.md @@ -0,0 +1,1086 @@ +Bitcoin Core version 0.19.0 is now available from: + + + +This release includes new features, various bug fixes and performance +improvements, as well as updated translations. + +Please report bugs using the issue tracker at GitHub: + + + +To receive security and update notifications, please subscribe to: + + + +How to Upgrade +============== + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) +or `bitcoind`/`bitcoin-qt` (on Linux). + +Upgrading directly from a version of Bitcoin Core that has reached its EOL is +possible, but might take some time if the datadir needs to be migrated. Old +wallet versions of Bitcoin Core are generally supported. + +Compatibility +============== + +Bitcoin Core is supported and extensively tested on operating systems using +the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not recommended +to use Bitcoin Core on unsupported systems. + +Bitcoin Core should also work on most other Unix-like systems but is not +as frequently tested on them. + +From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is +built using Qt 5.9.x, which doesn't support versions of macOS older than +10.10. Additionally, Bitcoin Core does not yet change appearance when +macOS "dark mode" is activated. + +Users running macOS Catalina may need to "right-click" and then choose "Open" +to open the Bitcoin Core .dmg. This is due to new signing requirements +imposed by Apple, which the Bitcoin Core project does not yet adhere too. + +Notable changes +=============== + +New user documentation +---------------------- + +- [Reduce memory](https://github.com/bitcoin/bitcoin/blob/master/doc/reduce-memory.md) + suggests configuration tweaks for running Bitcoin Core on systems with + limited memory. (#16339) + +New RPCs +-------- + +- `getbalances` returns an object with all balances (`mine`, + `untrusted_pending` and `immature`). Please refer to the RPC help of + `getbalances` for details. The new RPC is intended to replace + `getbalance`, `getunconfirmedbalance`, and the balance fields in + `getwalletinfo`. These old calls and fields may be removed in a + future version. (#15930, #16239) + +- `setwalletflag` sets and unsets wallet flags that enable or disable + features specific to that existing wallet, such as the new + `avoid_reuse` feature documented elsewhere in these release notes. + (#13756) + +- `getblockfilter` gets the BIP158 filter for the specified block. This + RPC is only enabled if block filters have been created using the + `-blockfilterindex` configuration option. (#14121) + +New settings +------------ + +- `-blockfilterindex` enables the creation of BIP158 block filters for + the entire blockchain. Filters will be created in the background and + currently use about 4 GiB of space. Note: this version of Bitcoin + Core does not serve block filters over the P2P network, although the + local user may obtain block filters using the `getblockfilter` RPC. + (#14121) + +Updated settings +---------------- + +- `whitebind` and `whitelist` now accept a list of permissions to + provide peers connecting using the indicated interfaces or IP + addresses. If no permissions are specified with an address or CIDR + network, the implicit default permissions are the same as previous + releases. See the `bitcoind -help` output for these two options for + details about the available permissions. (#16248) + +- Users setting custom `dbcache` values can increase their setting slightly + without using any more real memory. Recent changes reduced the memory use + by about 9% and made chainstate accounting more accurate (it was underestimating + the use of memory before). For example, if you set a value of "450" before, you + may now set a value of "500" to use about the same real amount of memory. (#16957) + + +Updated RPCs +------------ + +Note: some low-level RPC changes mainly useful for testing are described in the +Low-level Changes section below. + +- `sendmany` no longer has a `minconf` argument. This argument was not + well-specified and would lead to RPC errors even when the wallet's + coin selection succeeded. Users who want to influence coin selection + can use the existing `-spendzeroconfchange`, `-limitancestorcount`, + `-limitdescendantcount` and `-walletrejectlongchains` configuration + arguments. (#15596) + +- `getbalance` and `sendtoaddress`, plus the new RPCs `getbalances` and + `createwallet`, now accept an "avoid_reuse" parameter that controls + whether already used addresses should be included in the operation. + Additionally, `sendtoaddress` will avoid partial spends when + `avoid_reuse` is enabled even if this feature is not already enabled + via the `-avoidpartialspends` command line flag because not doing so + would risk using up the "wrong" UTXO for an address reuse case. + (#13756) + +- RPCs which have an `include_watchonly` argument or `includeWatching` option now default to `true` for watch-only + wallets. Affected RPCs are: `getbalance`, `listreceivedbyaddress`, `listreceivedbylabel`, `listtransactions`, + `listsinceblock`, `gettransaction`, `walletcreatefundedpsbt`, and `fundrawtransaction`. (#16383) + +- `listunspent` now returns a "reused" bool for each output if the + wallet flag "avoid_reuse" is enabled. (#13756) + +- `getblockstats` now uses BlockUndo data instead of the transaction + index, making it much faster, no longer dependent on the `-txindex` + configuration option, and functional for all non-pruned blocks. + (#14802) + +- `utxoupdatepsbt` now accepts a `descriptors` parameter that will fill + out input and output scripts and keys when known. P2SH-witness inputs + will be filled in from the UTXO set when a descriptor is provided that + shows they're spending segwit outputs. See the RPC help text for full + details. (#15427) + +- `sendrawtransaction` and `testmempoolaccept` no longer accept a + `allowhighfees` parameter to fail mempool acceptance if the + transaction fee exceeds the value of the configuration option + `-maxtxfee`. Now there is a hardcoded default maximum feerate that + can be changed when calling either RPC using a `maxfeerate` parameter. + (#15620) + +- `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry`, and + `getrawmempool` no longer return a `size` field unless the + configuration option `-deprecatedrpc=size` is used. Instead a new + `vsize` field is returned with the transaction's virtual size + (consistent with other RPCs such as `getrawtransaction`). (#15637) + +- `getwalletinfo` now includes a `scanning` field that is either `false` + (no scanning) or an object with information about the duration and + progress of the wallet's scanning historical blocks for transactions + affecting its balances. (#15730) + +- `gettransaction` now accepts a third (boolean) argument `verbose`. If + set to `true`, a new `decoded` field will be added to the response containing + the decoded transaction. This field is equivalent to RPC `decoderawtransaction`, + or RPC `getrawtransaction` when `verbose` is passed. (#16185, #16866, #16873) + +- `createwallet` accepts a new `passphrase` parameter. If set, this + will create the new wallet encrypted with the given passphrase. If + unset (the default) or set to an empty string, no encryption will be + used. (#16394) + +- `getchaintxstats` RPC now returns the additional key of + `window_final_block_height`. (#16695) + +- `getmempoolentry` now provides a `weight` field containing the + transaction weight as defined in BIP141. (#16647) + +- The `getnetworkinfo` and `getpeerinfo` commands now contain a new field with decoded network service flags. (#16786) + +- `getdescriptorinfo` now returns an additional `checksum` field + containing the checksum for the unmodified descriptor provided by the + user (that is, before the descriptor is normalized for the + `descriptor` field). (#15986) + +- `joinpsbts` now shuffles the order of the inputs and outputs of the resulting + joined PSBT. Previously, inputs and outputs were added in the order PSBTs were + provided. This made it easy to correlate inputs to outputs, representing a + privacy leak. (#16512) + +- `walletcreatefundedpsbt` now signals BIP125 Replace-by-Fee if the + `-walletrbf` configuration option is set to true. (#15911) + +GUI changes +----------- + +- The GUI wallet now provides bech32 addresses by default. The user may change the address type + during invoice generation using a GUI toggle, or the default address + type may be changed with the `-addresstype` configuration option. + (#15711, #16497) + +- In 0.18.0, a `./configure` flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now __disabled__ by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass `--enable-bip70` to `./configure`. (#15584) + +Deprecated or removed configuration options +------------------------------------------- + +- `-mempoolreplacement` is removed, although default node behavior + remains the same. This option previously allowed the user to prevent + the node from accepting or relaying BIP125 transaction replacements. + This is different from the remaining configuration option + `-walletrbf`. (#16171) + +Deprecated or removed RPCs +-------------------------- + +- `bumpfee` no longer accepts a `totalFee` option unless the + configuration parameter `deprecatedrpc=totalFee` is specified. This + parameter will be fully removed in a subsequent release. (#15996) + +- `bumpfee` has a new `fee_rate` option as a replacement for the deprecated `totalFee`. (#16727) + +- `generate` is now removed after being deprecated in Bitcoin Core 0.18. + Use the `generatetoaddress` RPC instead. (#15492) + +P2P changes +----------- + +- BIP 61 reject messages were deprecated in v0.18. They are now disabled + by default, but can be enabled by setting the `-enablebip61` command + line option. BIP 61 reject messages will be removed entirely in a + future version of Bitcoin Core. (#14054) + +- To eliminate well-known denial-of-service vectors in Bitcoin Core, + especially for nodes with spinning disks, the default value for the + `-peerbloomfilters` configuration option has been changed to false. + This prevents Bitcoin Core from sending the BIP111 NODE_BLOOM service + flag, accepting BIP37 bloom filters, or serving merkle blocks or + transactions matching a bloom filter. Users who still want to provide + bloom filter support may either set the configuration option to true + to re-enable both BIP111 and BIP37 support or enable just BIP37 + support for specific peers using the updated `-whitelist` and + `-whitebind` configuration options described elsewhere in these + release notes. For the near future, lightweight clients using public + BIP111/BIP37 nodes should still be able to connect to older versions + of Bitcoin Core and nodes that have manually enabled BIP37 support, + but developers of such software should consider migrating to either + using specific BIP37 nodes or an alternative transaction filtering + system. (#16152) + +- By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out. (#15759) + +Miscellaneous CLI Changes +------------------------- + +- The `testnet` field in `bitcoin-cli -getinfo` has been renamed to + `chain` and now returns the current network name as defined in BIP70 + (main, test, regtest). (#15566) + +Low-level changes +================= + +RPC +--- + +- `getblockchaininfo` no longer returns a `bip9_softforks` object. + Instead, information has been moved into the `softforks` object and + an additional `type` field describes how Bitcoin Core determines + whether that soft fork is active (e.g. BIP9 or BIP90). See the RPC + help for details. (#16060) + +- `getblocktemplate` no longer returns a `rules` array containing `CSV` + and `segwit` (the BIP9 deployments that are currently in active + state). (#16060) + +- `getrpcinfo` now returns a `logpath` field with the path to + `debug.log`. (#15483) + +Tests +----- + +- The regression test chain enabled by the `-regtest` command line flag + now requires transactions to not violate standard policy by default. + This is the same default used for mainnet and makes it easier to test + mainnet behavior on regtest. Note that the testnet still allows + non-standard txs by default and that the policy can be locally + adjusted with the `-acceptnonstdtxn` command line flag for both test + chains. (#15891) + +Configuration +------------ + +- A setting specified in the default section but not also specified in a + network-specific section (e.g. testnet) will now produce an error + preventing startup instead of just a warning unless the network is + mainnet. This prevents settings intended for mainnet from being + applied to testnet or regtest. (#15629) + +- On platforms supporting `thread_local`, log lines can be prefixed with + the name of the thread that caused the log. To enable this behavior, + use `-logthreadnames=1`. (#15849) + +Network +------- + +- When fetching a transaction announced by multiple peers, previous versions of + Bitcoin Core would sequentially attempt to download the transaction from each + announcing peer until the transaction is received, in the order that those + peers' announcements were received. In this release, the download logic has + changed to randomize the fetch order across peers and to prefer sending + download requests to outbound peers over inbound peers. This fixes an issue + where inbound peers could prevent a node from getting a transaction. + (#14897, #15834) + +- If a Tor hidden service is being used, Bitcoin Core will be bound to + the standard port 8333 even if a different port is configured for + clearnet connections. This prevents leaking node identity through use + of identical non-default port numbers. (#15651) + +Mempool and transaction relay +----------------------------- + +- Allows one extra single-ancestor transaction per package. Previously, + if a transaction in the mempool had 25 descendants, or it and all of + its descendants were over 101,000 vbytes, any newly-received + transaction that was also a descendant would be ignored. Now, one + extra descendant will be allowed provided it is an immediate + descendant (child) and the child's size is 10,000 vbytes or less. + This makes it possible for two-party contract protocols such as + Lightning Network to give each participant an output they can spend + immediately for Child-Pays-For-Parent (CPFP) fee bumping without + allowing one malicious participant to fill the entire package and thus + prevent the other participant from spending their output. (#15681) + +- Transactions with outputs paying v1 to v16 witness versions (future + segwit versions) are now accepted into the mempool, relayed, and + mined. Attempting to spend those outputs remains forbidden by policy + ("non-standard"). When this change has been widely deployed, wallets + and services can accept any valid bech32 Bitcoin address without + concern that transactions paying future segwit versions will become + stuck in an unconfirmed state. (#15846) + +- Legacy transactions (transactions with no segwit inputs) must now be + sent using the legacy encoding format, enforcing the rule specified in + BIP144. (#14039) + +Wallet +------ + +- When in pruned mode, a rescan that was triggered by an `importwallet`, + `importpubkey`, `importaddress`, or `importprivkey` RPC will only fail + when blocks have been pruned. Previously it would fail when `-prune` + has been set. This change allows setting `-prune` to a high value + (e.g. the disk size) without the calls to any of the import RPCs + failing until the first block is pruned. (#15870) + +- When creating a transaction with a fee above `-maxtxfee` (default 0.1 + BTC), the RPC commands `walletcreatefundedpsbt` and + `fundrawtransaction` will now fail instead of rounding down the fee. + Be aware that the `feeRate` argument is specified in BTC per 1,000 + vbytes, not satoshi per vbyte. (#16257) + +- A new wallet flag `avoid_reuse` has been added (default off). When + enabled, a wallet will distinguish between used and unused addresses, + and default to not use the former in coin selection. When setting + this flag on an existing wallet, rescanning the blockchain is required + to correctly mark previously used destinations. Together with "avoid + partial spends" (added in Bitcoin Core v0.17.0), this can eliminate a + serious privacy issue where a malicious user can track spends by + sending small payments to a previously-paid address that would then + be included with unrelated inputs in future payments. (#13756) + +Build system changes +-------------------- + +- Python >=3.5 is now required by all aspects of the project. This + includes the build systems, test framework and linters. The previously + supported minimum (3.4), was EOL in March 2019. (#14954) + +- The minimum supported miniUPnPc API version is set to 10. This keeps + compatibility with Ubuntu 16.04 LTS and Debian 8 `libminiupnpc-dev` + packages. Please note, on Debian this package is still vulnerable to + [CVE-2017-8798](https://security-tracker.debian.org/tracker/CVE-2017-8798) + (in jessie only) and + [CVE-2017-1000494](https://security-tracker.debian.org/tracker/CVE-2017-1000494) + (both in jessie and in stretch). (#15993) + +0.19.0 change log +================= + +### Consensus +- #16128 Delete error-prone CScript constructor only used with FindAndDelete (instagibbs) +- #16060 Bury bip9 deployments (jnewbery) + +### Policy +- #15557 Enhance `bumpfee` to include inputs when targeting a feerate (instagibbs) +- #15846 Make sending to future native witness outputs standard (sipa) + +### Block and transaction handling +- #15632 Remove ResendWalletTransactions from the Validation Interface (jnewbery) +- #14121 Index for BIP 157 block filters (jimpo) +- #15141 Rewrite DoS interface between validation and net_processing (sdaftuar) +- #15880 utils and libraries: Replace deprecated Boost Filesystem functions (hebasto) +- #15971 validation: Add compile-time checking for negative locking requirement in LimitValidationInterfaceQueue (practicalswift) +- #15999 init: Remove dead code in LoadChainTip (MarcoFalke) +- #16015 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift) +- #16056 remove unused magic number from consistency check (instagibbs) +- #16171 Remove -mempoolreplacement to prevent needless block prop slowness (TheBlueMatt) +- #15894 Remove duplicated "Error: " prefix in logs (hebasto) +- #14193 validation: Add missing mempool locks (MarcoFalke) +- #15681 Allow one extra single-ancestor transaction per package (TheBlueMatt) +- #15305 [validation] Crash if disconnecting a block fails (sdaftuar) +- #16471 log correct messages when CPFP fails (jnewbery) +- #16433 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke) +- #13868 Remove unused fScriptChecks parameter from CheckInputs (Empact) +- #16421 Conservatively accept RBF bumps bumping one tx at the package limits (TheBlueMatt) +- #16854 Prevent UpdateTip log message from being broken up (stevenroose) +- #16956 validation: Make GetWitnessCommitmentIndex public (MarcoFalke) +- #16713 Ignore old versionbit activations to avoid 'unknown softforks' warning (jnewbery) +- #17002 chainparams: Bump assumed chain params (MarcoFalke) +- #16849 Fix block index inconsistency in InvalidateBlock() (sdaftuar) + +### P2P protocol and network code +- #15597 Generate log entry when blocks messages are received unexpectedly (pstratem) +- #15654 Remove unused unsanitized user agent string CNode::strSubVer (MarcoFalke) +- #15689 netaddress: Update CNetAddr for ORCHIDv2 (dongcarl) +- #15834 Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map (sdaftuar) +- #15651 torcontrol: Use the default/standard network port for Tor hidden services, even if the internal port is set differently (luke-jr) +- #16188 Document what happens to getdata of unknown type (MarcoFalke) +- #15649 Add ChaCha20Poly1305@Bitcoin AEAD (jonasschnelli) +- #16152 Disable bloom filtering by default (TheBlueMatt) +- #15993 Drop support of the insecure miniUPnPc versions (hebasto) +- #16197 Use mockable time for tx download (MarcoFalke) +- #16248 Make whitebind/whitelist permissions more flexible (NicolasDorier) +- #16618 [Fix] Allow connection of a noban banned peer (NicolasDorier) +- #16631 Restore default whitelistrelay to true (NicolasDorier) +- #15759 Add 2 outbound block-relay-only connections (sdaftuar) +- #15558 Don't query all DNS seeds at once (sipa) +- #16999 0.19 seeds update (laanwj) + +### Wallet +- #15288 Remove wallet -> node global function calls (ryanofsky) +- #15491 Improve log output for errors during load (gwillen) +- #13541 wallet/rpc: sendrawtransaction maxfeerate (kallewoof) +- #15680 Remove resendwallettransactions RPC method (jnewbery) +- #15508 Refactor analyzepsbt for use outside RPC code (gwillen) +- #15747 Remove plethora of Get*Balance (MarcoFalke) +- #15728 Refactor relay transactions (jnewbery) +- #15639 bitcoin-wallet tool: Drop libbitcoin_server.a dependency (ryanofsky) +- #15853 Remove unused import checkpoints.h (MarcoFalke) +- #15780 add cachable amounts for caching credit/debit values (kallewoof) +- #15778 Move maxtxfee from node to wallet (jnewbery) +- #15901 log on rescan completion (andrewtoth) +- #15917 Avoid logging no_such_file_or_directory error (promag) +- #15452 Replace CScriptID and CKeyID in CTxDestination with dedicated types (instagibbs) +- #15870 Only fail rescan when blocks have actually been pruned (MarcoFalke) +- #15006 Add option to create an encrypted wallet (achow101) +- #16001 Give WalletModel::UnlockContext move semantics (sipa) +- #15741 Batch write imported stuff in importmulti (achow101) +- #16144 do not encrypt wallets with disabled private keys (mrwhythat) +- #15024 Allow specific private keys to be derived from descriptor (meshcollider) +- #13756 "avoid_reuse" wallet flag for improved privacy (kallewoof) +- #16226 Move ismine to the wallet module (achow101) +- #16239 wallet/rpc: follow-up clean-up/fixes to avoid_reuse (kallewoof) +- #16286 refactoring: wallet: Fix GCC 7.4.0 warning (hebasto) +- #16257 abort when attempting to fund a transaction above -maxtxfee (Sjors) +- #16237 Have the wallet give out destinations instead of keys (achow101) +- #16322 Fix -maxtxfee check by moving it to CWallet::CreateTransaction (promag) +- #16361 Remove redundant pre-TopUpKeypool check (instagibbs) +- #16244 Move wallet creation out of the createwallet rpc into its own function (achow101) +- #16227 Refactor CWallet's inheritance chain (achow101) +- #16208 Consume ReserveDestination on successful CreateTransaction (instagibbs) +- #16301 Use CWallet::Import* functions in all import* RPCs (achow101) +- #16402 Remove wallet settings from chainparams (MarcoFalke) +- #16415 Get rid of PendingWalletTx class (ryanofsky) +- #15588 Log the actual wallet file version and no longer publicly expose the "version" record (achow101) +- #16399 Improve wallet creation (fjahr) +- #16475 Enumerate walletdb keys (MarcoFalke) +- #15709 Do not add "setting" key as unknown (Bushstar) +- #16451 Remove CMerkleTx (jnewbery) +- #15906 Move min_depth and max_depth to coin control (amitiuttarwar) +- #16502 Drop unused OldKey (promag) +- #16394 Allow createwallet to take empty passwords to make unencrypted wallets (achow101) +- #15911 Use wallet RBF default for walletcreatefundedpsbt (Sjors) +- #16503 Remove p2pEnabled from Chain interface (ariard) +- #16557 restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (jnewbery) +- #14934 Descriptor expansion cache clarifications (Sjors) +- #16383 rpcwallet: default include_watchonly to true for watchonly wallets (jb55) +- #16542 Return more specific errors about invalid descriptors (achow101) +- #16572 Fix Char as Bool in Wallet (JeremyRubin) +- #16753 extract PubKey from P2PK script with Solver (theStack) +- #16716 Use wallet name instead of pointer on unload/release (promag) +- #16185 gettransaction: add an argument to decode the transaction (darosior) +- #16745 Translate all initErrors in CreateWalletFromFile (MarcoFalke) +- #16792 Assert that the HRP is lowercase in Bech32::Encode (meshcollider) +- #16624 encapsulate transactions state (ariard) +- #16830 Cleanup walletinitinterface.h (hebasto) +- #16796 Fix segfault in CreateWalletFromFile (MarcoFalke) +- #16866 Rename 'decode' argument in gettransaction method to 'verbose' (jnewbery) +- #16727 Explicit feerate for bumpfee (instagibbs) +- #16609 descriptor: fix missed m_script_arg arg renaming in #14934 (fanquake) + +### RPC and other APIs +- #15492 remove deprecated generate method (Sjors) +- #15566 cli: Replace testnet with chain and return network name as per bip70 (fanquake) +- #15564 cli: Remove duplicate wallet fields from -getinfo (fanquake) +- #15642 Remove deprecated rpc warnings (jnewbery) +- #15637 Rename size to vsize in mempool related calls (fanquake) +- #15620 Uncouple non-wallet rpcs from maxTxFee global (MarcoFalke) +- #15616 Clarify decodescript RPCResult doc (MarcoFalke) +- #15669 Fix help text for signtransactionwithXXX (torkelrogstad) +- #15596 Ignore sendmany::minconf as dummy value (MarcoFalke) +- #15755 remove unused var in rawtransaction.cpp (Bushstar) +- #15746 RPCHelpMan: Always name dictionary keys (MarcoFalke) +- #15748 remove dead mining code (jnewbery) +- #15751 Speed up deriveaddresses for large ranges (sipa) +- #15770 Validate maxfeerate with AmountFromValue (promag) +- #15474 rest/rpc: Make mempoolinfo atomic (promag) +- #15463 Speedup getaddressesbylabel (promag) +- #15784 Remove dependency on interfaces::Chain in SignTransaction (ariard) +- #15323 Expose g_is_mempool_loaded via getmempoolinfo (Empact) +- #15932 Serialize in getblock without cs_main (MarcoFalke) +- #15930 Add balances RPC (MarcoFalke) +- #15730 Show scanning details in getwalletinfo (promag) +- #14802 faster getblockstats using BlockUndo data (FelixWeis) +- #14984 Speedup getrawmempool when verbose=true (promag) +- #16071 Hint for importmulti in help output of importpubkey and importaddress (kristapsk) +- #16063 Mention getwalletinfo where a rescan is triggered (promag) +- #16024 deriveaddresses: Correction of descriptor checksum in RPC example (ccapo) +- #16217 getrawtransaction: inform about blockhash argument when lookup fails (darosior) +- #15427 Add support for descriptors to utxoupdatepsbt (sipa) +- #16262 Allow shutdown while in generateblocks (pstratem) +- #15483 Adding a 'logpath' entry to getrpcinfo (darosior) +- #16325 Clarify that block count means height excl genesis (MarcoFalke) +- #16326 add new utxoupdatepsbt arguments to the CRPCCommand and CPRCCvertParam tables (jnewbery) +- #16332 Add logpath description for getrpcinfo (instagibbs) +- #16240 JSONRPCRequest-aware RPCHelpMan (kallewoof) +- #15996 Deprecate totalfee argument in `bumpfee` (instagibbs) +- #16467 sendrawtransaction help privacy note (jonatack) +- #16596 Fix getblocktemplate CLI example (emilengler) +- #15986 Add checksum to getdescriptorinfo (sipa) +- #16647 add weight to getmempoolentry output (fanquake) +- #16695 Add window final block height to getchaintxstats (leto) +- #16798 Refactor rawtransaction_util's SignTransaction to separate prevtx parsing (achow101) +- #16285 Improve scantxoutset response and help message (promag) +- #16725 Don't show addresses or P2PK in decoderawtransaction (NicolasDorier) +- #16787 Human readable network services (darosior) +- #16251 Improve signrawtransaction error reporting (ajtowns) +- #16873 fix regression in gettransaction (jonatack) +- #16512 Shuffle inputs and outputs after joining psbts (achow101) +- #16521 Use the default maxfeerate value as BTC/kB (Remagpie) +- #16817 Fix casing in getblockchaininfo to be inline with other fields (dangershony) +- #17131 fix -rpcclienttimeout 0 option (fjahr) +- #17249 Add missing deque include to fix build (jbeich) + +### GUI +- #15464 Drop unused return values in WalletFrame (promag) +- #15614 Defer removeAndDeleteWallet when no modal widget is active (promag) +- #15711 Generate bech32 addresses by default (MarcoFalke) +- #15829 update request payment button text and tab description (fanquake) +- #15874 Resolve the qt/guiutil <-> qt/optionsmodel CD (251Labs) +- #15371 Uppercase bech32 addresses in qr codes (benthecarman) +- #15928 Move QRImageWidget to its own file-pair (luke-jr) +- #16113 move coin control "OK" to the right hand side of the dialog (fanquake) +- #16090 Add vertical spacer to peer detail widget (JosuGZ) +- #15886 qt, wallet: Revamp SendConfirmationDialog (hebasto) +- #16263 Use qInfo() if no error occurs (hebasto) +- #16153 Add antialiasing to traffic graph widget (JosuGZ) +- #16350 Remove unused guard (hebasto) +- #16106 Sort wallets in open wallet menu (promag) +- #16291 Stop translating PACKAGE_NAME (MarcoFalke) +- #16380 Remove unused bits from the service flags enum (MarcoFalke) +- #16379 Fix autostart filenames on Linux for testnet/regtest (hebasto) +- #16366 init: Use InitError for all errors in bitcoind/qt (MarcoFalke) +- #16436 Do not create payment server if -disablewallet option provided (hebasto) +- #16514 Remove unused RPCConsole::tabFocus (promag) +- #16497 Generate bech32 addresses by default (take 2, fixup) (MarcoFalke) +- #16349 Remove redundant WalletController::addWallet slot (hebasto) +- #16578 Do not pass in command line arguments to QApplication (achow101) +- #16612 Remove menu icons (laanwj) +- #16677 remove unused PlatformStyle::TextColorIcon (fanquake) +- #16694 Ensure transaction send error is always visible (fanquake) +- #14879 Add warning messages to the debug window (hebasto) +- #16708 Replace obsolete functions of QSslSocket (hebasto) +- #16701 Replace functions deprecated in Qt 5.13 (hebasto) +- #16706 Replace deprecated QSignalMapper by lambda expressions (hebasto) +- #16707 Remove obsolete QModelIndex::child() (hebasto) +- #16758 Replace QFontMetrics::width() with TextWidth() (hebasto) +- #16760 Change uninstall icon on Windows (GChuf) +- #16720 Replace objc_msgSend() function calls with the native Objective-C syntax (hebasto) +- #16788 Update transifex slug for 0.19 (laanwj) +- #15450 Create wallet menu option (achow101) +- #16735 Remove unused menu items for Windows and Linux (GChuf) +- #16826 Do additional character escaping for wallet names and address labels (achow101) +- #15529 Add Qt programs to msvc build (updated, no code changes) (sipsorcery) +- #16714 add prune to intro screen with smart default (Sjors) +- #16858 advise users not to switch wallets when opening a BIP70 URI (jameshilliard) +- #16822 Create wallet menu option follow-ups (jonatack) +- #16882 Re-generate translations before 0.19.0 (MarcoFalke) +- #16928 Rename address checkbox back to bech32 (MarcoFalke) +- #16837 Fix {C{,XX},LD}FLAGS pickup (dongcarl) +- #16971 Change default size of intro frame (emilengler) +- #16988 Periodic translations update (laanwj) +- #16852 When BIP70 is disabled, get PaymentRequest merchant using string search (achow101) +- #16952 make sure to update the UI when deleting a transaction (jonasschnelli) +- #17031 Prevent processing duplicate payment requests (promag) +- #17135 Make polling in ClientModel asynchronous (promag) +- #17120 Fix start timer from non QThread (promag) +- #17257 disable font antialiasing for QR image address (fanquake) + +### Build system +- #14954 Require python 3.5 (MarcoFalke) +- #15580 native_protobuf: avoid system zlib (dongcarl) +- #15601 Switch to python3 (take 3) (MarcoFalke) +- #15581 Make less assumptions about build env (dongcarl) +- #14853 latest RapidCheck (fanquake) +- #15446 Improve depends debuggability (dongcarl) +- #13788 Fix --disable-asm for newer assembly checks/code (luke-jr) +- #12051 add missing debian contrib file to tarball (puchu) +- #15919 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift) +- #15978 .gitignore: Don't ignore depends patches (dongcarl) +- #15939 gitian: Remove windows 32 bit build (MarcoFalke) +- #15239 scripts and tools: Move non-linux build source tarballs to "bitcoin-binaries/version" directory (hebasto) +- #14047 Add HKDF_HMAC256_L32 and method to negate a private key (jonasschnelli) +- #16051 add patch to common dependencies (fanquake) +- #16049 switch to secure download of all dependencies (Kemu) +- #16059 configure: Fix thread_local detection (dongcarl) +- #16089 add ability to skip building zeromq (fanquake) +- #15844 Purge libtool archives (dongcarl) +- #15461 update to Boost 1.70 (Sjors) +- #16141 remove GZIP export from gitian descriptors (fanquake) +- #16235 Cleaned up and consolidated msbuild files (no code changes) (sipsorcery) +- #16246 MSVC: Fix error in debug mode (Fix #16245) (NicolasDorier) +- #16183 xtrans: Configure flags cleanup (dongcarl) +- #16258 [MSVC]: Create the config.ini as part of bitcoind build (NicolasDorier) +- #16271 remove -Wall from rapidcheck build flags (fanquake) +- #16309 [MSVC] allow user level project customization (NicolasDorier) +- #16308 [MSVC] Copy build output to src/ automatically after build (NicolasDorier) +- #15457 Check std::system for -[alert|block|wallet]notify (Sjors) +- #16344 use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors) +- #16352 prune dbus from depends (fanquake) +- #16270 expat 2.2.7 (fanquake) +- #16408 Prune X packages (dongcarl) +- #16386 disable unused Qt features (fanquake) +- #16424 Treat -Wswitch as error when --enable-werror (MarcoFalke) +- #16441 remove qt libjpeg check from bitcoin_qt.m4 (fanquake) +- #16434 Specify AM_CPPFLAGS for ZMQ (domob1812) +- #16534 add Qt Creator Makefile.am.user to .gitignore (Bushstar) +- #16573 disable building libsecp256k1 benchmarks (fanquake) +- #16533 disable libxcb extensions (fanquake) +- #16589 Remove unused src/obj-test folder (MarcoFalke) +- #16435 autoconf: Sane `--enable-debug` defaults (dongcarl) +- #16622 echo property tests status during build (jonatack) +- #16611 Remove src/obj directory from repository (laanwj) +- #16371 ignore macOS make deploy artefacts & add them to clean-local (fanquake) +- #16654 build: update RapidCheck Makefile (jonatack) +- #16370 cleanup package configure flags (fanquake) +- #16746 msbuild: Ignore linker warning (sipsorcery) +- #16750 msbuild: adds bench_bitcoin to auto generated project files (sipsorcery) +- #16810 guix: Remove ssp spec file hack (dongcarl) +- #16477 skip deploying plugins we dont use in macdeployqtplus (fanquake) +- #16413 Bump QT to LTS release 5.9.8 (THETCR) +- #15584 disable BIP70 support by default (fanquake) +- #16871 make building protobuf optional in depends (fanquake) +- #16879 remove redundant sed patching (fanquake) +- #16809 zlib: Move toolchain options to configure (dongcarl) +- #15146 Solve SmartOS FD_ZERO build issue (Empact) +- #16870 update boost macros to latest upstream for improved error reporting (fanquake) +- #16982 Factor out qt translations from build system (laanwj) +- #16926 Add OpenSSL termios fix for musl libc (nmarley) +- #16927 Refresh ZeroMQ 4.3.1 patch (nmarley) +- #17005 Qt version appears only if GUI is being built (ch4ot1c) +- #16468 Exclude depends/Makefile in .gitignore (promag) + +### Tests and QA +- #15296 Add script checking for deterministic line coverage in unit tests (practicalswift) +- #15338 ci: Build and run tests once on freebsd (MarcoFalke) +- #15479 Add .style.yapf (MarcoFalke) +- #15534 lint-format-strings: open files sequentially (fix for OS X) (gwillen) +- #15504 fuzz: Link BasicTestingSetup (shared with unit tests) (MarcoFalke) +- #15473 bench: Benchmark mempooltojson (MarcoFalke) +- #15466 Print remaining jobs in test_runner.py (stevenroose) +- #15631 mininode: Clearer error message on invalid magic bytes (MarcoFalke) +- #15255 Remove travis_wait from lint script (gkrizek) +- #15686 make pruning test faster (jnewbery) +- #15533 .style.yapf: Set column_limit=160 (MarcoFalke) +- #15660 Overhaul p2p_compactblocks.py (sdaftuar) +- #15495 Add regtests for HTTP status codes (domob1812) +- #15772 Properly log named args in authproxy (MarcoFalke) +- #15771 Prevent concurrency issues reading .cookie file (promag) +- #15693 travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke) +- #15629 init: Throw error when network specific config is ignored (MarcoFalke) +- #15773 Add BitcoinTestFramework::sync_* methods (MarcoFalke) +- #15797 travis: Bump second timeout to 33 minutes, add rationale (MarcoFalke) +- #15788 Unify testing setups for fuzz, bench, and unit tests (MarcoFalke) +- #15352 Reduce noise level in test_bitcoin output (practicalswift) +- #15779 Add wallet_balance benchmark (MarcoFalke) +- #15843 fix outdated include in blockfilter_index_tests (jamesob) +- #15866 Add missing syncwithvalidationinterfacequeue to wallet_import_rescan (MarcoFalke) +- #15697 Make swap_magic_bytes in p2p_invalid_messages atomic (MarcoFalke) +- #15895 Avoid re-reading config.ini unnecessarily (luke-jr) +- #15896 feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME in messages rather than hardcoding Bitcoin Core (luke-jr) +- #15897 QA/mininode: Send all headers upfront in send_blocks_and_test to avoid sending an unconnected one (luke-jr) +- #15696 test_runner: Move feature_pruning to base tests (MarcoFalke) +- #15869 Add settings merge test to prevent regresssions (ryanofsky) +- #15758 Add further tests to wallet_balance (MarcoFalke) +- #15841 combine_logs: append node stderr and stdout if it exists (MarcoFalke) +- #15949 test_runner: Move pruning back to extended (MarcoFalke) +- #15927 log thread names by default in functional tests (jnewbery) +- #15664 change default Python block serialization to witness (instagibbs) +- #15988 Add test for ArgsManager::GetChainName (ryanofsky) +- #15963 Make random seed logged and settable (jnewbery) +- #15943 Fail if RPC has been added without tests (MarcoFalke) +- #16036 travis: Run all lint scripts even if one fails (scravy) +- #13555 parameterize adjustment period in versionbits_computeblockversion (JBaczuk) +- #16079 wallet_balance.py: Prevent edge cases (stevenroose) +- #16078 replace tx hash with txid in rawtransaction test (LongShao007) +- #16042 Bump MAX_NODES to 12 (MarcoFalke) +- #16124 Limit Python linting to files in the repo (practicalswift) +- #16143 Mark unit test blockfilter_index_initial_sync as non-deterministic (practicalswift) +- #16214 travis: Fix caching issues (MarcoFalke) +- #15982 Make msg_block a witness block (MarcoFalke) +- #16225 Make coins_tests/updatecoins_simulation_test deterministic (practicalswift) +- #16236 fuzz: Log output even if fuzzer failed (MarcoFalke) +- #15520 cirrus: Run extended test feature_pruning (MarcoFalke) +- #16234 Add test for unknown args (MarcoFalke) +- #16207 stop generating lcov coverage when functional tests fail (asood123) +- #16252 Log to debug.log in all unit tests (MarcoFalke) +- #16289 Add missing ECC_Stop() in GUI rpcnestedtests.cpp (jonasschnelli) +- #16278 Remove unused includes (practicalswift) +- #16302 Add missing syncwithvalidationinterfacequeue to wallet_balance test (MarcoFalke) +- #15538 wallet_bumpfee.py: Make sure coin selection produces change (instagibbs) +- #16294 Create at most one testing setup (MarcoFalke) +- #16299 bench: Move generated data to a dedicated translation unit (promag) +- #16329 Add tests for getblockchaininfo.softforks (MarcoFalke) +- #15687 tool wallet test coverage for unexpected writes to wallet (jonatack) +- #16267 bench: Benchmark blocktojson (fanatid) +- #14505 Add linter to make sure single parameter constructors are marked explicit (practicalswift) +- #16338 Disable other targets when enable-fuzz is set (qmma70) +- #16334 rpc_users: Also test rpcauth.py with password (dongcarl) +- #15282 Replace hard-coded hex tx with class in test framework (stevenroose) +- #16390 Add --filter option to test_runner.py (promag) +- #15891 Require standard txs in regtest by default (MarcoFalke) +- #16374 Enable passing wildcard test names to test runner from root (jonatack) +- #16420 Fix race condition in wallet_encryption test (jonasschnelli) +- #16422 remove redundant setup in addrman_tests (zenosage) +- #16438 travis: Print memory and number of cpus (MarcoFalke) +- #16445 Skip flaky p2p_invalid_messages test on macOS (fjahr) +- #16459 Fix race condition in example_test.py (sdaftuar) +- #16464 Ensure we don't generate a too-big block in p2sh sigops test (sdaftuar) +- #16491 fix deprecated log.warn in feature_dbcrash test (jonatack) +- #15134 Switch one of the Travis jobs to an unsigned char environment (-funsigned-char) (practicalswift) +- #16505 Changes verbosity of msbuild from quiet to normal in the appveyor script (sipsorcery) +- #16293 Make test cases separate functions (MarcoFalke) +- #16470 Fail early on disconnect in mininode.wait_for_* (MarcoFalke) +- #16277 Suppress output in test_bitcoin for expected errors (gertjaap) +- #16493 Fix test failures (MarcoFalke) +- #16538 Add missing sync_blocks to feature_pruning (MarcoFalke) +- #16509 Adapt test framework for chains other than "regtest" (MarcoFalke) +- #16363 Add test for BIP30 duplicate tx (MarcoFalke) +- #16535 Explain why -whitelist is used in feature_fee_estimation (MarcoFalke) +- #16554 only include and use OpenSSL where it's actually needed (BIP70) (fanquake) +- #16598 Remove confusing hash256 function in util (elichai) +- #16595 travis: Use extended 90 minute timeout when available (MarcoFalke) +- #16563 Add unit test for AddTimeData (mzumsande) +- #16561 Use colors and dots in test_runner.py output only if standard output is a terminal (practicalswift) +- #16465 Test p2sh-witness and bech32 in wallet_import_rescan (MarcoFalke) +- #16582 Rework ci (Use travis only as fallback env) (MarcoFalke) +- #16633 travis: Fix test_runner.py timeouts (MarcoFalke) +- #16646 Run tests with UPnP disabled (fanquake) +- #16623 ci: Add environment files for all settings (MarcoFalke) +- #16656 fix rpc_setban.py race (jonasschnelli) +- #16570 Make descriptor tests deterministic (davereikher) +- #16404 Test ZMQ notification after chain reorg (promag) +- #16726 Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values (practicalswift) +- #16739 ci: Pass down $makejobs to test_runner.py, other improvements (MarcoFalke) +- #16767 Check for codespell in lint-spelling.sh (kristapsk) +- #16768 Make lint-includes.sh work from any directory (kristapsk) +- #15257 Scripts and tools: Bump flake8 to 3.7.8 (Empact) +- #16804 Remove unused try-block in assert_debug_log (MarcoFalke) +- #16850 `servicesnames` field in `getpeerinfo` and `getnetworkinfo` (darosior) +- #16551 Test that low difficulty chain fork is rejected (MarcoFalke) +- #16737 Establish only one connection between nodes in rpc_invalidateblock (MarcoFalke) +- #16845 Add notes on how to generate data/wallets/high_minversion (MarcoFalke) +- #16888 Bump timeouts in slow running tests (MarcoFalke) +- #16864 Add python bech32 impl round-trip test (instagibbs) +- #16865 add some unit tests for merkle.cpp (soroosh-sdi) +- #14696 Add explicit references to related CVE's in p2p_invalid_block test (lucash-dev) +- #16907 lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke) +- #16898 Remove connect_nodes_bi (MarcoFalke) +- #16917 Move common function assert_approx() into util.py (fridokus) +- #16921 Add information on how to add Vulture suppressions (practicalswift) +- #16920 Fix extra_args in wallet_import_rescan.py (MarcoFalke) +- #16918 Make PORT_MIN in test runner configurable (MarcoFalke) +- #16941 travis: Disable feature_block in tsan run due to oom (MarcoFalke) +- #16929 follow-up to rpc: default maxfeerate value as BTC/kB (jonatack) +- #16959 ci: Set $host before setting fallback values (MarcoFalke) +- #16961 Remove python dead code linter (laanwj) +- #16931 add unittests for CheckProofOfWork (soroosh-sdi) +- #16991 Fix service flag comparison check in rpc_net test (luke-jr) (laanwj) +- #16987 Correct docstring param name (jbampton) +- #17015 Explain QT_QPA_PLATFORM for gui tests (MarcoFalke) +- #17006 Enable UBSan for Travis fuzzing job (practicalswift) +- #17086 Fix fs_tests for unknown locales (carnhofdaki) +- #15903 appveyor: Write @PACKAGE_NAME@ to config (MarcoFalke) +- #16742 test: add executable flag for wallet_watchonly.py (theStack) +- #16740 qa: Relax so that the subscriber is ready before publishing zmq messages (#16740) + +### Miscellaneous +- #15335 Fix lack of warning of unrecognized section names (AkioNak) +- #15528 contrib: Bump gitian descriptors for 0.19 (MarcoFalke) +- #15609 scripts and tools: Set 'distro' explicitly (hebasto) +- #15519 Add Poly1305 implementation (jonasschnelli) +- #15643 contrib: Gh-merge: include acks in merge commit (MarcoFalke) +- #15838 scripts and tools: Fetch missing review comments in github-merge.py (nkostoulas) +- #15920 lint: Check that all wallet args are hidden (MarcoFalke) +- #15849 Thread names in logs and deadlock debug tools (jamesob) +- #15650 Handle the result of posix_fallocate system call (lucayepa) +- #15766 scripts and tools: Upgrade gitian image before signing (hebasto) +- #15512 Add ChaCha20 encryption option (XOR) (jonasschnelli) +- #15968 Fix portability issue with pthreads (grim-trigger) +- #15970 Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL (orientye) +- #15863 scripts and tools: Ensure repos are up-to-date in gitian-build.py (hebasto) +- #15224 Add RNG strengthening (10ms once every minute) (sipa) +- #15840 Contrib scripts: Filter IPv6 by ASN (abitfan) +- #13998 Scripts and tools: gitian-build.py improvements and corrections (hebasto) +- #15236 scripts and tools: Make --setup command independent (hebasto) +- #16114 contrib: Add curl as a required program in gitian-build.py (fanquake) +- #16046 util: Add type safe gettime (MarcoFalke) +- #15703 Update secp256k1 subtree to latest upstream (sipa) +- #16086 contrib: Use newer config.guess & config.sub in install_db4.sh (fanquake) +- #16130 Don't GPG sign intermediate commits with github-merge tool (stevenroose) +- #16162 scripts: Add key for michael ford (fanquake) to trusted keys list (fanquake) +- #16201 devtools: Always use unabbreviated commit IDs in github-merge.py (laanwj) +- #16112 util: Log early messages (MarcoFalke) +- #16223 devtools: Fetch and display ACKs at sign-off time in github-merge (laanwj) +- #16300 util: Explain why the path is cached (MarcoFalke) +- #16314 scripts and tools: Update copyright_header.py script (hebasto) +- #16158 Fix logic of memory_cleanse() on MSVC and clean up docs (real-or-random) +- #14734 fix an undefined behavior in uint::SetHex (kazcw) +- #16327 scripts and tools: Update ShellCheck linter (hebasto) +- #15277 contrib: Enable building in guix containers (dongcarl) +- #16362 Add bilingual_str type (hebasto) +- #16481 logs: add missing space (harding) +- #16581 sipsorcery gitian key (sipsorcery) +- #16566 util: Refactor upper/lowercase functions (kallewoof) +- #16620 util: Move resolveerrmsg to util/error (MarcoFalke) +- #16625 scripts: Remove github-merge.py (fanquake) +- #15864 Fix datadir handling (hebasto) +- #16670 util: Add join helper to join a list of strings (MarcoFalke) +- #16665 scripts: Move update-translations.py to maintainer-tools repo (fanquake) +- #16730 Support serialization of `std::vector` (sipa) +- #16556 Fix systemd service file configuration directory setup (setpill) +- #15615 Add log output during initial header sync (jonasschnelli) +- #16774 Avoid unnecessary "Synchronizing blockheaders" log messages (jonasschnelli) +- #16489 log: harmonize bitcoind logging (jonatack) +- #16577 util: Cbufferedfile fixes and unit test (LarryRuane) +- #16984 util: Make thread names shorter (hebasto) +- #17038 Don't rename main thread at process level (laanwj) +- #17184 util: Filter out macos process serial number (hebasto) +- #17095 util: Filter control characters out of log messages (laanwj) +- #17085 init: Change fallback locale to C.UTF-8 (laanwj) +- #16957 9% less memory: make SaltedOutpointHasher noexcept (martinus) + +### Documentation +- #15514 Update Transifex links (fanquake) +- #15513 add "sections" info to example bitcoin.conf (fanquake) +- #15530 Move wallet lock annotations to header (MarcoFalke) +- #15562 remove duplicate clone step in build-windows.md (fanquake) +- #15565 remove release note fragments (fanquake) +- #15444 Additional productivity tips (Sjors) +- #15577 Enable TLS in link to chris.beams.io (JeremyRand) +- #15604 release note for disabling reject messages by default (jnewbery) +- #15611 Add Gitian key for droark (droark) +- #15626 Update ACK description in CONTRIBUTING.md (jonatack) +- #15603 Add more tips to productivity.md (gwillen) +- #15683 Comment for seemingly duplicate LIBBITCOIN_SERVER (Bushstar) +- #15685 rpc-mining: Clarify error messages (MarcoFalke) +- #15760 Clarify sendrawtransaction::maxfeerate==0 help (MarcoFalke) +- #15659 fix findFork comment (r8921039) +- #15718 Improve netaddress comments (dongcarl) +- #15833 remove out-of-date comment on pay-to-witness support (r8921039) +- #15821 Remove upgrade note in release notes from EOL versions (MarcoFalke) +- #15267 explain AcceptToMemoryPoolWorker's coins_to_uncache (jamesob) +- #15887 Align code example style with clang-format (hebasto) +- #15877 Fix -dustrelayfee= argument docs grammar (keepkeyjon) +- #15908 Align MSVC build options with Linux build ones (hebasto) +- #15941 Add historical release notes for 0.18.0 (laanwj) +- #15794 Clarify PR guidelines w/re documentation (dongcarl) +- #15607 Release process updates (jonatack) +- #14364 Clarify -blocksdir usage (sangaman) +- #15777 Add doxygen comments for keypool classes (jnewbery) +- #15820 Add productivity notes for dummy rebases (dongcarl) +- #15922 Explain how to pass in non-fundamental types into functions (MarcoFalke) +- #16080 build/doc: update bitcoin_config.h packages, release process (jonatack) +- #16047 analyzepsbt description in doc/psbt.md (jonatack) +- #16039 add release note for 14954 (fanquake) +- #16139 Add riscv64 to outputs list in release-process.md (JeremyRand) +- #16140 create security policy (narula) +- #16164 update release process for SECURITY.md (jonatack) +- #16213 Remove explicit mention of versions from SECURITY.md (MarcoFalke) +- #16186 doc/lint: Fix spelling errors identified by codespell 1.15.0 (Empact) +- #16149 Rework section on ACK in CONTRIBUTING.md (MarcoFalke) +- #16196 Add release notes for 14897 & 15834 (MarcoFalke) +- #16241 add rapidcheck to vcpkg install list (fanquake) +- #16243 Remove travis badge from readme (MarcoFalke) +- #16256 remove orphaned header in developer notes (jonatack) +- #15964 Improve build-osx document formatting (giulio92) +- #16313 Fix broken link in doc/build-osx.md (jonatack) +- #16330 Use placeholder instead of key expiration date (hebasto) +- #16339 add reduce-memory.md (fanquake) +- #16347 Include static members in Doxygen (dongcarl) +- #15824 Improve netbase comments (dongcarl) +- #16430 Update bips 35, 37 and 111 status (MarcoFalke) +- #16455 Remove downgrading warning in release notes, per 0.18 branch (MarcoFalke) +- #16484 update labels in CONTRIBUTING.md (MarcoFalke) +- #16483 update Python command in msvc readme (sipsorcery) +- #16504 Add release note for the deprecated totalFee option of bumpfee (promag) +- #16448 add note on precedence of options in bitcoin.conf (fanquake) +- #16536 Update and extend benchmarking.md (ariard) +- #16530 Fix grammar and punctuation in developer notes (Tech1k) +- #16574 Add historical release notes for 0.18.1 (laanwj) +- #16585 Update Markdown syntax for bdb packages (emilengler) +- #16586 Mention other ways to conserve memory on compilation (MarcoFalke) +- #16605 Add missing contributor to 0.18.1 release notes (meshcollider) +- #16615 Fix typos in COPYRIGHT (gapeman) +- #16626 Fix spelling error chache -> cache (nilswloewen) +- #16587 Improve versionbits.h documentation (ariard) +- #16643 Add ZMQ dependencies to the Fedora build instructions (hebasto) +- #16634 Refer in rpcbind doc to the manpage (MarcoFalke) +- #16555 mention whitelist is inbound, and applies to blocksonly (Sjors) +- #16645 initial RapidCheck property-based testing documentation (jonatack) +- #16691 improve depends prefix documentation (fanquake) +- #16629 Add documentation for the new whitelist permissions (NicolasDorier) +- #16723 Update labels in CONTRIBUTING.md (hebasto) +- #16461 Tidy up shadowing section (promag) +- #16621 add default bitcoin.conf locations (GChuf) +- #16752 Delete stale URL in test README (michaelfolkson) +- #14862 Declare BLOCK_VALID_HEADER reserved (MarcoFalke) +- #16806 Add issue templates for bug and feature request (MarcoFalke) +- #16857 Elaborate need to re-login on Debian-based after usermod for Tor group (clashicly) +- #16863 Add a missing closing parenthesis in the bitcoin-wallet's help (darosior) +- #16757 CChainState return values (MarcoFalke) +- #16847 add comments clarifying how local services are advertised (jamesob) +- #16812 Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in (ch4ot1c) +- #16885 Update tx-size-small comment with relevant CVE disclosure (instagibbs) +- #16900 Fix doxygen comment for SignTransaction in rpc/rawtransaction_util (MarcoFalke) +- #16914 Update homebrew instruction for doxygen (Sjors) +- #16912 Remove Doxygen intro from src/bitcoind.cpp (ch4ot1c) +- #16960 replace outdated OpenSSL comment in test README (fanquake) +- #16968 Remove MSVC update step from translation process (laanwj) +- #16953 Improve test READMEs (fjahr) +- #16962 Put PR template in comments (laanwj) +- #16397 Clarify includeWatching for fundrawtransaction (stevenroose) +- #15459 add how to calculate blockchain and chainstate size variables to release process (marcoagner) +- #16997 Update bips.md for 0.19 (laanwj) +- #17001 Remove mention of renamed mapBlocksUnlinked (MarcoFalke) +- #17014 Consolidate release notes before 0.19.0 (move-only) (MarcoFalke) +- #17111 update bips.md with buried BIP9 deployments (MarcoFalke) + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- 251 +- Aaron Clauson +- Akio Nakamura +- Alistair Mann +- Amiti Uttarwar +- Andrew Chow +- andrewtoth +- Anthony Towns +- Antoine Riard +- Aseem Sood +- Ben Carman +- Ben Woosley +- bpay +- Carl Dong +- Carnhof Daki +- Chris Capobianco +- Chris Moore +- Chuf +- clashic +- clashicly +- Cory Fields +- Daki Carnhof +- Dan Gershony +- Daniel Edgecumbe +- Daniel Kraft +- Daniel McNally +- darosior +- David A. Harding +- David Reikher +- Douglas Roark +- Elichai Turkel +- Emil +- Emil Engler +- ezegom +- Fabian Jahr +- fanquake +- Felix Weis +- Ferdinando M. Ametrano +- fridokus +- gapeman +- GChuf +- Gert-Jaap Glasbergen +- Giulio Lombardo +- Glenn Willen +- Graham Krizek +- Gregory Sanders +- grim-trigger +- gwillen +- Hennadii Stepanov +- Jack Mallers +- James Hilliard +- James O'Beirne +- Jan Beich +- Jeremy Rubin +- JeremyRand +- Jim Posen +- John Bampton +- John Newbery +- Jon Atack +- Jon Layton +- Jonas Schnelli +- Jonathan "Duke" Leto +- João Barbosa +- Joonmo Yang +- Jordan Baczuk +- Jorge Timón +- Josu Goñi +- Julian Fleischer +- Karl-Johan Alm +- Kaz Wesley +- keepkeyjon +- Kirill Fomichev +- Kristaps Kaupe +- Kristian Kramer +- Larry Ruane +- Lenny Maiorani +- LongShao007 +- Luca Venturini +- lucash-dev +- Luke Dashjr +- marcoagner +- MarcoFalke +- marcuswin +- Martin Ankerl +- Martin Zumsande +- Matt Corallo +- MeshCollider +- Michael Folkson +- Miguel Herranz +- Nathan Marley +- Neha Narula +- nicolas.dorier +- Nils Loewen +- nkostoulas +- orient +- Patrick Strateman +- Peter Bushnell +- Peter Wagner +- Pieter Wuille +- practicalswift +- qmma +- r8921039 +- RJ Rybarczyk +- Russell Yanofsky +- Samuel Dobson +- Sebastian Falbesoner +- setpill +- shannon1916 +- Sjors Provoost +- soroosh-sdi +- Steven Roose +- Suhas Daftuar +- tecnovert +- THETCR +- Tim Ruffing +- Tobias Kaderle +- Torkel Rogstad +- Ulrich Kempken +- whythat +- William Casarin +- Wladimir J. van der Laan +- zenosage + +As well as everyone that helped translating on [Transifex](https://www.transifex.com/bitcoin/bitcoin/). From 1e9816d17cb8eb32ff478df1fccc6e779dff3af6 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 14 Nov 2019 20:35:07 +0100 Subject: [PATCH 026/388] build: bump version to 0.19.0.1 Tree-SHA512: d448348761b7cd371b9ee4736577f6af9a141c73141ccd88a91a94593f6d21ab32754771673e8f2eb31044a624a1e1e8e4e83919a4d0100cb08eec71dcff7158 --- build_msvc/bitcoin_config.h | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build_msvc/bitcoin_config.h b/build_msvc/bitcoin_config.h index fd7a2dcfb8..43e8115030 100644 --- a/build_msvc/bitcoin_config.h +++ b/build_msvc/bitcoin_config.h @@ -5,7 +5,7 @@ /* #undef AC_APPLE_UNIVERSAL_BUILD */ /* Version Build */ -#define CLIENT_VERSION_BUILD 0 +#define CLIENT_VERSION_BUILD 1 /* Version is release */ #define CLIENT_VERSION_IS_RELEASE true diff --git a/configure.ac b/configure.ac index 22edb3f794..47a24cc3b7 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 19) define(_CLIENT_VERSION_REVISION, 0) -define(_CLIENT_VERSION_BUILD, 0) +define(_CLIENT_VERSION_BUILD, 1) define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2019) From 6ec0dc195dc6db2c949acdf3c54a2c3b22c23f65 Mon Sep 17 00:00:00 2001 From: NullFunctor Date: Mon, 11 Nov 2019 21:48:51 -0600 Subject: [PATCH 027/388] fix uninitialized variable nMinerConfirmationWindow fix uninitialized variable hard code the MinBIP9WarningHeight fix uninitialized var hard code the MinBIP9WarningHeight instead Github-Pull: #17449 Rebased-From: edb6b768a4185a4aaa6281ee50a6538f7426cb1e Tree-SHA512: 6192940e5e13ad1176aa380da9f3287ff1eb0c8c2a78571a6c45fe0e100417452c8503b9ffc5c8b2a89c4a5e8811b9d2bfec95366e1de00f3365ba06959e9a9a --- src/chainparams.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 7ff30ac1cd..e8bff516bc 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -71,7 +71,7 @@ class CMainParams : public CChainParams { consensus.BIP66Height = 363725; // 00000000000000000379eaa19dce8c9b722d46ae6a57c2f1a988119488b50931 consensus.CSVHeight = 419328; // 000000000000000004a1b34462cb8aeebd5799177f7a29cf28f2d1961716b5b5 consensus.SegwitHeight = 481824; // 0000000000000000001c8018d9cb3b742ef25114f27563e3fc4a1902167f9893 - consensus.MinBIP9WarningHeight = consensus.SegwitHeight + consensus.nMinerConfirmationWindow; + consensus.MinBIP9WarningHeight = 483840; // segwit activation height + miner confirmation window consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks consensus.nPowTargetSpacing = 10 * 60; @@ -178,7 +178,7 @@ class CTestNetParams : public CChainParams { consensus.BIP66Height = 330776; // 000000002104c8c45e99a8853285a3b592602a3ccde2b832481da85e9e4ba182 consensus.CSVHeight = 770112; // 00000000025e930139bac5c6c31a403776da130831ab85be56578f3fa75369bb consensus.SegwitHeight = 834624; // 00000000002b980fcd729daaa248fd9316a5200e9b367f4ff2c42453e84201ca - consensus.MinBIP9WarningHeight = consensus.SegwitHeight + consensus.nMinerConfirmationWindow; + consensus.MinBIP9WarningHeight = 836640; // segwit activation height + miner confirmation window consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks consensus.nPowTargetSpacing = 10 * 60; From 890dc0a7cccda4c17dca2e91083e7e374ca69c95 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 14 Nov 2019 20:41:15 +0100 Subject: [PATCH 028/388] doc: Re-add release notes of 0.19.0 Change version to 0.19.0.1. Add the following two PRs: - #17368 cli: fix -getinfo output when compiled with no wallet - #17449 fix uninitialized variable nMinerConfirmationWindow Add the following author: - NullFunctor (bitcoinVBR on gh) Tree-SHA512: f37b822555f2069c999721eede9156250d780e8906cd2e3294e7dfefc0225fff65ee3af4614fca081dcdccfab4a2a980192156621f005aa529bba00058da5c9a --- doc/release-notes.md | 1070 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 1043 insertions(+), 27 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index db5aa0d8a7..70b8ec589f 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,23 +1,6 @@ -*After branching off for a major version release of Bitcoin Core, use this -template to create the initial release notes draft.* +Bitcoin Core version 0.19.0.1 is now available from: -*The release notes draft is a temporary file that can be added to by anyone. See -[/doc/developer-notes.md#release-notes](/doc/developer-notes.md#release-notes) -for the process.* - -*Create the draft, named* "*version* Release Notes Draft" -*(e.g. "0.20.0 Release Notes Draft"), as a collaborative wiki in:* - -https://github.com/bitcoin-core/bitcoin-devwiki/wiki/ - -*Before the final release, move the notes back to this git repository.* - -*version* Release Notes Draft -=============================== - -Bitcoin Core version *version* is now available from: - - + This release includes new features, various bug fixes and performance improvements, as well as updated translations. @@ -39,7 +22,7 @@ installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) or `bitcoind`/`bitcoin-qt` (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the datadir needs to be migrated. Old +possible, but might take some time if the datadir needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. Compatibility @@ -52,22 +35,1055 @@ to use Bitcoin Core on unsupported systems. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. -From Bitcoin Core 0.17.0 onwards, macOS versions earlier than 10.10 are no -longer supported, as Bitcoin Core is now built using Qt 5.9.x which requires -macOS 10.10+. Additionally, Bitcoin Core does not yet change appearance when +From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is +built using Qt 5.9.x, which doesn't support versions of macOS older than +10.10. Additionally, Bitcoin Core does not yet change appearance when macOS "dark mode" is activated. -In addition to previously supported CPU platforms, this release's pre-compiled -distribution provides binaries for the RISC-V platform. +Users running macOS Catalina may need to "right-click" and then choose "Open" +to open the Bitcoin Core .dmg. This is due to new signing requirements +imposed by Apple, which the Bitcoin Core project does not yet adhere too. Notable changes =============== +New user documentation +---------------------- + +- [Reduce memory](https://github.com/bitcoin/bitcoin/blob/master/doc/reduce-memory.md) + suggests configuration tweaks for running Bitcoin Core on systems with + limited memory. (#16339) + +New RPCs +-------- + +- `getbalances` returns an object with all balances (`mine`, + `untrusted_pending` and `immature`). Please refer to the RPC help of + `getbalances` for details. The new RPC is intended to replace + `getbalance`, `getunconfirmedbalance`, and the balance fields in + `getwalletinfo`. These old calls and fields may be removed in a + future version. (#15930, #16239) + +- `setwalletflag` sets and unsets wallet flags that enable or disable + features specific to that existing wallet, such as the new + `avoid_reuse` feature documented elsewhere in these release notes. + (#13756) + +- `getblockfilter` gets the BIP158 filter for the specified block. This + RPC is only enabled if block filters have been created using the + `-blockfilterindex` configuration option. (#14121) + +New settings +------------ + +- `-blockfilterindex` enables the creation of BIP158 block filters for + the entire blockchain. Filters will be created in the background and + currently use about 4 GiB of space. Note: this version of Bitcoin + Core does not serve block filters over the P2P network, although the + local user may obtain block filters using the `getblockfilter` RPC. + (#14121) + +Updated settings +---------------- + +- `whitebind` and `whitelist` now accept a list of permissions to + provide peers connecting using the indicated interfaces or IP + addresses. If no permissions are specified with an address or CIDR + network, the implicit default permissions are the same as previous + releases. See the `bitcoind -help` output for these two options for + details about the available permissions. (#16248) + +- Users setting custom `dbcache` values can increase their setting slightly + without using any more real memory. Recent changes reduced the memory use + by about 9% and made chainstate accounting more accurate (it was underestimating + the use of memory before). For example, if you set a value of "450" before, you + may now set a value of "500" to use about the same real amount of memory. (#16957) + + +Updated RPCs +------------ + +Note: some low-level RPC changes mainly useful for testing are described in the +Low-level Changes section below. + +- `sendmany` no longer has a `minconf` argument. This argument was not + well-specified and would lead to RPC errors even when the wallet's + coin selection succeeded. Users who want to influence coin selection + can use the existing `-spendzeroconfchange`, `-limitancestorcount`, + `-limitdescendantcount` and `-walletrejectlongchains` configuration + arguments. (#15596) + +- `getbalance` and `sendtoaddress`, plus the new RPCs `getbalances` and + `createwallet`, now accept an "avoid_reuse" parameter that controls + whether already used addresses should be included in the operation. + Additionally, `sendtoaddress` will avoid partial spends when + `avoid_reuse` is enabled even if this feature is not already enabled + via the `-avoidpartialspends` command line flag because not doing so + would risk using up the "wrong" UTXO for an address reuse case. + (#13756) + +- RPCs which have an `include_watchonly` argument or `includeWatching` option now default to `true` for watch-only + wallets. Affected RPCs are: `getbalance`, `listreceivedbyaddress`, `listreceivedbylabel`, `listtransactions`, + `listsinceblock`, `gettransaction`, `walletcreatefundedpsbt`, and `fundrawtransaction`. (#16383) + +- `listunspent` now returns a "reused" bool for each output if the + wallet flag "avoid_reuse" is enabled. (#13756) + +- `getblockstats` now uses BlockUndo data instead of the transaction + index, making it much faster, no longer dependent on the `-txindex` + configuration option, and functional for all non-pruned blocks. + (#14802) + +- `utxoupdatepsbt` now accepts a `descriptors` parameter that will fill + out input and output scripts and keys when known. P2SH-witness inputs + will be filled in from the UTXO set when a descriptor is provided that + shows they're spending segwit outputs. See the RPC help text for full + details. (#15427) + +- `sendrawtransaction` and `testmempoolaccept` no longer accept a + `allowhighfees` parameter to fail mempool acceptance if the + transaction fee exceeds the value of the configuration option + `-maxtxfee`. Now there is a hardcoded default maximum feerate that + can be changed when calling either RPC using a `maxfeerate` parameter. + (#15620) + +- `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry`, and + `getrawmempool` no longer return a `size` field unless the + configuration option `-deprecatedrpc=size` is used. Instead a new + `vsize` field is returned with the transaction's virtual size + (consistent with other RPCs such as `getrawtransaction`). (#15637) + +- `getwalletinfo` now includes a `scanning` field that is either `false` + (no scanning) or an object with information about the duration and + progress of the wallet's scanning historical blocks for transactions + affecting its balances. (#15730) + +- `gettransaction` now accepts a third (boolean) argument `verbose`. If + set to `true`, a new `decoded` field will be added to the response containing + the decoded transaction. This field is equivalent to RPC `decoderawtransaction`, + or RPC `getrawtransaction` when `verbose` is passed. (#16185, #16866, #16873) + +- `createwallet` accepts a new `passphrase` parameter. If set, this + will create the new wallet encrypted with the given passphrase. If + unset (the default) or set to an empty string, no encryption will be + used. (#16394) + +- `getchaintxstats` RPC now returns the additional key of + `window_final_block_height`. (#16695) + +- `getmempoolentry` now provides a `weight` field containing the + transaction weight as defined in BIP141. (#16647) + +- The `getnetworkinfo` and `getpeerinfo` commands now contain a new field with decoded network service flags. (#16786) + +- `getdescriptorinfo` now returns an additional `checksum` field + containing the checksum for the unmodified descriptor provided by the + user (that is, before the descriptor is normalized for the + `descriptor` field). (#15986) + +- `joinpsbts` now shuffles the order of the inputs and outputs of the resulting + joined PSBT. Previously, inputs and outputs were added in the order PSBTs were + provided. This made it easy to correlate inputs to outputs, representing a + privacy leak. (#16512) + +- `walletcreatefundedpsbt` now signals BIP125 Replace-by-Fee if the + `-walletrbf` configuration option is set to true. (#15911) + +GUI changes +----------- + +- The GUI wallet now provides bech32 addresses by default. The user may change the address type + during invoice generation using a GUI toggle, or the default address + type may be changed with the `-addresstype` configuration option. + (#15711, #16497) + +- In 0.18.0, a `./configure` flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now __disabled__ by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass `--enable-bip70` to `./configure`. (#15584) + +Deprecated or removed configuration options +------------------------------------------- + +- `-mempoolreplacement` is removed, although default node behavior + remains the same. This option previously allowed the user to prevent + the node from accepting or relaying BIP125 transaction replacements. + This is different from the remaining configuration option + `-walletrbf`. (#16171) + +Deprecated or removed RPCs +-------------------------- + +- `bumpfee` no longer accepts a `totalFee` option unless the + configuration parameter `deprecatedrpc=totalFee` is specified. This + parameter will be fully removed in a subsequent release. (#15996) + +- `bumpfee` has a new `fee_rate` option as a replacement for the deprecated `totalFee`. (#16727) + +- `generate` is now removed after being deprecated in Bitcoin Core 0.18. + Use the `generatetoaddress` RPC instead. (#15492) + +P2P changes +----------- + +- BIP 61 reject messages were deprecated in v0.18. They are now disabled + by default, but can be enabled by setting the `-enablebip61` command + line option. BIP 61 reject messages will be removed entirely in a + future version of Bitcoin Core. (#14054) + +- To eliminate well-known denial-of-service vectors in Bitcoin Core, + especially for nodes with spinning disks, the default value for the + `-peerbloomfilters` configuration option has been changed to false. + This prevents Bitcoin Core from sending the BIP111 NODE_BLOOM service + flag, accepting BIP37 bloom filters, or serving merkle blocks or + transactions matching a bloom filter. Users who still want to provide + bloom filter support may either set the configuration option to true + to re-enable both BIP111 and BIP37 support or enable just BIP37 + support for specific peers using the updated `-whitelist` and + `-whitebind` configuration options described elsewhere in these + release notes. For the near future, lightweight clients using public + BIP111/BIP37 nodes should still be able to connect to older versions + of Bitcoin Core and nodes that have manually enabled BIP37 support, + but developers of such software should consider migrating to either + using specific BIP37 nodes or an alternative transaction filtering + system. (#16152) + +- By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out. (#15759) + +Miscellaneous CLI Changes +------------------------- + +- The `testnet` field in `bitcoin-cli -getinfo` has been renamed to + `chain` and now returns the current network name as defined in BIP70 + (main, test, regtest). (#15566) + +Low-level changes +================= + +RPC +--- + +- `getblockchaininfo` no longer returns a `bip9_softforks` object. + Instead, information has been moved into the `softforks` object and + an additional `type` field describes how Bitcoin Core determines + whether that soft fork is active (e.g. BIP9 or BIP90). See the RPC + help for details. (#16060) + +- `getblocktemplate` no longer returns a `rules` array containing `CSV` + and `segwit` (the BIP9 deployments that are currently in active + state). (#16060) + +- `getrpcinfo` now returns a `logpath` field with the path to + `debug.log`. (#15483) + +Tests +----- + +- The regression test chain enabled by the `-regtest` command line flag + now requires transactions to not violate standard policy by default. + This is the same default used for mainnet and makes it easier to test + mainnet behavior on regtest. Note that the testnet still allows + non-standard txs by default and that the policy can be locally + adjusted with the `-acceptnonstdtxn` command line flag for both test + chains. (#15891) + +Configuration +------------ + +- A setting specified in the default section but not also specified in a + network-specific section (e.g. testnet) will now produce an error + preventing startup instead of just a warning unless the network is + mainnet. This prevents settings intended for mainnet from being + applied to testnet or regtest. (#15629) + +- On platforms supporting `thread_local`, log lines can be prefixed with + the name of the thread that caused the log. To enable this behavior, + use `-logthreadnames=1`. (#15849) + +Network +------- + +- When fetching a transaction announced by multiple peers, previous versions of + Bitcoin Core would sequentially attempt to download the transaction from each + announcing peer until the transaction is received, in the order that those + peers' announcements were received. In this release, the download logic has + changed to randomize the fetch order across peers and to prefer sending + download requests to outbound peers over inbound peers. This fixes an issue + where inbound peers could prevent a node from getting a transaction. + (#14897, #15834) + +- If a Tor hidden service is being used, Bitcoin Core will be bound to + the standard port 8333 even if a different port is configured for + clearnet connections. This prevents leaking node identity through use + of identical non-default port numbers. (#15651) + +Mempool and transaction relay +----------------------------- + +- Allows one extra single-ancestor transaction per package. Previously, + if a transaction in the mempool had 25 descendants, or it and all of + its descendants were over 101,000 vbytes, any newly-received + transaction that was also a descendant would be ignored. Now, one + extra descendant will be allowed provided it is an immediate + descendant (child) and the child's size is 10,000 vbytes or less. + This makes it possible for two-party contract protocols such as + Lightning Network to give each participant an output they can spend + immediately for Child-Pays-For-Parent (CPFP) fee bumping without + allowing one malicious participant to fill the entire package and thus + prevent the other participant from spending their output. (#15681) + +- Transactions with outputs paying v1 to v16 witness versions (future + segwit versions) are now accepted into the mempool, relayed, and + mined. Attempting to spend those outputs remains forbidden by policy + ("non-standard"). When this change has been widely deployed, wallets + and services can accept any valid bech32 Bitcoin address without + concern that transactions paying future segwit versions will become + stuck in an unconfirmed state. (#15846) + +- Legacy transactions (transactions with no segwit inputs) must now be + sent using the legacy encoding format, enforcing the rule specified in + BIP144. (#14039) + +Wallet +------ + +- When in pruned mode, a rescan that was triggered by an `importwallet`, + `importpubkey`, `importaddress`, or `importprivkey` RPC will only fail + when blocks have been pruned. Previously it would fail when `-prune` + has been set. This change allows setting `-prune` to a high value + (e.g. the disk size) without the calls to any of the import RPCs + failing until the first block is pruned. (#15870) + +- When creating a transaction with a fee above `-maxtxfee` (default 0.1 + BTC), the RPC commands `walletcreatefundedpsbt` and + `fundrawtransaction` will now fail instead of rounding down the fee. + Be aware that the `feeRate` argument is specified in BTC per 1,000 + vbytes, not satoshi per vbyte. (#16257) + +- A new wallet flag `avoid_reuse` has been added (default off). When + enabled, a wallet will distinguish between used and unused addresses, + and default to not use the former in coin selection. When setting + this flag on an existing wallet, rescanning the blockchain is required + to correctly mark previously used destinations. Together with "avoid + partial spends" (added in Bitcoin Core v0.17.0), this can eliminate a + serious privacy issue where a malicious user can track spends by + sending small payments to a previously-paid address that would then + be included with unrelated inputs in future payments. (#13756) + +Build system changes +-------------------- + +- Python >=3.5 is now required by all aspects of the project. This + includes the build systems, test framework and linters. The previously + supported minimum (3.4), was EOL in March 2019. (#14954) + +- The minimum supported miniUPnPc API version is set to 10. This keeps + compatibility with Ubuntu 16.04 LTS and Debian 8 `libminiupnpc-dev` + packages. Please note, on Debian this package is still vulnerable to + [CVE-2017-8798](https://security-tracker.debian.org/tracker/CVE-2017-8798) + (in jessie only) and + [CVE-2017-1000494](https://security-tracker.debian.org/tracker/CVE-2017-1000494) + (both in jessie and in stretch). (#15993) + +0.19.0 change log +================= + +### Consensus +- #16128 Delete error-prone CScript constructor only used with FindAndDelete (instagibbs) +- #16060 Bury bip9 deployments (jnewbery) + +### Policy +- #15557 Enhance `bumpfee` to include inputs when targeting a feerate (instagibbs) +- #15846 Make sending to future native witness outputs standard (sipa) + +### Block and transaction handling +- #15632 Remove ResendWalletTransactions from the Validation Interface (jnewbery) +- #14121 Index for BIP 157 block filters (jimpo) +- #15141 Rewrite DoS interface between validation and net_processing (sdaftuar) +- #15880 utils and libraries: Replace deprecated Boost Filesystem functions (hebasto) +- #15971 validation: Add compile-time checking for negative locking requirement in LimitValidationInterfaceQueue (practicalswift) +- #15999 init: Remove dead code in LoadChainTip (MarcoFalke) +- #16015 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift) +- #16056 remove unused magic number from consistency check (instagibbs) +- #16171 Remove -mempoolreplacement to prevent needless block prop slowness (TheBlueMatt) +- #15894 Remove duplicated "Error: " prefix in logs (hebasto) +- #14193 validation: Add missing mempool locks (MarcoFalke) +- #15681 Allow one extra single-ancestor transaction per package (TheBlueMatt) +- #15305 [validation] Crash if disconnecting a block fails (sdaftuar) +- #16471 log correct messages when CPFP fails (jnewbery) +- #16433 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke) +- #13868 Remove unused fScriptChecks parameter from CheckInputs (Empact) +- #16421 Conservatively accept RBF bumps bumping one tx at the package limits (TheBlueMatt) +- #16854 Prevent UpdateTip log message from being broken up (stevenroose) +- #16956 validation: Make GetWitnessCommitmentIndex public (MarcoFalke) +- #16713 Ignore old versionbit activations to avoid 'unknown softforks' warning (jnewbery) +- #17002 chainparams: Bump assumed chain params (MarcoFalke) +- #16849 Fix block index inconsistency in InvalidateBlock() (sdaftuar) + +### P2P protocol and network code +- #15597 Generate log entry when blocks messages are received unexpectedly (pstratem) +- #15654 Remove unused unsanitized user agent string CNode::strSubVer (MarcoFalke) +- #15689 netaddress: Update CNetAddr for ORCHIDv2 (dongcarl) +- #15834 Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map (sdaftuar) +- #15651 torcontrol: Use the default/standard network port for Tor hidden services, even if the internal port is set differently (luke-jr) +- #16188 Document what happens to getdata of unknown type (MarcoFalke) +- #15649 Add ChaCha20Poly1305@Bitcoin AEAD (jonasschnelli) +- #16152 Disable bloom filtering by default (TheBlueMatt) +- #15993 Drop support of the insecure miniUPnPc versions (hebasto) +- #16197 Use mockable time for tx download (MarcoFalke) +- #16248 Make whitebind/whitelist permissions more flexible (NicolasDorier) +- #16618 [Fix] Allow connection of a noban banned peer (NicolasDorier) +- #16631 Restore default whitelistrelay to true (NicolasDorier) +- #15759 Add 2 outbound block-relay-only connections (sdaftuar) +- #15558 Don't query all DNS seeds at once (sipa) +- #16999 0.19 seeds update (laanwj) + +### Wallet +- #15288 Remove wallet -> node global function calls (ryanofsky) +- #15491 Improve log output for errors during load (gwillen) +- #13541 wallet/rpc: sendrawtransaction maxfeerate (kallewoof) +- #15680 Remove resendwallettransactions RPC method (jnewbery) +- #15508 Refactor analyzepsbt for use outside RPC code (gwillen) +- #15747 Remove plethora of Get*Balance (MarcoFalke) +- #15728 Refactor relay transactions (jnewbery) +- #15639 bitcoin-wallet tool: Drop libbitcoin_server.a dependency (ryanofsky) +- #15853 Remove unused import checkpoints.h (MarcoFalke) +- #15780 add cachable amounts for caching credit/debit values (kallewoof) +- #15778 Move maxtxfee from node to wallet (jnewbery) +- #15901 log on rescan completion (andrewtoth) +- #15917 Avoid logging no_such_file_or_directory error (promag) +- #15452 Replace CScriptID and CKeyID in CTxDestination with dedicated types (instagibbs) +- #15870 Only fail rescan when blocks have actually been pruned (MarcoFalke) +- #15006 Add option to create an encrypted wallet (achow101) +- #16001 Give WalletModel::UnlockContext move semantics (sipa) +- #15741 Batch write imported stuff in importmulti (achow101) +- #16144 do not encrypt wallets with disabled private keys (mrwhythat) +- #15024 Allow specific private keys to be derived from descriptor (meshcollider) +- #13756 "avoid_reuse" wallet flag for improved privacy (kallewoof) +- #16226 Move ismine to the wallet module (achow101) +- #16239 wallet/rpc: follow-up clean-up/fixes to avoid_reuse (kallewoof) +- #16286 refactoring: wallet: Fix GCC 7.4.0 warning (hebasto) +- #16257 abort when attempting to fund a transaction above -maxtxfee (Sjors) +- #16237 Have the wallet give out destinations instead of keys (achow101) +- #16322 Fix -maxtxfee check by moving it to CWallet::CreateTransaction (promag) +- #16361 Remove redundant pre-TopUpKeypool check (instagibbs) +- #16244 Move wallet creation out of the createwallet rpc into its own function (achow101) +- #16227 Refactor CWallet's inheritance chain (achow101) +- #16208 Consume ReserveDestination on successful CreateTransaction (instagibbs) +- #16301 Use CWallet::Import* functions in all import* RPCs (achow101) +- #16402 Remove wallet settings from chainparams (MarcoFalke) +- #16415 Get rid of PendingWalletTx class (ryanofsky) +- #15588 Log the actual wallet file version and no longer publicly expose the "version" record (achow101) +- #16399 Improve wallet creation (fjahr) +- #16475 Enumerate walletdb keys (MarcoFalke) +- #15709 Do not add "setting" key as unknown (Bushstar) +- #16451 Remove CMerkleTx (jnewbery) +- #15906 Move min_depth and max_depth to coin control (amitiuttarwar) +- #16502 Drop unused OldKey (promag) +- #16394 Allow createwallet to take empty passwords to make unencrypted wallets (achow101) +- #15911 Use wallet RBF default for walletcreatefundedpsbt (Sjors) +- #16503 Remove p2pEnabled from Chain interface (ariard) +- #16557 restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (jnewbery) +- #14934 Descriptor expansion cache clarifications (Sjors) +- #16383 rpcwallet: default include_watchonly to true for watchonly wallets (jb55) +- #16542 Return more specific errors about invalid descriptors (achow101) +- #16572 Fix Char as Bool in Wallet (JeremyRubin) +- #16753 extract PubKey from P2PK script with Solver (theStack) +- #16716 Use wallet name instead of pointer on unload/release (promag) +- #16185 gettransaction: add an argument to decode the transaction (darosior) +- #16745 Translate all initErrors in CreateWalletFromFile (MarcoFalke) +- #16792 Assert that the HRP is lowercase in Bech32::Encode (meshcollider) +- #16624 encapsulate transactions state (ariard) +- #16830 Cleanup walletinitinterface.h (hebasto) +- #16796 Fix segfault in CreateWalletFromFile (MarcoFalke) +- #16866 Rename 'decode' argument in gettransaction method to 'verbose' (jnewbery) +- #16727 Explicit feerate for bumpfee (instagibbs) +- #16609 descriptor: fix missed m_script_arg arg renaming in #14934 (fanquake) + +### RPC and other APIs +- #15492 remove deprecated generate method (Sjors) +- #15566 cli: Replace testnet with chain and return network name as per bip70 (fanquake) +- #15564 cli: Remove duplicate wallet fields from -getinfo (fanquake) +- #15642 Remove deprecated rpc warnings (jnewbery) +- #15637 Rename size to vsize in mempool related calls (fanquake) +- #15620 Uncouple non-wallet rpcs from maxTxFee global (MarcoFalke) +- #15616 Clarify decodescript RPCResult doc (MarcoFalke) +- #15669 Fix help text for signtransactionwithXXX (torkelrogstad) +- #15596 Ignore sendmany::minconf as dummy value (MarcoFalke) +- #15755 remove unused var in rawtransaction.cpp (Bushstar) +- #15746 RPCHelpMan: Always name dictionary keys (MarcoFalke) +- #15748 remove dead mining code (jnewbery) +- #15751 Speed up deriveaddresses for large ranges (sipa) +- #15770 Validate maxfeerate with AmountFromValue (promag) +- #15474 rest/rpc: Make mempoolinfo atomic (promag) +- #15463 Speedup getaddressesbylabel (promag) +- #15784 Remove dependency on interfaces::Chain in SignTransaction (ariard) +- #15323 Expose g_is_mempool_loaded via getmempoolinfo (Empact) +- #15932 Serialize in getblock without cs_main (MarcoFalke) +- #15930 Add balances RPC (MarcoFalke) +- #15730 Show scanning details in getwalletinfo (promag) +- #14802 faster getblockstats using BlockUndo data (FelixWeis) +- #14984 Speedup getrawmempool when verbose=true (promag) +- #16071 Hint for importmulti in help output of importpubkey and importaddress (kristapsk) +- #16063 Mention getwalletinfo where a rescan is triggered (promag) +- #16024 deriveaddresses: Correction of descriptor checksum in RPC example (ccapo) +- #16217 getrawtransaction: inform about blockhash argument when lookup fails (darosior) +- #15427 Add support for descriptors to utxoupdatepsbt (sipa) +- #16262 Allow shutdown while in generateblocks (pstratem) +- #15483 Adding a 'logpath' entry to getrpcinfo (darosior) +- #16325 Clarify that block count means height excl genesis (MarcoFalke) +- #16326 add new utxoupdatepsbt arguments to the CRPCCommand and CPRCCvertParam tables (jnewbery) +- #16332 Add logpath description for getrpcinfo (instagibbs) +- #16240 JSONRPCRequest-aware RPCHelpMan (kallewoof) +- #15996 Deprecate totalfee argument in `bumpfee` (instagibbs) +- #16467 sendrawtransaction help privacy note (jonatack) +- #16596 Fix getblocktemplate CLI example (emilengler) +- #15986 Add checksum to getdescriptorinfo (sipa) +- #16647 add weight to getmempoolentry output (fanquake) +- #16695 Add window final block height to getchaintxstats (leto) +- #16798 Refactor rawtransaction_util's SignTransaction to separate prevtx parsing (achow101) +- #16285 Improve scantxoutset response and help message (promag) +- #16725 Don't show addresses or P2PK in decoderawtransaction (NicolasDorier) +- #16787 Human readable network services (darosior) +- #16251 Improve signrawtransaction error reporting (ajtowns) +- #16873 fix regression in gettransaction (jonatack) +- #16512 Shuffle inputs and outputs after joining psbts (achow101) +- #16521 Use the default maxfeerate value as BTC/kB (Remagpie) +- #16817 Fix casing in getblockchaininfo to be inline with other fields (dangershony) +- #17131 fix -rpcclienttimeout 0 option (fjahr) +- #17249 Add missing deque include to fix build (jbeich) +- #17368 cli: fix -getinfo output when compiled with no wallet (fanquake) + +### GUI +- #15464 Drop unused return values in WalletFrame (promag) +- #15614 Defer removeAndDeleteWallet when no modal widget is active (promag) +- #15711 Generate bech32 addresses by default (MarcoFalke) +- #15829 update request payment button text and tab description (fanquake) +- #15874 Resolve the qt/guiutil <-> qt/optionsmodel CD (251Labs) +- #15371 Uppercase bech32 addresses in qr codes (benthecarman) +- #15928 Move QRImageWidget to its own file-pair (luke-jr) +- #16113 move coin control "OK" to the right hand side of the dialog (fanquake) +- #16090 Add vertical spacer to peer detail widget (JosuGZ) +- #15886 qt, wallet: Revamp SendConfirmationDialog (hebasto) +- #16263 Use qInfo() if no error occurs (hebasto) +- #16153 Add antialiasing to traffic graph widget (JosuGZ) +- #16350 Remove unused guard (hebasto) +- #16106 Sort wallets in open wallet menu (promag) +- #16291 Stop translating PACKAGE_NAME (MarcoFalke) +- #16380 Remove unused bits from the service flags enum (MarcoFalke) +- #16379 Fix autostart filenames on Linux for testnet/regtest (hebasto) +- #16366 init: Use InitError for all errors in bitcoind/qt (MarcoFalke) +- #16436 Do not create payment server if -disablewallet option provided (hebasto) +- #16514 Remove unused RPCConsole::tabFocus (promag) +- #16497 Generate bech32 addresses by default (take 2, fixup) (MarcoFalke) +- #16349 Remove redundant WalletController::addWallet slot (hebasto) +- #16578 Do not pass in command line arguments to QApplication (achow101) +- #16612 Remove menu icons (laanwj) +- #16677 remove unused PlatformStyle::TextColorIcon (fanquake) +- #16694 Ensure transaction send error is always visible (fanquake) +- #14879 Add warning messages to the debug window (hebasto) +- #16708 Replace obsolete functions of QSslSocket (hebasto) +- #16701 Replace functions deprecated in Qt 5.13 (hebasto) +- #16706 Replace deprecated QSignalMapper by lambda expressions (hebasto) +- #16707 Remove obsolete QModelIndex::child() (hebasto) +- #16758 Replace QFontMetrics::width() with TextWidth() (hebasto) +- #16760 Change uninstall icon on Windows (GChuf) +- #16720 Replace objc_msgSend() function calls with the native Objective-C syntax (hebasto) +- #16788 Update transifex slug for 0.19 (laanwj) +- #15450 Create wallet menu option (achow101) +- #16735 Remove unused menu items for Windows and Linux (GChuf) +- #16826 Do additional character escaping for wallet names and address labels (achow101) +- #15529 Add Qt programs to msvc build (updated, no code changes) (sipsorcery) +- #16714 add prune to intro screen with smart default (Sjors) +- #16858 advise users not to switch wallets when opening a BIP70 URI (jameshilliard) +- #16822 Create wallet menu option follow-ups (jonatack) +- #16882 Re-generate translations before 0.19.0 (MarcoFalke) +- #16928 Rename address checkbox back to bech32 (MarcoFalke) +- #16837 Fix {C{,XX},LD}FLAGS pickup (dongcarl) +- #16971 Change default size of intro frame (emilengler) +- #16988 Periodic translations update (laanwj) +- #16852 When BIP70 is disabled, get PaymentRequest merchant using string search (achow101) +- #16952 make sure to update the UI when deleting a transaction (jonasschnelli) +- #17031 Prevent processing duplicate payment requests (promag) +- #17135 Make polling in ClientModel asynchronous (promag) +- #17120 Fix start timer from non QThread (promag) +- #17257 disable font antialiasing for QR image address (fanquake) + +### Build system +- #14954 Require python 3.5 (MarcoFalke) +- #15580 native_protobuf: avoid system zlib (dongcarl) +- #15601 Switch to python3 (take 3) (MarcoFalke) +- #15581 Make less assumptions about build env (dongcarl) +- #14853 latest RapidCheck (fanquake) +- #15446 Improve depends debuggability (dongcarl) +- #13788 Fix --disable-asm for newer assembly checks/code (luke-jr) +- #12051 add missing debian contrib file to tarball (puchu) +- #15919 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift) +- #15978 .gitignore: Don't ignore depends patches (dongcarl) +- #15939 gitian: Remove windows 32 bit build (MarcoFalke) +- #15239 scripts and tools: Move non-linux build source tarballs to "bitcoin-binaries/version" directory (hebasto) +- #14047 Add HKDF_HMAC256_L32 and method to negate a private key (jonasschnelli) +- #16051 add patch to common dependencies (fanquake) +- #16049 switch to secure download of all dependencies (Kemu) +- #16059 configure: Fix thread_local detection (dongcarl) +- #16089 add ability to skip building zeromq (fanquake) +- #15844 Purge libtool archives (dongcarl) +- #15461 update to Boost 1.70 (Sjors) +- #16141 remove GZIP export from gitian descriptors (fanquake) +- #16235 Cleaned up and consolidated msbuild files (no code changes) (sipsorcery) +- #16246 MSVC: Fix error in debug mode (Fix #16245) (NicolasDorier) +- #16183 xtrans: Configure flags cleanup (dongcarl) +- #16258 [MSVC]: Create the config.ini as part of bitcoind build (NicolasDorier) +- #16271 remove -Wall from rapidcheck build flags (fanquake) +- #16309 [MSVC] allow user level project customization (NicolasDorier) +- #16308 [MSVC] Copy build output to src/ automatically after build (NicolasDorier) +- #15457 Check std::system for -[alert|block|wallet]notify (Sjors) +- #16344 use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors) +- #16352 prune dbus from depends (fanquake) +- #16270 expat 2.2.7 (fanquake) +- #16408 Prune X packages (dongcarl) +- #16386 disable unused Qt features (fanquake) +- #16424 Treat -Wswitch as error when --enable-werror (MarcoFalke) +- #16441 remove qt libjpeg check from bitcoin_qt.m4 (fanquake) +- #16434 Specify AM_CPPFLAGS for ZMQ (domob1812) +- #16534 add Qt Creator Makefile.am.user to .gitignore (Bushstar) +- #16573 disable building libsecp256k1 benchmarks (fanquake) +- #16533 disable libxcb extensions (fanquake) +- #16589 Remove unused src/obj-test folder (MarcoFalke) +- #16435 autoconf: Sane `--enable-debug` defaults (dongcarl) +- #16622 echo property tests status during build (jonatack) +- #16611 Remove src/obj directory from repository (laanwj) +- #16371 ignore macOS make deploy artefacts & add them to clean-local (fanquake) +- #16654 build: update RapidCheck Makefile (jonatack) +- #16370 cleanup package configure flags (fanquake) +- #16746 msbuild: Ignore linker warning (sipsorcery) +- #16750 msbuild: adds bench_bitcoin to auto generated project files (sipsorcery) +- #16810 guix: Remove ssp spec file hack (dongcarl) +- #16477 skip deploying plugins we dont use in macdeployqtplus (fanquake) +- #16413 Bump QT to LTS release 5.9.8 (THETCR) +- #15584 disable BIP70 support by default (fanquake) +- #16871 make building protobuf optional in depends (fanquake) +- #16879 remove redundant sed patching (fanquake) +- #16809 zlib: Move toolchain options to configure (dongcarl) +- #15146 Solve SmartOS FD_ZERO build issue (Empact) +- #16870 update boost macros to latest upstream for improved error reporting (fanquake) +- #16982 Factor out qt translations from build system (laanwj) +- #16926 Add OpenSSL termios fix for musl libc (nmarley) +- #16927 Refresh ZeroMQ 4.3.1 patch (nmarley) +- #17005 Qt version appears only if GUI is being built (ch4ot1c) +- #16468 Exclude depends/Makefile in .gitignore (promag) + +### Tests and QA +- #15296 Add script checking for deterministic line coverage in unit tests (practicalswift) +- #15338 ci: Build and run tests once on freebsd (MarcoFalke) +- #15479 Add .style.yapf (MarcoFalke) +- #15534 lint-format-strings: open files sequentially (fix for OS X) (gwillen) +- #15504 fuzz: Link BasicTestingSetup (shared with unit tests) (MarcoFalke) +- #15473 bench: Benchmark mempooltojson (MarcoFalke) +- #15466 Print remaining jobs in test_runner.py (stevenroose) +- #15631 mininode: Clearer error message on invalid magic bytes (MarcoFalke) +- #15255 Remove travis_wait from lint script (gkrizek) +- #15686 make pruning test faster (jnewbery) +- #15533 .style.yapf: Set column_limit=160 (MarcoFalke) +- #15660 Overhaul p2p_compactblocks.py (sdaftuar) +- #15495 Add regtests for HTTP status codes (domob1812) +- #15772 Properly log named args in authproxy (MarcoFalke) +- #15771 Prevent concurrency issues reading .cookie file (promag) +- #15693 travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke) +- #15629 init: Throw error when network specific config is ignored (MarcoFalke) +- #15773 Add BitcoinTestFramework::sync_* methods (MarcoFalke) +- #15797 travis: Bump second timeout to 33 minutes, add rationale (MarcoFalke) +- #15788 Unify testing setups for fuzz, bench, and unit tests (MarcoFalke) +- #15352 Reduce noise level in test_bitcoin output (practicalswift) +- #15779 Add wallet_balance benchmark (MarcoFalke) +- #15843 fix outdated include in blockfilter_index_tests (jamesob) +- #15866 Add missing syncwithvalidationinterfacequeue to wallet_import_rescan (MarcoFalke) +- #15697 Make swap_magic_bytes in p2p_invalid_messages atomic (MarcoFalke) +- #15895 Avoid re-reading config.ini unnecessarily (luke-jr) +- #15896 feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME in messages rather than hardcoding Bitcoin Core (luke-jr) +- #15897 QA/mininode: Send all headers upfront in send_blocks_and_test to avoid sending an unconnected one (luke-jr) +- #15696 test_runner: Move feature_pruning to base tests (MarcoFalke) +- #15869 Add settings merge test to prevent regresssions (ryanofsky) +- #15758 Add further tests to wallet_balance (MarcoFalke) +- #15841 combine_logs: append node stderr and stdout if it exists (MarcoFalke) +- #15949 test_runner: Move pruning back to extended (MarcoFalke) +- #15927 log thread names by default in functional tests (jnewbery) +- #15664 change default Python block serialization to witness (instagibbs) +- #15988 Add test for ArgsManager::GetChainName (ryanofsky) +- #15963 Make random seed logged and settable (jnewbery) +- #15943 Fail if RPC has been added without tests (MarcoFalke) +- #16036 travis: Run all lint scripts even if one fails (scravy) +- #13555 parameterize adjustment period in versionbits_computeblockversion (JBaczuk) +- #16079 wallet_balance.py: Prevent edge cases (stevenroose) +- #16078 replace tx hash with txid in rawtransaction test (LongShao007) +- #16042 Bump MAX_NODES to 12 (MarcoFalke) +- #16124 Limit Python linting to files in the repo (practicalswift) +- #16143 Mark unit test blockfilter_index_initial_sync as non-deterministic (practicalswift) +- #16214 travis: Fix caching issues (MarcoFalke) +- #15982 Make msg_block a witness block (MarcoFalke) +- #16225 Make coins_tests/updatecoins_simulation_test deterministic (practicalswift) +- #16236 fuzz: Log output even if fuzzer failed (MarcoFalke) +- #15520 cirrus: Run extended test feature_pruning (MarcoFalke) +- #16234 Add test for unknown args (MarcoFalke) +- #16207 stop generating lcov coverage when functional tests fail (asood123) +- #16252 Log to debug.log in all unit tests (MarcoFalke) +- #16289 Add missing ECC_Stop() in GUI rpcnestedtests.cpp (jonasschnelli) +- #16278 Remove unused includes (practicalswift) +- #16302 Add missing syncwithvalidationinterfacequeue to wallet_balance test (MarcoFalke) +- #15538 wallet_bumpfee.py: Make sure coin selection produces change (instagibbs) +- #16294 Create at most one testing setup (MarcoFalke) +- #16299 bench: Move generated data to a dedicated translation unit (promag) +- #16329 Add tests for getblockchaininfo.softforks (MarcoFalke) +- #15687 tool wallet test coverage for unexpected writes to wallet (jonatack) +- #16267 bench: Benchmark blocktojson (fanatid) +- #14505 Add linter to make sure single parameter constructors are marked explicit (practicalswift) +- #16338 Disable other targets when enable-fuzz is set (qmma70) +- #16334 rpc_users: Also test rpcauth.py with password (dongcarl) +- #15282 Replace hard-coded hex tx with class in test framework (stevenroose) +- #16390 Add --filter option to test_runner.py (promag) +- #15891 Require standard txs in regtest by default (MarcoFalke) +- #16374 Enable passing wildcard test names to test runner from root (jonatack) +- #16420 Fix race condition in wallet_encryption test (jonasschnelli) +- #16422 remove redundant setup in addrman_tests (zenosage) +- #16438 travis: Print memory and number of cpus (MarcoFalke) +- #16445 Skip flaky p2p_invalid_messages test on macOS (fjahr) +- #16459 Fix race condition in example_test.py (sdaftuar) +- #16464 Ensure we don't generate a too-big block in p2sh sigops test (sdaftuar) +- #16491 fix deprecated log.warn in feature_dbcrash test (jonatack) +- #15134 Switch one of the Travis jobs to an unsigned char environment (-funsigned-char) (practicalswift) +- #16505 Changes verbosity of msbuild from quiet to normal in the appveyor script (sipsorcery) +- #16293 Make test cases separate functions (MarcoFalke) +- #16470 Fail early on disconnect in mininode.wait_for_* (MarcoFalke) +- #16277 Suppress output in test_bitcoin for expected errors (gertjaap) +- #16493 Fix test failures (MarcoFalke) +- #16538 Add missing sync_blocks to feature_pruning (MarcoFalke) +- #16509 Adapt test framework for chains other than "regtest" (MarcoFalke) +- #16363 Add test for BIP30 duplicate tx (MarcoFalke) +- #16535 Explain why -whitelist is used in feature_fee_estimation (MarcoFalke) +- #16554 only include and use OpenSSL where it's actually needed (BIP70) (fanquake) +- #16598 Remove confusing hash256 function in util (elichai) +- #16595 travis: Use extended 90 minute timeout when available (MarcoFalke) +- #16563 Add unit test for AddTimeData (mzumsande) +- #16561 Use colors and dots in test_runner.py output only if standard output is a terminal (practicalswift) +- #16465 Test p2sh-witness and bech32 in wallet_import_rescan (MarcoFalke) +- #16582 Rework ci (Use travis only as fallback env) (MarcoFalke) +- #16633 travis: Fix test_runner.py timeouts (MarcoFalke) +- #16646 Run tests with UPnP disabled (fanquake) +- #16623 ci: Add environment files for all settings (MarcoFalke) +- #16656 fix rpc_setban.py race (jonasschnelli) +- #16570 Make descriptor tests deterministic (davereikher) +- #16404 Test ZMQ notification after chain reorg (promag) +- #16726 Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values (practicalswift) +- #16739 ci: Pass down $makejobs to test_runner.py, other improvements (MarcoFalke) +- #16767 Check for codespell in lint-spelling.sh (kristapsk) +- #16768 Make lint-includes.sh work from any directory (kristapsk) +- #15257 Scripts and tools: Bump flake8 to 3.7.8 (Empact) +- #16804 Remove unused try-block in assert_debug_log (MarcoFalke) +- #16850 `servicesnames` field in `getpeerinfo` and `getnetworkinfo` (darosior) +- #16551 Test that low difficulty chain fork is rejected (MarcoFalke) +- #16737 Establish only one connection between nodes in rpc_invalidateblock (MarcoFalke) +- #16845 Add notes on how to generate data/wallets/high_minversion (MarcoFalke) +- #16888 Bump timeouts in slow running tests (MarcoFalke) +- #16864 Add python bech32 impl round-trip test (instagibbs) +- #16865 add some unit tests for merkle.cpp (soroosh-sdi) +- #14696 Add explicit references to related CVE's in p2p_invalid_block test (lucash-dev) +- #16907 lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke) +- #16898 Remove connect_nodes_bi (MarcoFalke) +- #16917 Move common function assert_approx() into util.py (fridokus) +- #16921 Add information on how to add Vulture suppressions (practicalswift) +- #16920 Fix extra_args in wallet_import_rescan.py (MarcoFalke) +- #16918 Make PORT_MIN in test runner configurable (MarcoFalke) +- #16941 travis: Disable feature_block in tsan run due to oom (MarcoFalke) +- #16929 follow-up to rpc: default maxfeerate value as BTC/kB (jonatack) +- #16959 ci: Set $host before setting fallback values (MarcoFalke) +- #16961 Remove python dead code linter (laanwj) +- #16931 add unittests for CheckProofOfWork (soroosh-sdi) +- #16991 Fix service flag comparison check in rpc_net test (luke-jr) (laanwj) +- #16987 Correct docstring param name (jbampton) +- #17015 Explain QT_QPA_PLATFORM for gui tests (MarcoFalke) +- #17006 Enable UBSan for Travis fuzzing job (practicalswift) +- #17086 Fix fs_tests for unknown locales (carnhofdaki) +- #15903 appveyor: Write @PACKAGE_NAME@ to config (MarcoFalke) +- #16742 test: add executable flag for wallet_watchonly.py (theStack) +- #16740 qa: Relax so that the subscriber is ready before publishing zmq messages (#16740) + +### Miscellaneous +- #15335 Fix lack of warning of unrecognized section names (AkioNak) +- #15528 contrib: Bump gitian descriptors for 0.19 (MarcoFalke) +- #15609 scripts and tools: Set 'distro' explicitly (hebasto) +- #15519 Add Poly1305 implementation (jonasschnelli) +- #15643 contrib: Gh-merge: include acks in merge commit (MarcoFalke) +- #15838 scripts and tools: Fetch missing review comments in github-merge.py (nkostoulas) +- #15920 lint: Check that all wallet args are hidden (MarcoFalke) +- #15849 Thread names in logs and deadlock debug tools (jamesob) +- #15650 Handle the result of posix_fallocate system call (lucayepa) +- #15766 scripts and tools: Upgrade gitian image before signing (hebasto) +- #15512 Add ChaCha20 encryption option (XOR) (jonasschnelli) +- #15968 Fix portability issue with pthreads (grim-trigger) +- #15970 Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL (orientye) +- #15863 scripts and tools: Ensure repos are up-to-date in gitian-build.py (hebasto) +- #15224 Add RNG strengthening (10ms once every minute) (sipa) +- #15840 Contrib scripts: Filter IPv6 by ASN (abitfan) +- #13998 Scripts and tools: gitian-build.py improvements and corrections (hebasto) +- #15236 scripts and tools: Make --setup command independent (hebasto) +- #16114 contrib: Add curl as a required program in gitian-build.py (fanquake) +- #16046 util: Add type safe gettime (MarcoFalke) +- #15703 Update secp256k1 subtree to latest upstream (sipa) +- #16086 contrib: Use newer config.guess & config.sub in install_db4.sh (fanquake) +- #16130 Don't GPG sign intermediate commits with github-merge tool (stevenroose) +- #16162 scripts: Add key for michael ford (fanquake) to trusted keys list (fanquake) +- #16201 devtools: Always use unabbreviated commit IDs in github-merge.py (laanwj) +- #16112 util: Log early messages (MarcoFalke) +- #16223 devtools: Fetch and display ACKs at sign-off time in github-merge (laanwj) +- #16300 util: Explain why the path is cached (MarcoFalke) +- #16314 scripts and tools: Update copyright_header.py script (hebasto) +- #16158 Fix logic of memory_cleanse() on MSVC and clean up docs (real-or-random) +- #14734 fix an undefined behavior in uint::SetHex (kazcw) +- #16327 scripts and tools: Update ShellCheck linter (hebasto) +- #15277 contrib: Enable building in guix containers (dongcarl) +- #16362 Add bilingual_str type (hebasto) +- #16481 logs: add missing space (harding) +- #16581 sipsorcery gitian key (sipsorcery) +- #16566 util: Refactor upper/lowercase functions (kallewoof) +- #16620 util: Move resolveerrmsg to util/error (MarcoFalke) +- #16625 scripts: Remove github-merge.py (fanquake) +- #15864 Fix datadir handling (hebasto) +- #16670 util: Add join helper to join a list of strings (MarcoFalke) +- #16665 scripts: Move update-translations.py to maintainer-tools repo (fanquake) +- #16730 Support serialization of `std::vector` (sipa) +- #16556 Fix systemd service file configuration directory setup (setpill) +- #15615 Add log output during initial header sync (jonasschnelli) +- #16774 Avoid unnecessary "Synchronizing blockheaders" log messages (jonasschnelli) +- #16489 log: harmonize bitcoind logging (jonatack) +- #16577 util: Cbufferedfile fixes and unit test (LarryRuane) +- #16984 util: Make thread names shorter (hebasto) +- #17038 Don't rename main thread at process level (laanwj) +- #17184 util: Filter out macos process serial number (hebasto) +- #17095 util: Filter control characters out of log messages (laanwj) +- #17085 init: Change fallback locale to C.UTF-8 (laanwj) +- #16957 9% less memory: make SaltedOutpointHasher noexcept (martinus) +- #17449 fix uninitialized variable nMinerConfirmationWindow (bitcoinVBR) + +### Documentation +- #15514 Update Transifex links (fanquake) +- #15513 add "sections" info to example bitcoin.conf (fanquake) +- #15530 Move wallet lock annotations to header (MarcoFalke) +- #15562 remove duplicate clone step in build-windows.md (fanquake) +- #15565 remove release note fragments (fanquake) +- #15444 Additional productivity tips (Sjors) +- #15577 Enable TLS in link to chris.beams.io (JeremyRand) +- #15604 release note for disabling reject messages by default (jnewbery) +- #15611 Add Gitian key for droark (droark) +- #15626 Update ACK description in CONTRIBUTING.md (jonatack) +- #15603 Add more tips to productivity.md (gwillen) +- #15683 Comment for seemingly duplicate LIBBITCOIN_SERVER (Bushstar) +- #15685 rpc-mining: Clarify error messages (MarcoFalke) +- #15760 Clarify sendrawtransaction::maxfeerate==0 help (MarcoFalke) +- #15659 fix findFork comment (r8921039) +- #15718 Improve netaddress comments (dongcarl) +- #15833 remove out-of-date comment on pay-to-witness support (r8921039) +- #15821 Remove upgrade note in release notes from EOL versions (MarcoFalke) +- #15267 explain AcceptToMemoryPoolWorker's coins_to_uncache (jamesob) +- #15887 Align code example style with clang-format (hebasto) +- #15877 Fix -dustrelayfee= argument docs grammar (keepkeyjon) +- #15908 Align MSVC build options with Linux build ones (hebasto) +- #15941 Add historical release notes for 0.18.0 (laanwj) +- #15794 Clarify PR guidelines w/re documentation (dongcarl) +- #15607 Release process updates (jonatack) +- #14364 Clarify -blocksdir usage (sangaman) +- #15777 Add doxygen comments for keypool classes (jnewbery) +- #15820 Add productivity notes for dummy rebases (dongcarl) +- #15922 Explain how to pass in non-fundamental types into functions (MarcoFalke) +- #16080 build/doc: update bitcoin_config.h packages, release process (jonatack) +- #16047 analyzepsbt description in doc/psbt.md (jonatack) +- #16039 add release note for 14954 (fanquake) +- #16139 Add riscv64 to outputs list in release-process.md (JeremyRand) +- #16140 create security policy (narula) +- #16164 update release process for SECURITY.md (jonatack) +- #16213 Remove explicit mention of versions from SECURITY.md (MarcoFalke) +- #16186 doc/lint: Fix spelling errors identified by codespell 1.15.0 (Empact) +- #16149 Rework section on ACK in CONTRIBUTING.md (MarcoFalke) +- #16196 Add release notes for 14897 & 15834 (MarcoFalke) +- #16241 add rapidcheck to vcpkg install list (fanquake) +- #16243 Remove travis badge from readme (MarcoFalke) +- #16256 remove orphaned header in developer notes (jonatack) +- #15964 Improve build-osx document formatting (giulio92) +- #16313 Fix broken link in doc/build-osx.md (jonatack) +- #16330 Use placeholder instead of key expiration date (hebasto) +- #16339 add reduce-memory.md (fanquake) +- #16347 Include static members in Doxygen (dongcarl) +- #15824 Improve netbase comments (dongcarl) +- #16430 Update bips 35, 37 and 111 status (MarcoFalke) +- #16455 Remove downgrading warning in release notes, per 0.18 branch (MarcoFalke) +- #16484 update labels in CONTRIBUTING.md (MarcoFalke) +- #16483 update Python command in msvc readme (sipsorcery) +- #16504 Add release note for the deprecated totalFee option of bumpfee (promag) +- #16448 add note on precedence of options in bitcoin.conf (fanquake) +- #16536 Update and extend benchmarking.md (ariard) +- #16530 Fix grammar and punctuation in developer notes (Tech1k) +- #16574 Add historical release notes for 0.18.1 (laanwj) +- #16585 Update Markdown syntax for bdb packages (emilengler) +- #16586 Mention other ways to conserve memory on compilation (MarcoFalke) +- #16605 Add missing contributor to 0.18.1 release notes (meshcollider) +- #16615 Fix typos in COPYRIGHT (gapeman) +- #16626 Fix spelling error chache -> cache (nilswloewen) +- #16587 Improve versionbits.h documentation (ariard) +- #16643 Add ZMQ dependencies to the Fedora build instructions (hebasto) +- #16634 Refer in rpcbind doc to the manpage (MarcoFalke) +- #16555 mention whitelist is inbound, and applies to blocksonly (Sjors) +- #16645 initial RapidCheck property-based testing documentation (jonatack) +- #16691 improve depends prefix documentation (fanquake) +- #16629 Add documentation for the new whitelist permissions (NicolasDorier) +- #16723 Update labels in CONTRIBUTING.md (hebasto) +- #16461 Tidy up shadowing section (promag) +- #16621 add default bitcoin.conf locations (GChuf) +- #16752 Delete stale URL in test README (michaelfolkson) +- #14862 Declare BLOCK_VALID_HEADER reserved (MarcoFalke) +- #16806 Add issue templates for bug and feature request (MarcoFalke) +- #16857 Elaborate need to re-login on Debian-based after usermod for Tor group (clashicly) +- #16863 Add a missing closing parenthesis in the bitcoin-wallet's help (darosior) +- #16757 CChainState return values (MarcoFalke) +- #16847 add comments clarifying how local services are advertised (jamesob) +- #16812 Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in (ch4ot1c) +- #16885 Update tx-size-small comment with relevant CVE disclosure (instagibbs) +- #16900 Fix doxygen comment for SignTransaction in rpc/rawtransaction_util (MarcoFalke) +- #16914 Update homebrew instruction for doxygen (Sjors) +- #16912 Remove Doxygen intro from src/bitcoind.cpp (ch4ot1c) +- #16960 replace outdated OpenSSL comment in test README (fanquake) +- #16968 Remove MSVC update step from translation process (laanwj) +- #16953 Improve test READMEs (fjahr) +- #16962 Put PR template in comments (laanwj) +- #16397 Clarify includeWatching for fundrawtransaction (stevenroose) +- #15459 add how to calculate blockchain and chainstate size variables to release process (marcoagner) +- #16997 Update bips.md for 0.19 (laanwj) +- #17001 Remove mention of renamed mapBlocksUnlinked (MarcoFalke) +- #17014 Consolidate release notes before 0.19.0 (move-only) (MarcoFalke) +- #17111 update bips.md with buried BIP9 deployments (MarcoFalke) + Credits ======= Thanks to everyone who directly contributed to this release: +- 251 +- Aaron Clauson +- Akio Nakamura +- Alistair Mann +- Amiti Uttarwar +- Andrew Chow +- andrewtoth +- Anthony Towns +- Antoine Riard +- Aseem Sood +- Ben Carman +- Ben Woosley +- bpay +- Carl Dong +- Carnhof Daki +- Chris Capobianco +- Chris Moore +- Chuf +- clashic +- clashicly +- Cory Fields +- Daki Carnhof +- Dan Gershony +- Daniel Edgecumbe +- Daniel Kraft +- Daniel McNally +- darosior +- David A. Harding +- David Reikher +- Douglas Roark +- Elichai Turkel +- Emil +- Emil Engler +- ezegom +- Fabian Jahr +- fanquake +- Felix Weis +- Ferdinando M. Ametrano +- fridokus +- gapeman +- GChuf +- Gert-Jaap Glasbergen +- Giulio Lombardo +- Glenn Willen +- Graham Krizek +- Gregory Sanders +- grim-trigger +- gwillen +- Hennadii Stepanov +- Jack Mallers +- James Hilliard +- James O'Beirne +- Jan Beich +- Jeremy Rubin +- JeremyRand +- Jim Posen +- John Bampton +- John Newbery +- Jon Atack +- Jon Layton +- Jonas Schnelli +- Jonathan "Duke" Leto +- João Barbosa +- Joonmo Yang +- Jordan Baczuk +- Jorge Timón +- Josu Goñi +- Julian Fleischer +- Karl-Johan Alm +- Kaz Wesley +- keepkeyjon +- Kirill Fomichev +- Kristaps Kaupe +- Kristian Kramer +- Larry Ruane +- Lenny Maiorani +- LongShao007 +- Luca Venturini +- lucash-dev +- Luke Dashjr +- marcoagner +- MarcoFalke +- marcuswin +- Martin Ankerl +- Martin Zumsande +- Matt Corallo +- MeshCollider +- Michael Folkson +- Miguel Herranz +- Nathan Marley +- Neha Narula +- nicolas.dorier +- Nils Loewen +- nkostoulas +- NullFunctor +- orient +- Patrick Strateman +- Peter Bushnell +- Peter Wagner +- Pieter Wuille +- practicalswift +- qmma +- r8921039 +- RJ Rybarczyk +- Russell Yanofsky +- Samuel Dobson +- Sebastian Falbesoner +- setpill +- shannon1916 +- Sjors Provoost +- soroosh-sdi +- Steven Roose +- Suhas Daftuar +- tecnovert +- THETCR +- Tim Ruffing +- Tobias Kaderle +- Torkel Rogstad +- Ulrich Kempken +- whythat +- William Casarin +- Wladimir J. van der Laan +- zenosage -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). +As well as everyone that helped translating on [Transifex](https://www.transifex.com/bitcoin/bitcoin/). From 1bc9988993ee84bc814e5a7f33cc90f670a19f6a Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 18 Nov 2019 10:44:44 +0100 Subject: [PATCH 029/388] doc: Generate manpages for 0.19.0.1 Tree-SHA512: d53a2bfa5bc589e7130cf8cd1627083ad7c72a197cbd80754c9dcf78e3775021fbd6426c5762f5f3e52e4b23ed06387c0be224914e0f98d14f3f7e51ee66c809 --- doc/man/bitcoin-cli.1 | 6 +++--- doc/man/bitcoin-qt.1 | 6 +++--- doc/man/bitcoin-tx.1 | 6 +++--- doc/man/bitcoin-wallet.1 | 6 +++--- doc/man/bitcoind.1 | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1 index 5ff6e5e2cb..440c3604ff 100644 --- a/doc/man/bitcoin-cli.1 +++ b/doc/man/bitcoin-cli.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-CLI "1" "October 2019" "bitcoin-cli v0.19.0.0" "User Commands" +.TH BITCOIN-CLI "1" "November 2019" "bitcoin-cli v0.19.0.1" "User Commands" .SH NAME -bitcoin-cli \- manual page for bitcoin-cli v0.19.0.0 +bitcoin-cli \- manual page for bitcoin-cli v0.19.0.1 .SH SYNOPSIS .B bitcoin-cli [\fI\,options\/\fR] \fI\, \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR @@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v0.19.0.0 .B bitcoin-cli [\fI\,options\/\fR] \fI\,help Get help for a command\/\fR .SH DESCRIPTION -Bitcoin Core RPC client version v0.19.0.0 +Bitcoin Core RPC client version v0.19.0.1 .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1 index 12238d2aa5..7fce574a16 100644 --- a/doc/man/bitcoin-qt.1 +++ b/doc/man/bitcoin-qt.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-QT "1" "October 2019" "bitcoin-qt v0.19.0.0" "User Commands" +.TH BITCOIN-QT "1" "November 2019" "bitcoin-qt v0.19.0.1" "User Commands" .SH NAME -bitcoin-qt \- manual page for bitcoin-qt v0.19.0.0 +bitcoin-qt \- manual page for bitcoin-qt v0.19.0.1 .SH SYNOPSIS .B bitcoin-qt [\fI\,command-line options\/\fR] .SH DESCRIPTION -Bitcoin Core version v0.19.0.0 (64\-bit) +Bitcoin Core version v0.19.0.1 (64\-bit) .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1 index 9023d1ace4..28e65f0787 100644 --- a/doc/man/bitcoin-tx.1 +++ b/doc/man/bitcoin-tx.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-TX "1" "October 2019" "bitcoin-tx v0.19.0.0" "User Commands" +.TH BITCOIN-TX "1" "November 2019" "bitcoin-tx v0.19.0.1" "User Commands" .SH NAME -bitcoin-tx \- manual page for bitcoin-tx v0.19.0.0 +bitcoin-tx \- manual page for bitcoin-tx v0.19.0.1 .SH SYNOPSIS .B bitcoin-tx [\fI\,options\/\fR] \fI\, \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR @@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v0.19.0.0 .B bitcoin-tx [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded bitcoin transaction\/\fR .SH DESCRIPTION -Bitcoin Core bitcoin\-tx utility version v0.19.0.0 +Bitcoin Core bitcoin\-tx utility version v0.19.0.1 .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1 index f671e29843..af95496a1d 100644 --- a/doc/man/bitcoin-wallet.1 +++ b/doc/man/bitcoin-wallet.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-WALLET "1" "October 2019" "bitcoin-wallet v0.19.0.0" "User Commands" +.TH BITCOIN-WALLET "1" "November 2019" "bitcoin-wallet v0.19.0.1" "User Commands" .SH NAME -bitcoin-wallet \- manual page for bitcoin-wallet v0.19.0.0 +bitcoin-wallet \- manual page for bitcoin-wallet v0.19.0.1 .SH DESCRIPTION -Bitcoin Core bitcoin\-wallet version v0.19.0.0 +Bitcoin Core bitcoin\-wallet version v0.19.0.1 .PP wallet\-tool is an offline tool for creating and interacting with Bitcoin Core wallet files. By default wallet\-tool will act on wallets in the default mainnet wallet directory in the datadir. diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1 index f79fd3a0e0..ba736aa3ea 100644 --- a/doc/man/bitcoind.1 +++ b/doc/man/bitcoind.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIND "1" "October 2019" "bitcoind v0.19.0.0" "User Commands" +.TH BITCOIND "1" "November 2019" "bitcoind v0.19.0.1" "User Commands" .SH NAME -bitcoind \- manual page for bitcoind v0.19.0.0 +bitcoind \- manual page for bitcoind v0.19.0.1 .SH SYNOPSIS .B bitcoind [\fI\,options\/\fR] \fI\,Start Bitcoin Core\/\fR .SH DESCRIPTION -Bitcoin Core version v0.19.0.0 +Bitcoin Core version v0.19.0.1 .SH OPTIONS .HP \-? From dd198064b5d9796d20c997de313ead435afd8bf1 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sun, 24 Nov 2019 11:12:36 +0100 Subject: [PATCH 030/388] doc: Clear out release notes after 0.19.0.1 Tree-SHA512: 4de65e8d0f91f9b16f374adb57a3cccc4421af47e1ef474d16afe520ca575f7b5acf871b805453a93c6e0ba1c61ab864a317df0af483da1c46c75d620e8e56d6 --- doc/release-notes.md | 1070 +----------------- doc/release-notes/release-notes-0.19.0.1.md | 1089 +++++++++++++++++++ doc/release-notes/release-notes-0.19.0.md | 1086 +----------------- 3 files changed, 1119 insertions(+), 2126 deletions(-) create mode 100644 doc/release-notes/release-notes-0.19.0.1.md diff --git a/doc/release-notes.md b/doc/release-notes.md index 70b8ec589f..db5aa0d8a7 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,6 +1,23 @@ -Bitcoin Core version 0.19.0.1 is now available from: +*After branching off for a major version release of Bitcoin Core, use this +template to create the initial release notes draft.* - +*The release notes draft is a temporary file that can be added to by anyone. See +[/doc/developer-notes.md#release-notes](/doc/developer-notes.md#release-notes) +for the process.* + +*Create the draft, named* "*version* Release Notes Draft" +*(e.g. "0.20.0 Release Notes Draft"), as a collaborative wiki in:* + +https://github.com/bitcoin-core/bitcoin-devwiki/wiki/ + +*Before the final release, move the notes back to this git repository.* + +*version* Release Notes Draft +=============================== + +Bitcoin Core version *version* is now available from: + + This release includes new features, various bug fixes and performance improvements, as well as updated translations. @@ -22,7 +39,7 @@ installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) or `bitcoind`/`bitcoin-qt` (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but might take some time if the datadir needs to be migrated. Old +possible, but it might take some time if the datadir needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. Compatibility @@ -35,1055 +52,22 @@ to use Bitcoin Core on unsupported systems. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. -From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is -built using Qt 5.9.x, which doesn't support versions of macOS older than -10.10. Additionally, Bitcoin Core does not yet change appearance when +From Bitcoin Core 0.17.0 onwards, macOS versions earlier than 10.10 are no +longer supported, as Bitcoin Core is now built using Qt 5.9.x which requires +macOS 10.10+. Additionally, Bitcoin Core does not yet change appearance when macOS "dark mode" is activated. -Users running macOS Catalina may need to "right-click" and then choose "Open" -to open the Bitcoin Core .dmg. This is due to new signing requirements -imposed by Apple, which the Bitcoin Core project does not yet adhere too. +In addition to previously supported CPU platforms, this release's pre-compiled +distribution provides binaries for the RISC-V platform. Notable changes =============== -New user documentation ----------------------- - -- [Reduce memory](https://github.com/bitcoin/bitcoin/blob/master/doc/reduce-memory.md) - suggests configuration tweaks for running Bitcoin Core on systems with - limited memory. (#16339) - -New RPCs --------- - -- `getbalances` returns an object with all balances (`mine`, - `untrusted_pending` and `immature`). Please refer to the RPC help of - `getbalances` for details. The new RPC is intended to replace - `getbalance`, `getunconfirmedbalance`, and the balance fields in - `getwalletinfo`. These old calls and fields may be removed in a - future version. (#15930, #16239) - -- `setwalletflag` sets and unsets wallet flags that enable or disable - features specific to that existing wallet, such as the new - `avoid_reuse` feature documented elsewhere in these release notes. - (#13756) - -- `getblockfilter` gets the BIP158 filter for the specified block. This - RPC is only enabled if block filters have been created using the - `-blockfilterindex` configuration option. (#14121) - -New settings ------------- - -- `-blockfilterindex` enables the creation of BIP158 block filters for - the entire blockchain. Filters will be created in the background and - currently use about 4 GiB of space. Note: this version of Bitcoin - Core does not serve block filters over the P2P network, although the - local user may obtain block filters using the `getblockfilter` RPC. - (#14121) - -Updated settings ----------------- - -- `whitebind` and `whitelist` now accept a list of permissions to - provide peers connecting using the indicated interfaces or IP - addresses. If no permissions are specified with an address or CIDR - network, the implicit default permissions are the same as previous - releases. See the `bitcoind -help` output for these two options for - details about the available permissions. (#16248) - -- Users setting custom `dbcache` values can increase their setting slightly - without using any more real memory. Recent changes reduced the memory use - by about 9% and made chainstate accounting more accurate (it was underestimating - the use of memory before). For example, if you set a value of "450" before, you - may now set a value of "500" to use about the same real amount of memory. (#16957) - - -Updated RPCs ------------- - -Note: some low-level RPC changes mainly useful for testing are described in the -Low-level Changes section below. - -- `sendmany` no longer has a `minconf` argument. This argument was not - well-specified and would lead to RPC errors even when the wallet's - coin selection succeeded. Users who want to influence coin selection - can use the existing `-spendzeroconfchange`, `-limitancestorcount`, - `-limitdescendantcount` and `-walletrejectlongchains` configuration - arguments. (#15596) - -- `getbalance` and `sendtoaddress`, plus the new RPCs `getbalances` and - `createwallet`, now accept an "avoid_reuse" parameter that controls - whether already used addresses should be included in the operation. - Additionally, `sendtoaddress` will avoid partial spends when - `avoid_reuse` is enabled even if this feature is not already enabled - via the `-avoidpartialspends` command line flag because not doing so - would risk using up the "wrong" UTXO for an address reuse case. - (#13756) - -- RPCs which have an `include_watchonly` argument or `includeWatching` option now default to `true` for watch-only - wallets. Affected RPCs are: `getbalance`, `listreceivedbyaddress`, `listreceivedbylabel`, `listtransactions`, - `listsinceblock`, `gettransaction`, `walletcreatefundedpsbt`, and `fundrawtransaction`. (#16383) - -- `listunspent` now returns a "reused" bool for each output if the - wallet flag "avoid_reuse" is enabled. (#13756) - -- `getblockstats` now uses BlockUndo data instead of the transaction - index, making it much faster, no longer dependent on the `-txindex` - configuration option, and functional for all non-pruned blocks. - (#14802) - -- `utxoupdatepsbt` now accepts a `descriptors` parameter that will fill - out input and output scripts and keys when known. P2SH-witness inputs - will be filled in from the UTXO set when a descriptor is provided that - shows they're spending segwit outputs. See the RPC help text for full - details. (#15427) - -- `sendrawtransaction` and `testmempoolaccept` no longer accept a - `allowhighfees` parameter to fail mempool acceptance if the - transaction fee exceeds the value of the configuration option - `-maxtxfee`. Now there is a hardcoded default maximum feerate that - can be changed when calling either RPC using a `maxfeerate` parameter. - (#15620) - -- `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry`, and - `getrawmempool` no longer return a `size` field unless the - configuration option `-deprecatedrpc=size` is used. Instead a new - `vsize` field is returned with the transaction's virtual size - (consistent with other RPCs such as `getrawtransaction`). (#15637) - -- `getwalletinfo` now includes a `scanning` field that is either `false` - (no scanning) or an object with information about the duration and - progress of the wallet's scanning historical blocks for transactions - affecting its balances. (#15730) - -- `gettransaction` now accepts a third (boolean) argument `verbose`. If - set to `true`, a new `decoded` field will be added to the response containing - the decoded transaction. This field is equivalent to RPC `decoderawtransaction`, - or RPC `getrawtransaction` when `verbose` is passed. (#16185, #16866, #16873) - -- `createwallet` accepts a new `passphrase` parameter. If set, this - will create the new wallet encrypted with the given passphrase. If - unset (the default) or set to an empty string, no encryption will be - used. (#16394) - -- `getchaintxstats` RPC now returns the additional key of - `window_final_block_height`. (#16695) - -- `getmempoolentry` now provides a `weight` field containing the - transaction weight as defined in BIP141. (#16647) - -- The `getnetworkinfo` and `getpeerinfo` commands now contain a new field with decoded network service flags. (#16786) - -- `getdescriptorinfo` now returns an additional `checksum` field - containing the checksum for the unmodified descriptor provided by the - user (that is, before the descriptor is normalized for the - `descriptor` field). (#15986) - -- `joinpsbts` now shuffles the order of the inputs and outputs of the resulting - joined PSBT. Previously, inputs and outputs were added in the order PSBTs were - provided. This made it easy to correlate inputs to outputs, representing a - privacy leak. (#16512) - -- `walletcreatefundedpsbt` now signals BIP125 Replace-by-Fee if the - `-walletrbf` configuration option is set to true. (#15911) - -GUI changes ------------ - -- The GUI wallet now provides bech32 addresses by default. The user may change the address type - during invoice generation using a GUI toggle, or the default address - type may be changed with the `-addresstype` configuration option. - (#15711, #16497) - -- In 0.18.0, a `./configure` flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now __disabled__ by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass `--enable-bip70` to `./configure`. (#15584) - -Deprecated or removed configuration options -------------------------------------------- - -- `-mempoolreplacement` is removed, although default node behavior - remains the same. This option previously allowed the user to prevent - the node from accepting or relaying BIP125 transaction replacements. - This is different from the remaining configuration option - `-walletrbf`. (#16171) - -Deprecated or removed RPCs --------------------------- - -- `bumpfee` no longer accepts a `totalFee` option unless the - configuration parameter `deprecatedrpc=totalFee` is specified. This - parameter will be fully removed in a subsequent release. (#15996) - -- `bumpfee` has a new `fee_rate` option as a replacement for the deprecated `totalFee`. (#16727) - -- `generate` is now removed after being deprecated in Bitcoin Core 0.18. - Use the `generatetoaddress` RPC instead. (#15492) - -P2P changes ------------ - -- BIP 61 reject messages were deprecated in v0.18. They are now disabled - by default, but can be enabled by setting the `-enablebip61` command - line option. BIP 61 reject messages will be removed entirely in a - future version of Bitcoin Core. (#14054) - -- To eliminate well-known denial-of-service vectors in Bitcoin Core, - especially for nodes with spinning disks, the default value for the - `-peerbloomfilters` configuration option has been changed to false. - This prevents Bitcoin Core from sending the BIP111 NODE_BLOOM service - flag, accepting BIP37 bloom filters, or serving merkle blocks or - transactions matching a bloom filter. Users who still want to provide - bloom filter support may either set the configuration option to true - to re-enable both BIP111 and BIP37 support or enable just BIP37 - support for specific peers using the updated `-whitelist` and - `-whitebind` configuration options described elsewhere in these - release notes. For the near future, lightweight clients using public - BIP111/BIP37 nodes should still be able to connect to older versions - of Bitcoin Core and nodes that have manually enabled BIP37 support, - but developers of such software should consider migrating to either - using specific BIP37 nodes or an alternative transaction filtering - system. (#16152) - -- By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out. (#15759) - -Miscellaneous CLI Changes -------------------------- - -- The `testnet` field in `bitcoin-cli -getinfo` has been renamed to - `chain` and now returns the current network name as defined in BIP70 - (main, test, regtest). (#15566) - -Low-level changes -================= - -RPC ---- - -- `getblockchaininfo` no longer returns a `bip9_softforks` object. - Instead, information has been moved into the `softforks` object and - an additional `type` field describes how Bitcoin Core determines - whether that soft fork is active (e.g. BIP9 or BIP90). See the RPC - help for details. (#16060) - -- `getblocktemplate` no longer returns a `rules` array containing `CSV` - and `segwit` (the BIP9 deployments that are currently in active - state). (#16060) - -- `getrpcinfo` now returns a `logpath` field with the path to - `debug.log`. (#15483) - -Tests ------ - -- The regression test chain enabled by the `-regtest` command line flag - now requires transactions to not violate standard policy by default. - This is the same default used for mainnet and makes it easier to test - mainnet behavior on regtest. Note that the testnet still allows - non-standard txs by default and that the policy can be locally - adjusted with the `-acceptnonstdtxn` command line flag for both test - chains. (#15891) - -Configuration ------------- - -- A setting specified in the default section but not also specified in a - network-specific section (e.g. testnet) will now produce an error - preventing startup instead of just a warning unless the network is - mainnet. This prevents settings intended for mainnet from being - applied to testnet or regtest. (#15629) - -- On platforms supporting `thread_local`, log lines can be prefixed with - the name of the thread that caused the log. To enable this behavior, - use `-logthreadnames=1`. (#15849) - -Network -------- - -- When fetching a transaction announced by multiple peers, previous versions of - Bitcoin Core would sequentially attempt to download the transaction from each - announcing peer until the transaction is received, in the order that those - peers' announcements were received. In this release, the download logic has - changed to randomize the fetch order across peers and to prefer sending - download requests to outbound peers over inbound peers. This fixes an issue - where inbound peers could prevent a node from getting a transaction. - (#14897, #15834) - -- If a Tor hidden service is being used, Bitcoin Core will be bound to - the standard port 8333 even if a different port is configured for - clearnet connections. This prevents leaking node identity through use - of identical non-default port numbers. (#15651) - -Mempool and transaction relay ------------------------------ - -- Allows one extra single-ancestor transaction per package. Previously, - if a transaction in the mempool had 25 descendants, or it and all of - its descendants were over 101,000 vbytes, any newly-received - transaction that was also a descendant would be ignored. Now, one - extra descendant will be allowed provided it is an immediate - descendant (child) and the child's size is 10,000 vbytes or less. - This makes it possible for two-party contract protocols such as - Lightning Network to give each participant an output they can spend - immediately for Child-Pays-For-Parent (CPFP) fee bumping without - allowing one malicious participant to fill the entire package and thus - prevent the other participant from spending their output. (#15681) - -- Transactions with outputs paying v1 to v16 witness versions (future - segwit versions) are now accepted into the mempool, relayed, and - mined. Attempting to spend those outputs remains forbidden by policy - ("non-standard"). When this change has been widely deployed, wallets - and services can accept any valid bech32 Bitcoin address without - concern that transactions paying future segwit versions will become - stuck in an unconfirmed state. (#15846) - -- Legacy transactions (transactions with no segwit inputs) must now be - sent using the legacy encoding format, enforcing the rule specified in - BIP144. (#14039) - -Wallet ------- - -- When in pruned mode, a rescan that was triggered by an `importwallet`, - `importpubkey`, `importaddress`, or `importprivkey` RPC will only fail - when blocks have been pruned. Previously it would fail when `-prune` - has been set. This change allows setting `-prune` to a high value - (e.g. the disk size) without the calls to any of the import RPCs - failing until the first block is pruned. (#15870) - -- When creating a transaction with a fee above `-maxtxfee` (default 0.1 - BTC), the RPC commands `walletcreatefundedpsbt` and - `fundrawtransaction` will now fail instead of rounding down the fee. - Be aware that the `feeRate` argument is specified in BTC per 1,000 - vbytes, not satoshi per vbyte. (#16257) - -- A new wallet flag `avoid_reuse` has been added (default off). When - enabled, a wallet will distinguish between used and unused addresses, - and default to not use the former in coin selection. When setting - this flag on an existing wallet, rescanning the blockchain is required - to correctly mark previously used destinations. Together with "avoid - partial spends" (added in Bitcoin Core v0.17.0), this can eliminate a - serious privacy issue where a malicious user can track spends by - sending small payments to a previously-paid address that would then - be included with unrelated inputs in future payments. (#13756) - -Build system changes --------------------- - -- Python >=3.5 is now required by all aspects of the project. This - includes the build systems, test framework and linters. The previously - supported minimum (3.4), was EOL in March 2019. (#14954) - -- The minimum supported miniUPnPc API version is set to 10. This keeps - compatibility with Ubuntu 16.04 LTS and Debian 8 `libminiupnpc-dev` - packages. Please note, on Debian this package is still vulnerable to - [CVE-2017-8798](https://security-tracker.debian.org/tracker/CVE-2017-8798) - (in jessie only) and - [CVE-2017-1000494](https://security-tracker.debian.org/tracker/CVE-2017-1000494) - (both in jessie and in stretch). (#15993) - -0.19.0 change log -================= - -### Consensus -- #16128 Delete error-prone CScript constructor only used with FindAndDelete (instagibbs) -- #16060 Bury bip9 deployments (jnewbery) - -### Policy -- #15557 Enhance `bumpfee` to include inputs when targeting a feerate (instagibbs) -- #15846 Make sending to future native witness outputs standard (sipa) - -### Block and transaction handling -- #15632 Remove ResendWalletTransactions from the Validation Interface (jnewbery) -- #14121 Index for BIP 157 block filters (jimpo) -- #15141 Rewrite DoS interface between validation and net_processing (sdaftuar) -- #15880 utils and libraries: Replace deprecated Boost Filesystem functions (hebasto) -- #15971 validation: Add compile-time checking for negative locking requirement in LimitValidationInterfaceQueue (practicalswift) -- #15999 init: Remove dead code in LoadChainTip (MarcoFalke) -- #16015 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift) -- #16056 remove unused magic number from consistency check (instagibbs) -- #16171 Remove -mempoolreplacement to prevent needless block prop slowness (TheBlueMatt) -- #15894 Remove duplicated "Error: " prefix in logs (hebasto) -- #14193 validation: Add missing mempool locks (MarcoFalke) -- #15681 Allow one extra single-ancestor transaction per package (TheBlueMatt) -- #15305 [validation] Crash if disconnecting a block fails (sdaftuar) -- #16471 log correct messages when CPFP fails (jnewbery) -- #16433 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke) -- #13868 Remove unused fScriptChecks parameter from CheckInputs (Empact) -- #16421 Conservatively accept RBF bumps bumping one tx at the package limits (TheBlueMatt) -- #16854 Prevent UpdateTip log message from being broken up (stevenroose) -- #16956 validation: Make GetWitnessCommitmentIndex public (MarcoFalke) -- #16713 Ignore old versionbit activations to avoid 'unknown softforks' warning (jnewbery) -- #17002 chainparams: Bump assumed chain params (MarcoFalke) -- #16849 Fix block index inconsistency in InvalidateBlock() (sdaftuar) - -### P2P protocol and network code -- #15597 Generate log entry when blocks messages are received unexpectedly (pstratem) -- #15654 Remove unused unsanitized user agent string CNode::strSubVer (MarcoFalke) -- #15689 netaddress: Update CNetAddr for ORCHIDv2 (dongcarl) -- #15834 Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map (sdaftuar) -- #15651 torcontrol: Use the default/standard network port for Tor hidden services, even if the internal port is set differently (luke-jr) -- #16188 Document what happens to getdata of unknown type (MarcoFalke) -- #15649 Add ChaCha20Poly1305@Bitcoin AEAD (jonasschnelli) -- #16152 Disable bloom filtering by default (TheBlueMatt) -- #15993 Drop support of the insecure miniUPnPc versions (hebasto) -- #16197 Use mockable time for tx download (MarcoFalke) -- #16248 Make whitebind/whitelist permissions more flexible (NicolasDorier) -- #16618 [Fix] Allow connection of a noban banned peer (NicolasDorier) -- #16631 Restore default whitelistrelay to true (NicolasDorier) -- #15759 Add 2 outbound block-relay-only connections (sdaftuar) -- #15558 Don't query all DNS seeds at once (sipa) -- #16999 0.19 seeds update (laanwj) - -### Wallet -- #15288 Remove wallet -> node global function calls (ryanofsky) -- #15491 Improve log output for errors during load (gwillen) -- #13541 wallet/rpc: sendrawtransaction maxfeerate (kallewoof) -- #15680 Remove resendwallettransactions RPC method (jnewbery) -- #15508 Refactor analyzepsbt for use outside RPC code (gwillen) -- #15747 Remove plethora of Get*Balance (MarcoFalke) -- #15728 Refactor relay transactions (jnewbery) -- #15639 bitcoin-wallet tool: Drop libbitcoin_server.a dependency (ryanofsky) -- #15853 Remove unused import checkpoints.h (MarcoFalke) -- #15780 add cachable amounts for caching credit/debit values (kallewoof) -- #15778 Move maxtxfee from node to wallet (jnewbery) -- #15901 log on rescan completion (andrewtoth) -- #15917 Avoid logging no_such_file_or_directory error (promag) -- #15452 Replace CScriptID and CKeyID in CTxDestination with dedicated types (instagibbs) -- #15870 Only fail rescan when blocks have actually been pruned (MarcoFalke) -- #15006 Add option to create an encrypted wallet (achow101) -- #16001 Give WalletModel::UnlockContext move semantics (sipa) -- #15741 Batch write imported stuff in importmulti (achow101) -- #16144 do not encrypt wallets with disabled private keys (mrwhythat) -- #15024 Allow specific private keys to be derived from descriptor (meshcollider) -- #13756 "avoid_reuse" wallet flag for improved privacy (kallewoof) -- #16226 Move ismine to the wallet module (achow101) -- #16239 wallet/rpc: follow-up clean-up/fixes to avoid_reuse (kallewoof) -- #16286 refactoring: wallet: Fix GCC 7.4.0 warning (hebasto) -- #16257 abort when attempting to fund a transaction above -maxtxfee (Sjors) -- #16237 Have the wallet give out destinations instead of keys (achow101) -- #16322 Fix -maxtxfee check by moving it to CWallet::CreateTransaction (promag) -- #16361 Remove redundant pre-TopUpKeypool check (instagibbs) -- #16244 Move wallet creation out of the createwallet rpc into its own function (achow101) -- #16227 Refactor CWallet's inheritance chain (achow101) -- #16208 Consume ReserveDestination on successful CreateTransaction (instagibbs) -- #16301 Use CWallet::Import* functions in all import* RPCs (achow101) -- #16402 Remove wallet settings from chainparams (MarcoFalke) -- #16415 Get rid of PendingWalletTx class (ryanofsky) -- #15588 Log the actual wallet file version and no longer publicly expose the "version" record (achow101) -- #16399 Improve wallet creation (fjahr) -- #16475 Enumerate walletdb keys (MarcoFalke) -- #15709 Do not add "setting" key as unknown (Bushstar) -- #16451 Remove CMerkleTx (jnewbery) -- #15906 Move min_depth and max_depth to coin control (amitiuttarwar) -- #16502 Drop unused OldKey (promag) -- #16394 Allow createwallet to take empty passwords to make unencrypted wallets (achow101) -- #15911 Use wallet RBF default for walletcreatefundedpsbt (Sjors) -- #16503 Remove p2pEnabled from Chain interface (ariard) -- #16557 restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (jnewbery) -- #14934 Descriptor expansion cache clarifications (Sjors) -- #16383 rpcwallet: default include_watchonly to true for watchonly wallets (jb55) -- #16542 Return more specific errors about invalid descriptors (achow101) -- #16572 Fix Char as Bool in Wallet (JeremyRubin) -- #16753 extract PubKey from P2PK script with Solver (theStack) -- #16716 Use wallet name instead of pointer on unload/release (promag) -- #16185 gettransaction: add an argument to decode the transaction (darosior) -- #16745 Translate all initErrors in CreateWalletFromFile (MarcoFalke) -- #16792 Assert that the HRP is lowercase in Bech32::Encode (meshcollider) -- #16624 encapsulate transactions state (ariard) -- #16830 Cleanup walletinitinterface.h (hebasto) -- #16796 Fix segfault in CreateWalletFromFile (MarcoFalke) -- #16866 Rename 'decode' argument in gettransaction method to 'verbose' (jnewbery) -- #16727 Explicit feerate for bumpfee (instagibbs) -- #16609 descriptor: fix missed m_script_arg arg renaming in #14934 (fanquake) - -### RPC and other APIs -- #15492 remove deprecated generate method (Sjors) -- #15566 cli: Replace testnet with chain and return network name as per bip70 (fanquake) -- #15564 cli: Remove duplicate wallet fields from -getinfo (fanquake) -- #15642 Remove deprecated rpc warnings (jnewbery) -- #15637 Rename size to vsize in mempool related calls (fanquake) -- #15620 Uncouple non-wallet rpcs from maxTxFee global (MarcoFalke) -- #15616 Clarify decodescript RPCResult doc (MarcoFalke) -- #15669 Fix help text for signtransactionwithXXX (torkelrogstad) -- #15596 Ignore sendmany::minconf as dummy value (MarcoFalke) -- #15755 remove unused var in rawtransaction.cpp (Bushstar) -- #15746 RPCHelpMan: Always name dictionary keys (MarcoFalke) -- #15748 remove dead mining code (jnewbery) -- #15751 Speed up deriveaddresses for large ranges (sipa) -- #15770 Validate maxfeerate with AmountFromValue (promag) -- #15474 rest/rpc: Make mempoolinfo atomic (promag) -- #15463 Speedup getaddressesbylabel (promag) -- #15784 Remove dependency on interfaces::Chain in SignTransaction (ariard) -- #15323 Expose g_is_mempool_loaded via getmempoolinfo (Empact) -- #15932 Serialize in getblock without cs_main (MarcoFalke) -- #15930 Add balances RPC (MarcoFalke) -- #15730 Show scanning details in getwalletinfo (promag) -- #14802 faster getblockstats using BlockUndo data (FelixWeis) -- #14984 Speedup getrawmempool when verbose=true (promag) -- #16071 Hint for importmulti in help output of importpubkey and importaddress (kristapsk) -- #16063 Mention getwalletinfo where a rescan is triggered (promag) -- #16024 deriveaddresses: Correction of descriptor checksum in RPC example (ccapo) -- #16217 getrawtransaction: inform about blockhash argument when lookup fails (darosior) -- #15427 Add support for descriptors to utxoupdatepsbt (sipa) -- #16262 Allow shutdown while in generateblocks (pstratem) -- #15483 Adding a 'logpath' entry to getrpcinfo (darosior) -- #16325 Clarify that block count means height excl genesis (MarcoFalke) -- #16326 add new utxoupdatepsbt arguments to the CRPCCommand and CPRCCvertParam tables (jnewbery) -- #16332 Add logpath description for getrpcinfo (instagibbs) -- #16240 JSONRPCRequest-aware RPCHelpMan (kallewoof) -- #15996 Deprecate totalfee argument in `bumpfee` (instagibbs) -- #16467 sendrawtransaction help privacy note (jonatack) -- #16596 Fix getblocktemplate CLI example (emilengler) -- #15986 Add checksum to getdescriptorinfo (sipa) -- #16647 add weight to getmempoolentry output (fanquake) -- #16695 Add window final block height to getchaintxstats (leto) -- #16798 Refactor rawtransaction_util's SignTransaction to separate prevtx parsing (achow101) -- #16285 Improve scantxoutset response and help message (promag) -- #16725 Don't show addresses or P2PK in decoderawtransaction (NicolasDorier) -- #16787 Human readable network services (darosior) -- #16251 Improve signrawtransaction error reporting (ajtowns) -- #16873 fix regression in gettransaction (jonatack) -- #16512 Shuffle inputs and outputs after joining psbts (achow101) -- #16521 Use the default maxfeerate value as BTC/kB (Remagpie) -- #16817 Fix casing in getblockchaininfo to be inline with other fields (dangershony) -- #17131 fix -rpcclienttimeout 0 option (fjahr) -- #17249 Add missing deque include to fix build (jbeich) -- #17368 cli: fix -getinfo output when compiled with no wallet (fanquake) - -### GUI -- #15464 Drop unused return values in WalletFrame (promag) -- #15614 Defer removeAndDeleteWallet when no modal widget is active (promag) -- #15711 Generate bech32 addresses by default (MarcoFalke) -- #15829 update request payment button text and tab description (fanquake) -- #15874 Resolve the qt/guiutil <-> qt/optionsmodel CD (251Labs) -- #15371 Uppercase bech32 addresses in qr codes (benthecarman) -- #15928 Move QRImageWidget to its own file-pair (luke-jr) -- #16113 move coin control "OK" to the right hand side of the dialog (fanquake) -- #16090 Add vertical spacer to peer detail widget (JosuGZ) -- #15886 qt, wallet: Revamp SendConfirmationDialog (hebasto) -- #16263 Use qInfo() if no error occurs (hebasto) -- #16153 Add antialiasing to traffic graph widget (JosuGZ) -- #16350 Remove unused guard (hebasto) -- #16106 Sort wallets in open wallet menu (promag) -- #16291 Stop translating PACKAGE_NAME (MarcoFalke) -- #16380 Remove unused bits from the service flags enum (MarcoFalke) -- #16379 Fix autostart filenames on Linux for testnet/regtest (hebasto) -- #16366 init: Use InitError for all errors in bitcoind/qt (MarcoFalke) -- #16436 Do not create payment server if -disablewallet option provided (hebasto) -- #16514 Remove unused RPCConsole::tabFocus (promag) -- #16497 Generate bech32 addresses by default (take 2, fixup) (MarcoFalke) -- #16349 Remove redundant WalletController::addWallet slot (hebasto) -- #16578 Do not pass in command line arguments to QApplication (achow101) -- #16612 Remove menu icons (laanwj) -- #16677 remove unused PlatformStyle::TextColorIcon (fanquake) -- #16694 Ensure transaction send error is always visible (fanquake) -- #14879 Add warning messages to the debug window (hebasto) -- #16708 Replace obsolete functions of QSslSocket (hebasto) -- #16701 Replace functions deprecated in Qt 5.13 (hebasto) -- #16706 Replace deprecated QSignalMapper by lambda expressions (hebasto) -- #16707 Remove obsolete QModelIndex::child() (hebasto) -- #16758 Replace QFontMetrics::width() with TextWidth() (hebasto) -- #16760 Change uninstall icon on Windows (GChuf) -- #16720 Replace objc_msgSend() function calls with the native Objective-C syntax (hebasto) -- #16788 Update transifex slug for 0.19 (laanwj) -- #15450 Create wallet menu option (achow101) -- #16735 Remove unused menu items for Windows and Linux (GChuf) -- #16826 Do additional character escaping for wallet names and address labels (achow101) -- #15529 Add Qt programs to msvc build (updated, no code changes) (sipsorcery) -- #16714 add prune to intro screen with smart default (Sjors) -- #16858 advise users not to switch wallets when opening a BIP70 URI (jameshilliard) -- #16822 Create wallet menu option follow-ups (jonatack) -- #16882 Re-generate translations before 0.19.0 (MarcoFalke) -- #16928 Rename address checkbox back to bech32 (MarcoFalke) -- #16837 Fix {C{,XX},LD}FLAGS pickup (dongcarl) -- #16971 Change default size of intro frame (emilengler) -- #16988 Periodic translations update (laanwj) -- #16852 When BIP70 is disabled, get PaymentRequest merchant using string search (achow101) -- #16952 make sure to update the UI when deleting a transaction (jonasschnelli) -- #17031 Prevent processing duplicate payment requests (promag) -- #17135 Make polling in ClientModel asynchronous (promag) -- #17120 Fix start timer from non QThread (promag) -- #17257 disable font antialiasing for QR image address (fanquake) - -### Build system -- #14954 Require python 3.5 (MarcoFalke) -- #15580 native_protobuf: avoid system zlib (dongcarl) -- #15601 Switch to python3 (take 3) (MarcoFalke) -- #15581 Make less assumptions about build env (dongcarl) -- #14853 latest RapidCheck (fanquake) -- #15446 Improve depends debuggability (dongcarl) -- #13788 Fix --disable-asm for newer assembly checks/code (luke-jr) -- #12051 add missing debian contrib file to tarball (puchu) -- #15919 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift) -- #15978 .gitignore: Don't ignore depends patches (dongcarl) -- #15939 gitian: Remove windows 32 bit build (MarcoFalke) -- #15239 scripts and tools: Move non-linux build source tarballs to "bitcoin-binaries/version" directory (hebasto) -- #14047 Add HKDF_HMAC256_L32 and method to negate a private key (jonasschnelli) -- #16051 add patch to common dependencies (fanquake) -- #16049 switch to secure download of all dependencies (Kemu) -- #16059 configure: Fix thread_local detection (dongcarl) -- #16089 add ability to skip building zeromq (fanquake) -- #15844 Purge libtool archives (dongcarl) -- #15461 update to Boost 1.70 (Sjors) -- #16141 remove GZIP export from gitian descriptors (fanquake) -- #16235 Cleaned up and consolidated msbuild files (no code changes) (sipsorcery) -- #16246 MSVC: Fix error in debug mode (Fix #16245) (NicolasDorier) -- #16183 xtrans: Configure flags cleanup (dongcarl) -- #16258 [MSVC]: Create the config.ini as part of bitcoind build (NicolasDorier) -- #16271 remove -Wall from rapidcheck build flags (fanquake) -- #16309 [MSVC] allow user level project customization (NicolasDorier) -- #16308 [MSVC] Copy build output to src/ automatically after build (NicolasDorier) -- #15457 Check std::system for -[alert|block|wallet]notify (Sjors) -- #16344 use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors) -- #16352 prune dbus from depends (fanquake) -- #16270 expat 2.2.7 (fanquake) -- #16408 Prune X packages (dongcarl) -- #16386 disable unused Qt features (fanquake) -- #16424 Treat -Wswitch as error when --enable-werror (MarcoFalke) -- #16441 remove qt libjpeg check from bitcoin_qt.m4 (fanquake) -- #16434 Specify AM_CPPFLAGS for ZMQ (domob1812) -- #16534 add Qt Creator Makefile.am.user to .gitignore (Bushstar) -- #16573 disable building libsecp256k1 benchmarks (fanquake) -- #16533 disable libxcb extensions (fanquake) -- #16589 Remove unused src/obj-test folder (MarcoFalke) -- #16435 autoconf: Sane `--enable-debug` defaults (dongcarl) -- #16622 echo property tests status during build (jonatack) -- #16611 Remove src/obj directory from repository (laanwj) -- #16371 ignore macOS make deploy artefacts & add them to clean-local (fanquake) -- #16654 build: update RapidCheck Makefile (jonatack) -- #16370 cleanup package configure flags (fanquake) -- #16746 msbuild: Ignore linker warning (sipsorcery) -- #16750 msbuild: adds bench_bitcoin to auto generated project files (sipsorcery) -- #16810 guix: Remove ssp spec file hack (dongcarl) -- #16477 skip deploying plugins we dont use in macdeployqtplus (fanquake) -- #16413 Bump QT to LTS release 5.9.8 (THETCR) -- #15584 disable BIP70 support by default (fanquake) -- #16871 make building protobuf optional in depends (fanquake) -- #16879 remove redundant sed patching (fanquake) -- #16809 zlib: Move toolchain options to configure (dongcarl) -- #15146 Solve SmartOS FD_ZERO build issue (Empact) -- #16870 update boost macros to latest upstream for improved error reporting (fanquake) -- #16982 Factor out qt translations from build system (laanwj) -- #16926 Add OpenSSL termios fix for musl libc (nmarley) -- #16927 Refresh ZeroMQ 4.3.1 patch (nmarley) -- #17005 Qt version appears only if GUI is being built (ch4ot1c) -- #16468 Exclude depends/Makefile in .gitignore (promag) - -### Tests and QA -- #15296 Add script checking for deterministic line coverage in unit tests (practicalswift) -- #15338 ci: Build and run tests once on freebsd (MarcoFalke) -- #15479 Add .style.yapf (MarcoFalke) -- #15534 lint-format-strings: open files sequentially (fix for OS X) (gwillen) -- #15504 fuzz: Link BasicTestingSetup (shared with unit tests) (MarcoFalke) -- #15473 bench: Benchmark mempooltojson (MarcoFalke) -- #15466 Print remaining jobs in test_runner.py (stevenroose) -- #15631 mininode: Clearer error message on invalid magic bytes (MarcoFalke) -- #15255 Remove travis_wait from lint script (gkrizek) -- #15686 make pruning test faster (jnewbery) -- #15533 .style.yapf: Set column_limit=160 (MarcoFalke) -- #15660 Overhaul p2p_compactblocks.py (sdaftuar) -- #15495 Add regtests for HTTP status codes (domob1812) -- #15772 Properly log named args in authproxy (MarcoFalke) -- #15771 Prevent concurrency issues reading .cookie file (promag) -- #15693 travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke) -- #15629 init: Throw error when network specific config is ignored (MarcoFalke) -- #15773 Add BitcoinTestFramework::sync_* methods (MarcoFalke) -- #15797 travis: Bump second timeout to 33 minutes, add rationale (MarcoFalke) -- #15788 Unify testing setups for fuzz, bench, and unit tests (MarcoFalke) -- #15352 Reduce noise level in test_bitcoin output (practicalswift) -- #15779 Add wallet_balance benchmark (MarcoFalke) -- #15843 fix outdated include in blockfilter_index_tests (jamesob) -- #15866 Add missing syncwithvalidationinterfacequeue to wallet_import_rescan (MarcoFalke) -- #15697 Make swap_magic_bytes in p2p_invalid_messages atomic (MarcoFalke) -- #15895 Avoid re-reading config.ini unnecessarily (luke-jr) -- #15896 feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME in messages rather than hardcoding Bitcoin Core (luke-jr) -- #15897 QA/mininode: Send all headers upfront in send_blocks_and_test to avoid sending an unconnected one (luke-jr) -- #15696 test_runner: Move feature_pruning to base tests (MarcoFalke) -- #15869 Add settings merge test to prevent regresssions (ryanofsky) -- #15758 Add further tests to wallet_balance (MarcoFalke) -- #15841 combine_logs: append node stderr and stdout if it exists (MarcoFalke) -- #15949 test_runner: Move pruning back to extended (MarcoFalke) -- #15927 log thread names by default in functional tests (jnewbery) -- #15664 change default Python block serialization to witness (instagibbs) -- #15988 Add test for ArgsManager::GetChainName (ryanofsky) -- #15963 Make random seed logged and settable (jnewbery) -- #15943 Fail if RPC has been added without tests (MarcoFalke) -- #16036 travis: Run all lint scripts even if one fails (scravy) -- #13555 parameterize adjustment period in versionbits_computeblockversion (JBaczuk) -- #16079 wallet_balance.py: Prevent edge cases (stevenroose) -- #16078 replace tx hash with txid in rawtransaction test (LongShao007) -- #16042 Bump MAX_NODES to 12 (MarcoFalke) -- #16124 Limit Python linting to files in the repo (practicalswift) -- #16143 Mark unit test blockfilter_index_initial_sync as non-deterministic (practicalswift) -- #16214 travis: Fix caching issues (MarcoFalke) -- #15982 Make msg_block a witness block (MarcoFalke) -- #16225 Make coins_tests/updatecoins_simulation_test deterministic (practicalswift) -- #16236 fuzz: Log output even if fuzzer failed (MarcoFalke) -- #15520 cirrus: Run extended test feature_pruning (MarcoFalke) -- #16234 Add test for unknown args (MarcoFalke) -- #16207 stop generating lcov coverage when functional tests fail (asood123) -- #16252 Log to debug.log in all unit tests (MarcoFalke) -- #16289 Add missing ECC_Stop() in GUI rpcnestedtests.cpp (jonasschnelli) -- #16278 Remove unused includes (practicalswift) -- #16302 Add missing syncwithvalidationinterfacequeue to wallet_balance test (MarcoFalke) -- #15538 wallet_bumpfee.py: Make sure coin selection produces change (instagibbs) -- #16294 Create at most one testing setup (MarcoFalke) -- #16299 bench: Move generated data to a dedicated translation unit (promag) -- #16329 Add tests for getblockchaininfo.softforks (MarcoFalke) -- #15687 tool wallet test coverage for unexpected writes to wallet (jonatack) -- #16267 bench: Benchmark blocktojson (fanatid) -- #14505 Add linter to make sure single parameter constructors are marked explicit (practicalswift) -- #16338 Disable other targets when enable-fuzz is set (qmma70) -- #16334 rpc_users: Also test rpcauth.py with password (dongcarl) -- #15282 Replace hard-coded hex tx with class in test framework (stevenroose) -- #16390 Add --filter option to test_runner.py (promag) -- #15891 Require standard txs in regtest by default (MarcoFalke) -- #16374 Enable passing wildcard test names to test runner from root (jonatack) -- #16420 Fix race condition in wallet_encryption test (jonasschnelli) -- #16422 remove redundant setup in addrman_tests (zenosage) -- #16438 travis: Print memory and number of cpus (MarcoFalke) -- #16445 Skip flaky p2p_invalid_messages test on macOS (fjahr) -- #16459 Fix race condition in example_test.py (sdaftuar) -- #16464 Ensure we don't generate a too-big block in p2sh sigops test (sdaftuar) -- #16491 fix deprecated log.warn in feature_dbcrash test (jonatack) -- #15134 Switch one of the Travis jobs to an unsigned char environment (-funsigned-char) (practicalswift) -- #16505 Changes verbosity of msbuild from quiet to normal in the appveyor script (sipsorcery) -- #16293 Make test cases separate functions (MarcoFalke) -- #16470 Fail early on disconnect in mininode.wait_for_* (MarcoFalke) -- #16277 Suppress output in test_bitcoin for expected errors (gertjaap) -- #16493 Fix test failures (MarcoFalke) -- #16538 Add missing sync_blocks to feature_pruning (MarcoFalke) -- #16509 Adapt test framework for chains other than "regtest" (MarcoFalke) -- #16363 Add test for BIP30 duplicate tx (MarcoFalke) -- #16535 Explain why -whitelist is used in feature_fee_estimation (MarcoFalke) -- #16554 only include and use OpenSSL where it's actually needed (BIP70) (fanquake) -- #16598 Remove confusing hash256 function in util (elichai) -- #16595 travis: Use extended 90 minute timeout when available (MarcoFalke) -- #16563 Add unit test for AddTimeData (mzumsande) -- #16561 Use colors and dots in test_runner.py output only if standard output is a terminal (practicalswift) -- #16465 Test p2sh-witness and bech32 in wallet_import_rescan (MarcoFalke) -- #16582 Rework ci (Use travis only as fallback env) (MarcoFalke) -- #16633 travis: Fix test_runner.py timeouts (MarcoFalke) -- #16646 Run tests with UPnP disabled (fanquake) -- #16623 ci: Add environment files for all settings (MarcoFalke) -- #16656 fix rpc_setban.py race (jonasschnelli) -- #16570 Make descriptor tests deterministic (davereikher) -- #16404 Test ZMQ notification after chain reorg (promag) -- #16726 Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values (practicalswift) -- #16739 ci: Pass down $makejobs to test_runner.py, other improvements (MarcoFalke) -- #16767 Check for codespell in lint-spelling.sh (kristapsk) -- #16768 Make lint-includes.sh work from any directory (kristapsk) -- #15257 Scripts and tools: Bump flake8 to 3.7.8 (Empact) -- #16804 Remove unused try-block in assert_debug_log (MarcoFalke) -- #16850 `servicesnames` field in `getpeerinfo` and `getnetworkinfo` (darosior) -- #16551 Test that low difficulty chain fork is rejected (MarcoFalke) -- #16737 Establish only one connection between nodes in rpc_invalidateblock (MarcoFalke) -- #16845 Add notes on how to generate data/wallets/high_minversion (MarcoFalke) -- #16888 Bump timeouts in slow running tests (MarcoFalke) -- #16864 Add python bech32 impl round-trip test (instagibbs) -- #16865 add some unit tests for merkle.cpp (soroosh-sdi) -- #14696 Add explicit references to related CVE's in p2p_invalid_block test (lucash-dev) -- #16907 lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke) -- #16898 Remove connect_nodes_bi (MarcoFalke) -- #16917 Move common function assert_approx() into util.py (fridokus) -- #16921 Add information on how to add Vulture suppressions (practicalswift) -- #16920 Fix extra_args in wallet_import_rescan.py (MarcoFalke) -- #16918 Make PORT_MIN in test runner configurable (MarcoFalke) -- #16941 travis: Disable feature_block in tsan run due to oom (MarcoFalke) -- #16929 follow-up to rpc: default maxfeerate value as BTC/kB (jonatack) -- #16959 ci: Set $host before setting fallback values (MarcoFalke) -- #16961 Remove python dead code linter (laanwj) -- #16931 add unittests for CheckProofOfWork (soroosh-sdi) -- #16991 Fix service flag comparison check in rpc_net test (luke-jr) (laanwj) -- #16987 Correct docstring param name (jbampton) -- #17015 Explain QT_QPA_PLATFORM for gui tests (MarcoFalke) -- #17006 Enable UBSan for Travis fuzzing job (practicalswift) -- #17086 Fix fs_tests for unknown locales (carnhofdaki) -- #15903 appveyor: Write @PACKAGE_NAME@ to config (MarcoFalke) -- #16742 test: add executable flag for wallet_watchonly.py (theStack) -- #16740 qa: Relax so that the subscriber is ready before publishing zmq messages (#16740) - -### Miscellaneous -- #15335 Fix lack of warning of unrecognized section names (AkioNak) -- #15528 contrib: Bump gitian descriptors for 0.19 (MarcoFalke) -- #15609 scripts and tools: Set 'distro' explicitly (hebasto) -- #15519 Add Poly1305 implementation (jonasschnelli) -- #15643 contrib: Gh-merge: include acks in merge commit (MarcoFalke) -- #15838 scripts and tools: Fetch missing review comments in github-merge.py (nkostoulas) -- #15920 lint: Check that all wallet args are hidden (MarcoFalke) -- #15849 Thread names in logs and deadlock debug tools (jamesob) -- #15650 Handle the result of posix_fallocate system call (lucayepa) -- #15766 scripts and tools: Upgrade gitian image before signing (hebasto) -- #15512 Add ChaCha20 encryption option (XOR) (jonasschnelli) -- #15968 Fix portability issue with pthreads (grim-trigger) -- #15970 Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL (orientye) -- #15863 scripts and tools: Ensure repos are up-to-date in gitian-build.py (hebasto) -- #15224 Add RNG strengthening (10ms once every minute) (sipa) -- #15840 Contrib scripts: Filter IPv6 by ASN (abitfan) -- #13998 Scripts and tools: gitian-build.py improvements and corrections (hebasto) -- #15236 scripts and tools: Make --setup command independent (hebasto) -- #16114 contrib: Add curl as a required program in gitian-build.py (fanquake) -- #16046 util: Add type safe gettime (MarcoFalke) -- #15703 Update secp256k1 subtree to latest upstream (sipa) -- #16086 contrib: Use newer config.guess & config.sub in install_db4.sh (fanquake) -- #16130 Don't GPG sign intermediate commits with github-merge tool (stevenroose) -- #16162 scripts: Add key for michael ford (fanquake) to trusted keys list (fanquake) -- #16201 devtools: Always use unabbreviated commit IDs in github-merge.py (laanwj) -- #16112 util: Log early messages (MarcoFalke) -- #16223 devtools: Fetch and display ACKs at sign-off time in github-merge (laanwj) -- #16300 util: Explain why the path is cached (MarcoFalke) -- #16314 scripts and tools: Update copyright_header.py script (hebasto) -- #16158 Fix logic of memory_cleanse() on MSVC and clean up docs (real-or-random) -- #14734 fix an undefined behavior in uint::SetHex (kazcw) -- #16327 scripts and tools: Update ShellCheck linter (hebasto) -- #15277 contrib: Enable building in guix containers (dongcarl) -- #16362 Add bilingual_str type (hebasto) -- #16481 logs: add missing space (harding) -- #16581 sipsorcery gitian key (sipsorcery) -- #16566 util: Refactor upper/lowercase functions (kallewoof) -- #16620 util: Move resolveerrmsg to util/error (MarcoFalke) -- #16625 scripts: Remove github-merge.py (fanquake) -- #15864 Fix datadir handling (hebasto) -- #16670 util: Add join helper to join a list of strings (MarcoFalke) -- #16665 scripts: Move update-translations.py to maintainer-tools repo (fanquake) -- #16730 Support serialization of `std::vector` (sipa) -- #16556 Fix systemd service file configuration directory setup (setpill) -- #15615 Add log output during initial header sync (jonasschnelli) -- #16774 Avoid unnecessary "Synchronizing blockheaders" log messages (jonasschnelli) -- #16489 log: harmonize bitcoind logging (jonatack) -- #16577 util: Cbufferedfile fixes and unit test (LarryRuane) -- #16984 util: Make thread names shorter (hebasto) -- #17038 Don't rename main thread at process level (laanwj) -- #17184 util: Filter out macos process serial number (hebasto) -- #17095 util: Filter control characters out of log messages (laanwj) -- #17085 init: Change fallback locale to C.UTF-8 (laanwj) -- #16957 9% less memory: make SaltedOutpointHasher noexcept (martinus) -- #17449 fix uninitialized variable nMinerConfirmationWindow (bitcoinVBR) - -### Documentation -- #15514 Update Transifex links (fanquake) -- #15513 add "sections" info to example bitcoin.conf (fanquake) -- #15530 Move wallet lock annotations to header (MarcoFalke) -- #15562 remove duplicate clone step in build-windows.md (fanquake) -- #15565 remove release note fragments (fanquake) -- #15444 Additional productivity tips (Sjors) -- #15577 Enable TLS in link to chris.beams.io (JeremyRand) -- #15604 release note for disabling reject messages by default (jnewbery) -- #15611 Add Gitian key for droark (droark) -- #15626 Update ACK description in CONTRIBUTING.md (jonatack) -- #15603 Add more tips to productivity.md (gwillen) -- #15683 Comment for seemingly duplicate LIBBITCOIN_SERVER (Bushstar) -- #15685 rpc-mining: Clarify error messages (MarcoFalke) -- #15760 Clarify sendrawtransaction::maxfeerate==0 help (MarcoFalke) -- #15659 fix findFork comment (r8921039) -- #15718 Improve netaddress comments (dongcarl) -- #15833 remove out-of-date comment on pay-to-witness support (r8921039) -- #15821 Remove upgrade note in release notes from EOL versions (MarcoFalke) -- #15267 explain AcceptToMemoryPoolWorker's coins_to_uncache (jamesob) -- #15887 Align code example style with clang-format (hebasto) -- #15877 Fix -dustrelayfee= argument docs grammar (keepkeyjon) -- #15908 Align MSVC build options with Linux build ones (hebasto) -- #15941 Add historical release notes for 0.18.0 (laanwj) -- #15794 Clarify PR guidelines w/re documentation (dongcarl) -- #15607 Release process updates (jonatack) -- #14364 Clarify -blocksdir usage (sangaman) -- #15777 Add doxygen comments for keypool classes (jnewbery) -- #15820 Add productivity notes for dummy rebases (dongcarl) -- #15922 Explain how to pass in non-fundamental types into functions (MarcoFalke) -- #16080 build/doc: update bitcoin_config.h packages, release process (jonatack) -- #16047 analyzepsbt description in doc/psbt.md (jonatack) -- #16039 add release note for 14954 (fanquake) -- #16139 Add riscv64 to outputs list in release-process.md (JeremyRand) -- #16140 create security policy (narula) -- #16164 update release process for SECURITY.md (jonatack) -- #16213 Remove explicit mention of versions from SECURITY.md (MarcoFalke) -- #16186 doc/lint: Fix spelling errors identified by codespell 1.15.0 (Empact) -- #16149 Rework section on ACK in CONTRIBUTING.md (MarcoFalke) -- #16196 Add release notes for 14897 & 15834 (MarcoFalke) -- #16241 add rapidcheck to vcpkg install list (fanquake) -- #16243 Remove travis badge from readme (MarcoFalke) -- #16256 remove orphaned header in developer notes (jonatack) -- #15964 Improve build-osx document formatting (giulio92) -- #16313 Fix broken link in doc/build-osx.md (jonatack) -- #16330 Use placeholder instead of key expiration date (hebasto) -- #16339 add reduce-memory.md (fanquake) -- #16347 Include static members in Doxygen (dongcarl) -- #15824 Improve netbase comments (dongcarl) -- #16430 Update bips 35, 37 and 111 status (MarcoFalke) -- #16455 Remove downgrading warning in release notes, per 0.18 branch (MarcoFalke) -- #16484 update labels in CONTRIBUTING.md (MarcoFalke) -- #16483 update Python command in msvc readme (sipsorcery) -- #16504 Add release note for the deprecated totalFee option of bumpfee (promag) -- #16448 add note on precedence of options in bitcoin.conf (fanquake) -- #16536 Update and extend benchmarking.md (ariard) -- #16530 Fix grammar and punctuation in developer notes (Tech1k) -- #16574 Add historical release notes for 0.18.1 (laanwj) -- #16585 Update Markdown syntax for bdb packages (emilengler) -- #16586 Mention other ways to conserve memory on compilation (MarcoFalke) -- #16605 Add missing contributor to 0.18.1 release notes (meshcollider) -- #16615 Fix typos in COPYRIGHT (gapeman) -- #16626 Fix spelling error chache -> cache (nilswloewen) -- #16587 Improve versionbits.h documentation (ariard) -- #16643 Add ZMQ dependencies to the Fedora build instructions (hebasto) -- #16634 Refer in rpcbind doc to the manpage (MarcoFalke) -- #16555 mention whitelist is inbound, and applies to blocksonly (Sjors) -- #16645 initial RapidCheck property-based testing documentation (jonatack) -- #16691 improve depends prefix documentation (fanquake) -- #16629 Add documentation for the new whitelist permissions (NicolasDorier) -- #16723 Update labels in CONTRIBUTING.md (hebasto) -- #16461 Tidy up shadowing section (promag) -- #16621 add default bitcoin.conf locations (GChuf) -- #16752 Delete stale URL in test README (michaelfolkson) -- #14862 Declare BLOCK_VALID_HEADER reserved (MarcoFalke) -- #16806 Add issue templates for bug and feature request (MarcoFalke) -- #16857 Elaborate need to re-login on Debian-based after usermod for Tor group (clashicly) -- #16863 Add a missing closing parenthesis in the bitcoin-wallet's help (darosior) -- #16757 CChainState return values (MarcoFalke) -- #16847 add comments clarifying how local services are advertised (jamesob) -- #16812 Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in (ch4ot1c) -- #16885 Update tx-size-small comment with relevant CVE disclosure (instagibbs) -- #16900 Fix doxygen comment for SignTransaction in rpc/rawtransaction_util (MarcoFalke) -- #16914 Update homebrew instruction for doxygen (Sjors) -- #16912 Remove Doxygen intro from src/bitcoind.cpp (ch4ot1c) -- #16960 replace outdated OpenSSL comment in test README (fanquake) -- #16968 Remove MSVC update step from translation process (laanwj) -- #16953 Improve test READMEs (fjahr) -- #16962 Put PR template in comments (laanwj) -- #16397 Clarify includeWatching for fundrawtransaction (stevenroose) -- #15459 add how to calculate blockchain and chainstate size variables to release process (marcoagner) -- #16997 Update bips.md for 0.19 (laanwj) -- #17001 Remove mention of renamed mapBlocksUnlinked (MarcoFalke) -- #17014 Consolidate release notes before 0.19.0 (move-only) (MarcoFalke) -- #17111 update bips.md with buried BIP9 deployments (MarcoFalke) - Credits ======= Thanks to everyone who directly contributed to this release: -- 251 -- Aaron Clauson -- Akio Nakamura -- Alistair Mann -- Amiti Uttarwar -- Andrew Chow -- andrewtoth -- Anthony Towns -- Antoine Riard -- Aseem Sood -- Ben Carman -- Ben Woosley -- bpay -- Carl Dong -- Carnhof Daki -- Chris Capobianco -- Chris Moore -- Chuf -- clashic -- clashicly -- Cory Fields -- Daki Carnhof -- Dan Gershony -- Daniel Edgecumbe -- Daniel Kraft -- Daniel McNally -- darosior -- David A. Harding -- David Reikher -- Douglas Roark -- Elichai Turkel -- Emil -- Emil Engler -- ezegom -- Fabian Jahr -- fanquake -- Felix Weis -- Ferdinando M. Ametrano -- fridokus -- gapeman -- GChuf -- Gert-Jaap Glasbergen -- Giulio Lombardo -- Glenn Willen -- Graham Krizek -- Gregory Sanders -- grim-trigger -- gwillen -- Hennadii Stepanov -- Jack Mallers -- James Hilliard -- James O'Beirne -- Jan Beich -- Jeremy Rubin -- JeremyRand -- Jim Posen -- John Bampton -- John Newbery -- Jon Atack -- Jon Layton -- Jonas Schnelli -- Jonathan "Duke" Leto -- João Barbosa -- Joonmo Yang -- Jordan Baczuk -- Jorge Timón -- Josu Goñi -- Julian Fleischer -- Karl-Johan Alm -- Kaz Wesley -- keepkeyjon -- Kirill Fomichev -- Kristaps Kaupe -- Kristian Kramer -- Larry Ruane -- Lenny Maiorani -- LongShao007 -- Luca Venturini -- lucash-dev -- Luke Dashjr -- marcoagner -- MarcoFalke -- marcuswin -- Martin Ankerl -- Martin Zumsande -- Matt Corallo -- MeshCollider -- Michael Folkson -- Miguel Herranz -- Nathan Marley -- Neha Narula -- nicolas.dorier -- Nils Loewen -- nkostoulas -- NullFunctor -- orient -- Patrick Strateman -- Peter Bushnell -- Peter Wagner -- Pieter Wuille -- practicalswift -- qmma -- r8921039 -- RJ Rybarczyk -- Russell Yanofsky -- Samuel Dobson -- Sebastian Falbesoner -- setpill -- shannon1916 -- Sjors Provoost -- soroosh-sdi -- Steven Roose -- Suhas Daftuar -- tecnovert -- THETCR -- Tim Ruffing -- Tobias Kaderle -- Torkel Rogstad -- Ulrich Kempken -- whythat -- William Casarin -- Wladimir J. van der Laan -- zenosage -As well as everyone that helped translating on [Transifex](https://www.transifex.com/bitcoin/bitcoin/). +As well as to everyone that helped with translations on +[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.19.0.1.md b/doc/release-notes/release-notes-0.19.0.1.md new file mode 100644 index 0000000000..70b8ec589f --- /dev/null +++ b/doc/release-notes/release-notes-0.19.0.1.md @@ -0,0 +1,1089 @@ +Bitcoin Core version 0.19.0.1 is now available from: + + + +This release includes new features, various bug fixes and performance +improvements, as well as updated translations. + +Please report bugs using the issue tracker at GitHub: + + + +To receive security and update notifications, please subscribe to: + + + +How to Upgrade +============== + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) +or `bitcoind`/`bitcoin-qt` (on Linux). + +Upgrading directly from a version of Bitcoin Core that has reached its EOL is +possible, but might take some time if the datadir needs to be migrated. Old +wallet versions of Bitcoin Core are generally supported. + +Compatibility +============== + +Bitcoin Core is supported and extensively tested on operating systems using +the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not recommended +to use Bitcoin Core on unsupported systems. + +Bitcoin Core should also work on most other Unix-like systems but is not +as frequently tested on them. + +From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is +built using Qt 5.9.x, which doesn't support versions of macOS older than +10.10. Additionally, Bitcoin Core does not yet change appearance when +macOS "dark mode" is activated. + +Users running macOS Catalina may need to "right-click" and then choose "Open" +to open the Bitcoin Core .dmg. This is due to new signing requirements +imposed by Apple, which the Bitcoin Core project does not yet adhere too. + +Notable changes +=============== + +New user documentation +---------------------- + +- [Reduce memory](https://github.com/bitcoin/bitcoin/blob/master/doc/reduce-memory.md) + suggests configuration tweaks for running Bitcoin Core on systems with + limited memory. (#16339) + +New RPCs +-------- + +- `getbalances` returns an object with all balances (`mine`, + `untrusted_pending` and `immature`). Please refer to the RPC help of + `getbalances` for details. The new RPC is intended to replace + `getbalance`, `getunconfirmedbalance`, and the balance fields in + `getwalletinfo`. These old calls and fields may be removed in a + future version. (#15930, #16239) + +- `setwalletflag` sets and unsets wallet flags that enable or disable + features specific to that existing wallet, such as the new + `avoid_reuse` feature documented elsewhere in these release notes. + (#13756) + +- `getblockfilter` gets the BIP158 filter for the specified block. This + RPC is only enabled if block filters have been created using the + `-blockfilterindex` configuration option. (#14121) + +New settings +------------ + +- `-blockfilterindex` enables the creation of BIP158 block filters for + the entire blockchain. Filters will be created in the background and + currently use about 4 GiB of space. Note: this version of Bitcoin + Core does not serve block filters over the P2P network, although the + local user may obtain block filters using the `getblockfilter` RPC. + (#14121) + +Updated settings +---------------- + +- `whitebind` and `whitelist` now accept a list of permissions to + provide peers connecting using the indicated interfaces or IP + addresses. If no permissions are specified with an address or CIDR + network, the implicit default permissions are the same as previous + releases. See the `bitcoind -help` output for these two options for + details about the available permissions. (#16248) + +- Users setting custom `dbcache` values can increase their setting slightly + without using any more real memory. Recent changes reduced the memory use + by about 9% and made chainstate accounting more accurate (it was underestimating + the use of memory before). For example, if you set a value of "450" before, you + may now set a value of "500" to use about the same real amount of memory. (#16957) + + +Updated RPCs +------------ + +Note: some low-level RPC changes mainly useful for testing are described in the +Low-level Changes section below. + +- `sendmany` no longer has a `minconf` argument. This argument was not + well-specified and would lead to RPC errors even when the wallet's + coin selection succeeded. Users who want to influence coin selection + can use the existing `-spendzeroconfchange`, `-limitancestorcount`, + `-limitdescendantcount` and `-walletrejectlongchains` configuration + arguments. (#15596) + +- `getbalance` and `sendtoaddress`, plus the new RPCs `getbalances` and + `createwallet`, now accept an "avoid_reuse" parameter that controls + whether already used addresses should be included in the operation. + Additionally, `sendtoaddress` will avoid partial spends when + `avoid_reuse` is enabled even if this feature is not already enabled + via the `-avoidpartialspends` command line flag because not doing so + would risk using up the "wrong" UTXO for an address reuse case. + (#13756) + +- RPCs which have an `include_watchonly` argument or `includeWatching` option now default to `true` for watch-only + wallets. Affected RPCs are: `getbalance`, `listreceivedbyaddress`, `listreceivedbylabel`, `listtransactions`, + `listsinceblock`, `gettransaction`, `walletcreatefundedpsbt`, and `fundrawtransaction`. (#16383) + +- `listunspent` now returns a "reused" bool for each output if the + wallet flag "avoid_reuse" is enabled. (#13756) + +- `getblockstats` now uses BlockUndo data instead of the transaction + index, making it much faster, no longer dependent on the `-txindex` + configuration option, and functional for all non-pruned blocks. + (#14802) + +- `utxoupdatepsbt` now accepts a `descriptors` parameter that will fill + out input and output scripts and keys when known. P2SH-witness inputs + will be filled in from the UTXO set when a descriptor is provided that + shows they're spending segwit outputs. See the RPC help text for full + details. (#15427) + +- `sendrawtransaction` and `testmempoolaccept` no longer accept a + `allowhighfees` parameter to fail mempool acceptance if the + transaction fee exceeds the value of the configuration option + `-maxtxfee`. Now there is a hardcoded default maximum feerate that + can be changed when calling either RPC using a `maxfeerate` parameter. + (#15620) + +- `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry`, and + `getrawmempool` no longer return a `size` field unless the + configuration option `-deprecatedrpc=size` is used. Instead a new + `vsize` field is returned with the transaction's virtual size + (consistent with other RPCs such as `getrawtransaction`). (#15637) + +- `getwalletinfo` now includes a `scanning` field that is either `false` + (no scanning) or an object with information about the duration and + progress of the wallet's scanning historical blocks for transactions + affecting its balances. (#15730) + +- `gettransaction` now accepts a third (boolean) argument `verbose`. If + set to `true`, a new `decoded` field will be added to the response containing + the decoded transaction. This field is equivalent to RPC `decoderawtransaction`, + or RPC `getrawtransaction` when `verbose` is passed. (#16185, #16866, #16873) + +- `createwallet` accepts a new `passphrase` parameter. If set, this + will create the new wallet encrypted with the given passphrase. If + unset (the default) or set to an empty string, no encryption will be + used. (#16394) + +- `getchaintxstats` RPC now returns the additional key of + `window_final_block_height`. (#16695) + +- `getmempoolentry` now provides a `weight` field containing the + transaction weight as defined in BIP141. (#16647) + +- The `getnetworkinfo` and `getpeerinfo` commands now contain a new field with decoded network service flags. (#16786) + +- `getdescriptorinfo` now returns an additional `checksum` field + containing the checksum for the unmodified descriptor provided by the + user (that is, before the descriptor is normalized for the + `descriptor` field). (#15986) + +- `joinpsbts` now shuffles the order of the inputs and outputs of the resulting + joined PSBT. Previously, inputs and outputs were added in the order PSBTs were + provided. This made it easy to correlate inputs to outputs, representing a + privacy leak. (#16512) + +- `walletcreatefundedpsbt` now signals BIP125 Replace-by-Fee if the + `-walletrbf` configuration option is set to true. (#15911) + +GUI changes +----------- + +- The GUI wallet now provides bech32 addresses by default. The user may change the address type + during invoice generation using a GUI toggle, or the default address + type may be changed with the `-addresstype` configuration option. + (#15711, #16497) + +- In 0.18.0, a `./configure` flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now __disabled__ by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass `--enable-bip70` to `./configure`. (#15584) + +Deprecated or removed configuration options +------------------------------------------- + +- `-mempoolreplacement` is removed, although default node behavior + remains the same. This option previously allowed the user to prevent + the node from accepting or relaying BIP125 transaction replacements. + This is different from the remaining configuration option + `-walletrbf`. (#16171) + +Deprecated or removed RPCs +-------------------------- + +- `bumpfee` no longer accepts a `totalFee` option unless the + configuration parameter `deprecatedrpc=totalFee` is specified. This + parameter will be fully removed in a subsequent release. (#15996) + +- `bumpfee` has a new `fee_rate` option as a replacement for the deprecated `totalFee`. (#16727) + +- `generate` is now removed after being deprecated in Bitcoin Core 0.18. + Use the `generatetoaddress` RPC instead. (#15492) + +P2P changes +----------- + +- BIP 61 reject messages were deprecated in v0.18. They are now disabled + by default, but can be enabled by setting the `-enablebip61` command + line option. BIP 61 reject messages will be removed entirely in a + future version of Bitcoin Core. (#14054) + +- To eliminate well-known denial-of-service vectors in Bitcoin Core, + especially for nodes with spinning disks, the default value for the + `-peerbloomfilters` configuration option has been changed to false. + This prevents Bitcoin Core from sending the BIP111 NODE_BLOOM service + flag, accepting BIP37 bloom filters, or serving merkle blocks or + transactions matching a bloom filter. Users who still want to provide + bloom filter support may either set the configuration option to true + to re-enable both BIP111 and BIP37 support or enable just BIP37 + support for specific peers using the updated `-whitelist` and + `-whitebind` configuration options described elsewhere in these + release notes. For the near future, lightweight clients using public + BIP111/BIP37 nodes should still be able to connect to older versions + of Bitcoin Core and nodes that have manually enabled BIP37 support, + but developers of such software should consider migrating to either + using specific BIP37 nodes or an alternative transaction filtering + system. (#16152) + +- By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out. (#15759) + +Miscellaneous CLI Changes +------------------------- + +- The `testnet` field in `bitcoin-cli -getinfo` has been renamed to + `chain` and now returns the current network name as defined in BIP70 + (main, test, regtest). (#15566) + +Low-level changes +================= + +RPC +--- + +- `getblockchaininfo` no longer returns a `bip9_softforks` object. + Instead, information has been moved into the `softforks` object and + an additional `type` field describes how Bitcoin Core determines + whether that soft fork is active (e.g. BIP9 or BIP90). See the RPC + help for details. (#16060) + +- `getblocktemplate` no longer returns a `rules` array containing `CSV` + and `segwit` (the BIP9 deployments that are currently in active + state). (#16060) + +- `getrpcinfo` now returns a `logpath` field with the path to + `debug.log`. (#15483) + +Tests +----- + +- The regression test chain enabled by the `-regtest` command line flag + now requires transactions to not violate standard policy by default. + This is the same default used for mainnet and makes it easier to test + mainnet behavior on regtest. Note that the testnet still allows + non-standard txs by default and that the policy can be locally + adjusted with the `-acceptnonstdtxn` command line flag for both test + chains. (#15891) + +Configuration +------------ + +- A setting specified in the default section but not also specified in a + network-specific section (e.g. testnet) will now produce an error + preventing startup instead of just a warning unless the network is + mainnet. This prevents settings intended for mainnet from being + applied to testnet or regtest. (#15629) + +- On platforms supporting `thread_local`, log lines can be prefixed with + the name of the thread that caused the log. To enable this behavior, + use `-logthreadnames=1`. (#15849) + +Network +------- + +- When fetching a transaction announced by multiple peers, previous versions of + Bitcoin Core would sequentially attempt to download the transaction from each + announcing peer until the transaction is received, in the order that those + peers' announcements were received. In this release, the download logic has + changed to randomize the fetch order across peers and to prefer sending + download requests to outbound peers over inbound peers. This fixes an issue + where inbound peers could prevent a node from getting a transaction. + (#14897, #15834) + +- If a Tor hidden service is being used, Bitcoin Core will be bound to + the standard port 8333 even if a different port is configured for + clearnet connections. This prevents leaking node identity through use + of identical non-default port numbers. (#15651) + +Mempool and transaction relay +----------------------------- + +- Allows one extra single-ancestor transaction per package. Previously, + if a transaction in the mempool had 25 descendants, or it and all of + its descendants were over 101,000 vbytes, any newly-received + transaction that was also a descendant would be ignored. Now, one + extra descendant will be allowed provided it is an immediate + descendant (child) and the child's size is 10,000 vbytes or less. + This makes it possible for two-party contract protocols such as + Lightning Network to give each participant an output they can spend + immediately for Child-Pays-For-Parent (CPFP) fee bumping without + allowing one malicious participant to fill the entire package and thus + prevent the other participant from spending their output. (#15681) + +- Transactions with outputs paying v1 to v16 witness versions (future + segwit versions) are now accepted into the mempool, relayed, and + mined. Attempting to spend those outputs remains forbidden by policy + ("non-standard"). When this change has been widely deployed, wallets + and services can accept any valid bech32 Bitcoin address without + concern that transactions paying future segwit versions will become + stuck in an unconfirmed state. (#15846) + +- Legacy transactions (transactions with no segwit inputs) must now be + sent using the legacy encoding format, enforcing the rule specified in + BIP144. (#14039) + +Wallet +------ + +- When in pruned mode, a rescan that was triggered by an `importwallet`, + `importpubkey`, `importaddress`, or `importprivkey` RPC will only fail + when blocks have been pruned. Previously it would fail when `-prune` + has been set. This change allows setting `-prune` to a high value + (e.g. the disk size) without the calls to any of the import RPCs + failing until the first block is pruned. (#15870) + +- When creating a transaction with a fee above `-maxtxfee` (default 0.1 + BTC), the RPC commands `walletcreatefundedpsbt` and + `fundrawtransaction` will now fail instead of rounding down the fee. + Be aware that the `feeRate` argument is specified in BTC per 1,000 + vbytes, not satoshi per vbyte. (#16257) + +- A new wallet flag `avoid_reuse` has been added (default off). When + enabled, a wallet will distinguish between used and unused addresses, + and default to not use the former in coin selection. When setting + this flag on an existing wallet, rescanning the blockchain is required + to correctly mark previously used destinations. Together with "avoid + partial spends" (added in Bitcoin Core v0.17.0), this can eliminate a + serious privacy issue where a malicious user can track spends by + sending small payments to a previously-paid address that would then + be included with unrelated inputs in future payments. (#13756) + +Build system changes +-------------------- + +- Python >=3.5 is now required by all aspects of the project. This + includes the build systems, test framework and linters. The previously + supported minimum (3.4), was EOL in March 2019. (#14954) + +- The minimum supported miniUPnPc API version is set to 10. This keeps + compatibility with Ubuntu 16.04 LTS and Debian 8 `libminiupnpc-dev` + packages. Please note, on Debian this package is still vulnerable to + [CVE-2017-8798](https://security-tracker.debian.org/tracker/CVE-2017-8798) + (in jessie only) and + [CVE-2017-1000494](https://security-tracker.debian.org/tracker/CVE-2017-1000494) + (both in jessie and in stretch). (#15993) + +0.19.0 change log +================= + +### Consensus +- #16128 Delete error-prone CScript constructor only used with FindAndDelete (instagibbs) +- #16060 Bury bip9 deployments (jnewbery) + +### Policy +- #15557 Enhance `bumpfee` to include inputs when targeting a feerate (instagibbs) +- #15846 Make sending to future native witness outputs standard (sipa) + +### Block and transaction handling +- #15632 Remove ResendWalletTransactions from the Validation Interface (jnewbery) +- #14121 Index for BIP 157 block filters (jimpo) +- #15141 Rewrite DoS interface between validation and net_processing (sdaftuar) +- #15880 utils and libraries: Replace deprecated Boost Filesystem functions (hebasto) +- #15971 validation: Add compile-time checking for negative locking requirement in LimitValidationInterfaceQueue (practicalswift) +- #15999 init: Remove dead code in LoadChainTip (MarcoFalke) +- #16015 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift) +- #16056 remove unused magic number from consistency check (instagibbs) +- #16171 Remove -mempoolreplacement to prevent needless block prop slowness (TheBlueMatt) +- #15894 Remove duplicated "Error: " prefix in logs (hebasto) +- #14193 validation: Add missing mempool locks (MarcoFalke) +- #15681 Allow one extra single-ancestor transaction per package (TheBlueMatt) +- #15305 [validation] Crash if disconnecting a block fails (sdaftuar) +- #16471 log correct messages when CPFP fails (jnewbery) +- #16433 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke) +- #13868 Remove unused fScriptChecks parameter from CheckInputs (Empact) +- #16421 Conservatively accept RBF bumps bumping one tx at the package limits (TheBlueMatt) +- #16854 Prevent UpdateTip log message from being broken up (stevenroose) +- #16956 validation: Make GetWitnessCommitmentIndex public (MarcoFalke) +- #16713 Ignore old versionbit activations to avoid 'unknown softforks' warning (jnewbery) +- #17002 chainparams: Bump assumed chain params (MarcoFalke) +- #16849 Fix block index inconsistency in InvalidateBlock() (sdaftuar) + +### P2P protocol and network code +- #15597 Generate log entry when blocks messages are received unexpectedly (pstratem) +- #15654 Remove unused unsanitized user agent string CNode::strSubVer (MarcoFalke) +- #15689 netaddress: Update CNetAddr for ORCHIDv2 (dongcarl) +- #15834 Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map (sdaftuar) +- #15651 torcontrol: Use the default/standard network port for Tor hidden services, even if the internal port is set differently (luke-jr) +- #16188 Document what happens to getdata of unknown type (MarcoFalke) +- #15649 Add ChaCha20Poly1305@Bitcoin AEAD (jonasschnelli) +- #16152 Disable bloom filtering by default (TheBlueMatt) +- #15993 Drop support of the insecure miniUPnPc versions (hebasto) +- #16197 Use mockable time for tx download (MarcoFalke) +- #16248 Make whitebind/whitelist permissions more flexible (NicolasDorier) +- #16618 [Fix] Allow connection of a noban banned peer (NicolasDorier) +- #16631 Restore default whitelistrelay to true (NicolasDorier) +- #15759 Add 2 outbound block-relay-only connections (sdaftuar) +- #15558 Don't query all DNS seeds at once (sipa) +- #16999 0.19 seeds update (laanwj) + +### Wallet +- #15288 Remove wallet -> node global function calls (ryanofsky) +- #15491 Improve log output for errors during load (gwillen) +- #13541 wallet/rpc: sendrawtransaction maxfeerate (kallewoof) +- #15680 Remove resendwallettransactions RPC method (jnewbery) +- #15508 Refactor analyzepsbt for use outside RPC code (gwillen) +- #15747 Remove plethora of Get*Balance (MarcoFalke) +- #15728 Refactor relay transactions (jnewbery) +- #15639 bitcoin-wallet tool: Drop libbitcoin_server.a dependency (ryanofsky) +- #15853 Remove unused import checkpoints.h (MarcoFalke) +- #15780 add cachable amounts for caching credit/debit values (kallewoof) +- #15778 Move maxtxfee from node to wallet (jnewbery) +- #15901 log on rescan completion (andrewtoth) +- #15917 Avoid logging no_such_file_or_directory error (promag) +- #15452 Replace CScriptID and CKeyID in CTxDestination with dedicated types (instagibbs) +- #15870 Only fail rescan when blocks have actually been pruned (MarcoFalke) +- #15006 Add option to create an encrypted wallet (achow101) +- #16001 Give WalletModel::UnlockContext move semantics (sipa) +- #15741 Batch write imported stuff in importmulti (achow101) +- #16144 do not encrypt wallets with disabled private keys (mrwhythat) +- #15024 Allow specific private keys to be derived from descriptor (meshcollider) +- #13756 "avoid_reuse" wallet flag for improved privacy (kallewoof) +- #16226 Move ismine to the wallet module (achow101) +- #16239 wallet/rpc: follow-up clean-up/fixes to avoid_reuse (kallewoof) +- #16286 refactoring: wallet: Fix GCC 7.4.0 warning (hebasto) +- #16257 abort when attempting to fund a transaction above -maxtxfee (Sjors) +- #16237 Have the wallet give out destinations instead of keys (achow101) +- #16322 Fix -maxtxfee check by moving it to CWallet::CreateTransaction (promag) +- #16361 Remove redundant pre-TopUpKeypool check (instagibbs) +- #16244 Move wallet creation out of the createwallet rpc into its own function (achow101) +- #16227 Refactor CWallet's inheritance chain (achow101) +- #16208 Consume ReserveDestination on successful CreateTransaction (instagibbs) +- #16301 Use CWallet::Import* functions in all import* RPCs (achow101) +- #16402 Remove wallet settings from chainparams (MarcoFalke) +- #16415 Get rid of PendingWalletTx class (ryanofsky) +- #15588 Log the actual wallet file version and no longer publicly expose the "version" record (achow101) +- #16399 Improve wallet creation (fjahr) +- #16475 Enumerate walletdb keys (MarcoFalke) +- #15709 Do not add "setting" key as unknown (Bushstar) +- #16451 Remove CMerkleTx (jnewbery) +- #15906 Move min_depth and max_depth to coin control (amitiuttarwar) +- #16502 Drop unused OldKey (promag) +- #16394 Allow createwallet to take empty passwords to make unencrypted wallets (achow101) +- #15911 Use wallet RBF default for walletcreatefundedpsbt (Sjors) +- #16503 Remove p2pEnabled from Chain interface (ariard) +- #16557 restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (jnewbery) +- #14934 Descriptor expansion cache clarifications (Sjors) +- #16383 rpcwallet: default include_watchonly to true for watchonly wallets (jb55) +- #16542 Return more specific errors about invalid descriptors (achow101) +- #16572 Fix Char as Bool in Wallet (JeremyRubin) +- #16753 extract PubKey from P2PK script with Solver (theStack) +- #16716 Use wallet name instead of pointer on unload/release (promag) +- #16185 gettransaction: add an argument to decode the transaction (darosior) +- #16745 Translate all initErrors in CreateWalletFromFile (MarcoFalke) +- #16792 Assert that the HRP is lowercase in Bech32::Encode (meshcollider) +- #16624 encapsulate transactions state (ariard) +- #16830 Cleanup walletinitinterface.h (hebasto) +- #16796 Fix segfault in CreateWalletFromFile (MarcoFalke) +- #16866 Rename 'decode' argument in gettransaction method to 'verbose' (jnewbery) +- #16727 Explicit feerate for bumpfee (instagibbs) +- #16609 descriptor: fix missed m_script_arg arg renaming in #14934 (fanquake) + +### RPC and other APIs +- #15492 remove deprecated generate method (Sjors) +- #15566 cli: Replace testnet with chain and return network name as per bip70 (fanquake) +- #15564 cli: Remove duplicate wallet fields from -getinfo (fanquake) +- #15642 Remove deprecated rpc warnings (jnewbery) +- #15637 Rename size to vsize in mempool related calls (fanquake) +- #15620 Uncouple non-wallet rpcs from maxTxFee global (MarcoFalke) +- #15616 Clarify decodescript RPCResult doc (MarcoFalke) +- #15669 Fix help text for signtransactionwithXXX (torkelrogstad) +- #15596 Ignore sendmany::minconf as dummy value (MarcoFalke) +- #15755 remove unused var in rawtransaction.cpp (Bushstar) +- #15746 RPCHelpMan: Always name dictionary keys (MarcoFalke) +- #15748 remove dead mining code (jnewbery) +- #15751 Speed up deriveaddresses for large ranges (sipa) +- #15770 Validate maxfeerate with AmountFromValue (promag) +- #15474 rest/rpc: Make mempoolinfo atomic (promag) +- #15463 Speedup getaddressesbylabel (promag) +- #15784 Remove dependency on interfaces::Chain in SignTransaction (ariard) +- #15323 Expose g_is_mempool_loaded via getmempoolinfo (Empact) +- #15932 Serialize in getblock without cs_main (MarcoFalke) +- #15930 Add balances RPC (MarcoFalke) +- #15730 Show scanning details in getwalletinfo (promag) +- #14802 faster getblockstats using BlockUndo data (FelixWeis) +- #14984 Speedup getrawmempool when verbose=true (promag) +- #16071 Hint for importmulti in help output of importpubkey and importaddress (kristapsk) +- #16063 Mention getwalletinfo where a rescan is triggered (promag) +- #16024 deriveaddresses: Correction of descriptor checksum in RPC example (ccapo) +- #16217 getrawtransaction: inform about blockhash argument when lookup fails (darosior) +- #15427 Add support for descriptors to utxoupdatepsbt (sipa) +- #16262 Allow shutdown while in generateblocks (pstratem) +- #15483 Adding a 'logpath' entry to getrpcinfo (darosior) +- #16325 Clarify that block count means height excl genesis (MarcoFalke) +- #16326 add new utxoupdatepsbt arguments to the CRPCCommand and CPRCCvertParam tables (jnewbery) +- #16332 Add logpath description for getrpcinfo (instagibbs) +- #16240 JSONRPCRequest-aware RPCHelpMan (kallewoof) +- #15996 Deprecate totalfee argument in `bumpfee` (instagibbs) +- #16467 sendrawtransaction help privacy note (jonatack) +- #16596 Fix getblocktemplate CLI example (emilengler) +- #15986 Add checksum to getdescriptorinfo (sipa) +- #16647 add weight to getmempoolentry output (fanquake) +- #16695 Add window final block height to getchaintxstats (leto) +- #16798 Refactor rawtransaction_util's SignTransaction to separate prevtx parsing (achow101) +- #16285 Improve scantxoutset response and help message (promag) +- #16725 Don't show addresses or P2PK in decoderawtransaction (NicolasDorier) +- #16787 Human readable network services (darosior) +- #16251 Improve signrawtransaction error reporting (ajtowns) +- #16873 fix regression in gettransaction (jonatack) +- #16512 Shuffle inputs and outputs after joining psbts (achow101) +- #16521 Use the default maxfeerate value as BTC/kB (Remagpie) +- #16817 Fix casing in getblockchaininfo to be inline with other fields (dangershony) +- #17131 fix -rpcclienttimeout 0 option (fjahr) +- #17249 Add missing deque include to fix build (jbeich) +- #17368 cli: fix -getinfo output when compiled with no wallet (fanquake) + +### GUI +- #15464 Drop unused return values in WalletFrame (promag) +- #15614 Defer removeAndDeleteWallet when no modal widget is active (promag) +- #15711 Generate bech32 addresses by default (MarcoFalke) +- #15829 update request payment button text and tab description (fanquake) +- #15874 Resolve the qt/guiutil <-> qt/optionsmodel CD (251Labs) +- #15371 Uppercase bech32 addresses in qr codes (benthecarman) +- #15928 Move QRImageWidget to its own file-pair (luke-jr) +- #16113 move coin control "OK" to the right hand side of the dialog (fanquake) +- #16090 Add vertical spacer to peer detail widget (JosuGZ) +- #15886 qt, wallet: Revamp SendConfirmationDialog (hebasto) +- #16263 Use qInfo() if no error occurs (hebasto) +- #16153 Add antialiasing to traffic graph widget (JosuGZ) +- #16350 Remove unused guard (hebasto) +- #16106 Sort wallets in open wallet menu (promag) +- #16291 Stop translating PACKAGE_NAME (MarcoFalke) +- #16380 Remove unused bits from the service flags enum (MarcoFalke) +- #16379 Fix autostart filenames on Linux for testnet/regtest (hebasto) +- #16366 init: Use InitError for all errors in bitcoind/qt (MarcoFalke) +- #16436 Do not create payment server if -disablewallet option provided (hebasto) +- #16514 Remove unused RPCConsole::tabFocus (promag) +- #16497 Generate bech32 addresses by default (take 2, fixup) (MarcoFalke) +- #16349 Remove redundant WalletController::addWallet slot (hebasto) +- #16578 Do not pass in command line arguments to QApplication (achow101) +- #16612 Remove menu icons (laanwj) +- #16677 remove unused PlatformStyle::TextColorIcon (fanquake) +- #16694 Ensure transaction send error is always visible (fanquake) +- #14879 Add warning messages to the debug window (hebasto) +- #16708 Replace obsolete functions of QSslSocket (hebasto) +- #16701 Replace functions deprecated in Qt 5.13 (hebasto) +- #16706 Replace deprecated QSignalMapper by lambda expressions (hebasto) +- #16707 Remove obsolete QModelIndex::child() (hebasto) +- #16758 Replace QFontMetrics::width() with TextWidth() (hebasto) +- #16760 Change uninstall icon on Windows (GChuf) +- #16720 Replace objc_msgSend() function calls with the native Objective-C syntax (hebasto) +- #16788 Update transifex slug for 0.19 (laanwj) +- #15450 Create wallet menu option (achow101) +- #16735 Remove unused menu items for Windows and Linux (GChuf) +- #16826 Do additional character escaping for wallet names and address labels (achow101) +- #15529 Add Qt programs to msvc build (updated, no code changes) (sipsorcery) +- #16714 add prune to intro screen with smart default (Sjors) +- #16858 advise users not to switch wallets when opening a BIP70 URI (jameshilliard) +- #16822 Create wallet menu option follow-ups (jonatack) +- #16882 Re-generate translations before 0.19.0 (MarcoFalke) +- #16928 Rename address checkbox back to bech32 (MarcoFalke) +- #16837 Fix {C{,XX},LD}FLAGS pickup (dongcarl) +- #16971 Change default size of intro frame (emilengler) +- #16988 Periodic translations update (laanwj) +- #16852 When BIP70 is disabled, get PaymentRequest merchant using string search (achow101) +- #16952 make sure to update the UI when deleting a transaction (jonasschnelli) +- #17031 Prevent processing duplicate payment requests (promag) +- #17135 Make polling in ClientModel asynchronous (promag) +- #17120 Fix start timer from non QThread (promag) +- #17257 disable font antialiasing for QR image address (fanquake) + +### Build system +- #14954 Require python 3.5 (MarcoFalke) +- #15580 native_protobuf: avoid system zlib (dongcarl) +- #15601 Switch to python3 (take 3) (MarcoFalke) +- #15581 Make less assumptions about build env (dongcarl) +- #14853 latest RapidCheck (fanquake) +- #15446 Improve depends debuggability (dongcarl) +- #13788 Fix --disable-asm for newer assembly checks/code (luke-jr) +- #12051 add missing debian contrib file to tarball (puchu) +- #15919 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift) +- #15978 .gitignore: Don't ignore depends patches (dongcarl) +- #15939 gitian: Remove windows 32 bit build (MarcoFalke) +- #15239 scripts and tools: Move non-linux build source tarballs to "bitcoin-binaries/version" directory (hebasto) +- #14047 Add HKDF_HMAC256_L32 and method to negate a private key (jonasschnelli) +- #16051 add patch to common dependencies (fanquake) +- #16049 switch to secure download of all dependencies (Kemu) +- #16059 configure: Fix thread_local detection (dongcarl) +- #16089 add ability to skip building zeromq (fanquake) +- #15844 Purge libtool archives (dongcarl) +- #15461 update to Boost 1.70 (Sjors) +- #16141 remove GZIP export from gitian descriptors (fanquake) +- #16235 Cleaned up and consolidated msbuild files (no code changes) (sipsorcery) +- #16246 MSVC: Fix error in debug mode (Fix #16245) (NicolasDorier) +- #16183 xtrans: Configure flags cleanup (dongcarl) +- #16258 [MSVC]: Create the config.ini as part of bitcoind build (NicolasDorier) +- #16271 remove -Wall from rapidcheck build flags (fanquake) +- #16309 [MSVC] allow user level project customization (NicolasDorier) +- #16308 [MSVC] Copy build output to src/ automatically after build (NicolasDorier) +- #15457 Check std::system for -[alert|block|wallet]notify (Sjors) +- #16344 use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors) +- #16352 prune dbus from depends (fanquake) +- #16270 expat 2.2.7 (fanquake) +- #16408 Prune X packages (dongcarl) +- #16386 disable unused Qt features (fanquake) +- #16424 Treat -Wswitch as error when --enable-werror (MarcoFalke) +- #16441 remove qt libjpeg check from bitcoin_qt.m4 (fanquake) +- #16434 Specify AM_CPPFLAGS for ZMQ (domob1812) +- #16534 add Qt Creator Makefile.am.user to .gitignore (Bushstar) +- #16573 disable building libsecp256k1 benchmarks (fanquake) +- #16533 disable libxcb extensions (fanquake) +- #16589 Remove unused src/obj-test folder (MarcoFalke) +- #16435 autoconf: Sane `--enable-debug` defaults (dongcarl) +- #16622 echo property tests status during build (jonatack) +- #16611 Remove src/obj directory from repository (laanwj) +- #16371 ignore macOS make deploy artefacts & add them to clean-local (fanquake) +- #16654 build: update RapidCheck Makefile (jonatack) +- #16370 cleanup package configure flags (fanquake) +- #16746 msbuild: Ignore linker warning (sipsorcery) +- #16750 msbuild: adds bench_bitcoin to auto generated project files (sipsorcery) +- #16810 guix: Remove ssp spec file hack (dongcarl) +- #16477 skip deploying plugins we dont use in macdeployqtplus (fanquake) +- #16413 Bump QT to LTS release 5.9.8 (THETCR) +- #15584 disable BIP70 support by default (fanquake) +- #16871 make building protobuf optional in depends (fanquake) +- #16879 remove redundant sed patching (fanquake) +- #16809 zlib: Move toolchain options to configure (dongcarl) +- #15146 Solve SmartOS FD_ZERO build issue (Empact) +- #16870 update boost macros to latest upstream for improved error reporting (fanquake) +- #16982 Factor out qt translations from build system (laanwj) +- #16926 Add OpenSSL termios fix for musl libc (nmarley) +- #16927 Refresh ZeroMQ 4.3.1 patch (nmarley) +- #17005 Qt version appears only if GUI is being built (ch4ot1c) +- #16468 Exclude depends/Makefile in .gitignore (promag) + +### Tests and QA +- #15296 Add script checking for deterministic line coverage in unit tests (practicalswift) +- #15338 ci: Build and run tests once on freebsd (MarcoFalke) +- #15479 Add .style.yapf (MarcoFalke) +- #15534 lint-format-strings: open files sequentially (fix for OS X) (gwillen) +- #15504 fuzz: Link BasicTestingSetup (shared with unit tests) (MarcoFalke) +- #15473 bench: Benchmark mempooltojson (MarcoFalke) +- #15466 Print remaining jobs in test_runner.py (stevenroose) +- #15631 mininode: Clearer error message on invalid magic bytes (MarcoFalke) +- #15255 Remove travis_wait from lint script (gkrizek) +- #15686 make pruning test faster (jnewbery) +- #15533 .style.yapf: Set column_limit=160 (MarcoFalke) +- #15660 Overhaul p2p_compactblocks.py (sdaftuar) +- #15495 Add regtests for HTTP status codes (domob1812) +- #15772 Properly log named args in authproxy (MarcoFalke) +- #15771 Prevent concurrency issues reading .cookie file (promag) +- #15693 travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke) +- #15629 init: Throw error when network specific config is ignored (MarcoFalke) +- #15773 Add BitcoinTestFramework::sync_* methods (MarcoFalke) +- #15797 travis: Bump second timeout to 33 minutes, add rationale (MarcoFalke) +- #15788 Unify testing setups for fuzz, bench, and unit tests (MarcoFalke) +- #15352 Reduce noise level in test_bitcoin output (practicalswift) +- #15779 Add wallet_balance benchmark (MarcoFalke) +- #15843 fix outdated include in blockfilter_index_tests (jamesob) +- #15866 Add missing syncwithvalidationinterfacequeue to wallet_import_rescan (MarcoFalke) +- #15697 Make swap_magic_bytes in p2p_invalid_messages atomic (MarcoFalke) +- #15895 Avoid re-reading config.ini unnecessarily (luke-jr) +- #15896 feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME in messages rather than hardcoding Bitcoin Core (luke-jr) +- #15897 QA/mininode: Send all headers upfront in send_blocks_and_test to avoid sending an unconnected one (luke-jr) +- #15696 test_runner: Move feature_pruning to base tests (MarcoFalke) +- #15869 Add settings merge test to prevent regresssions (ryanofsky) +- #15758 Add further tests to wallet_balance (MarcoFalke) +- #15841 combine_logs: append node stderr and stdout if it exists (MarcoFalke) +- #15949 test_runner: Move pruning back to extended (MarcoFalke) +- #15927 log thread names by default in functional tests (jnewbery) +- #15664 change default Python block serialization to witness (instagibbs) +- #15988 Add test for ArgsManager::GetChainName (ryanofsky) +- #15963 Make random seed logged and settable (jnewbery) +- #15943 Fail if RPC has been added without tests (MarcoFalke) +- #16036 travis: Run all lint scripts even if one fails (scravy) +- #13555 parameterize adjustment period in versionbits_computeblockversion (JBaczuk) +- #16079 wallet_balance.py: Prevent edge cases (stevenroose) +- #16078 replace tx hash with txid in rawtransaction test (LongShao007) +- #16042 Bump MAX_NODES to 12 (MarcoFalke) +- #16124 Limit Python linting to files in the repo (practicalswift) +- #16143 Mark unit test blockfilter_index_initial_sync as non-deterministic (practicalswift) +- #16214 travis: Fix caching issues (MarcoFalke) +- #15982 Make msg_block a witness block (MarcoFalke) +- #16225 Make coins_tests/updatecoins_simulation_test deterministic (practicalswift) +- #16236 fuzz: Log output even if fuzzer failed (MarcoFalke) +- #15520 cirrus: Run extended test feature_pruning (MarcoFalke) +- #16234 Add test for unknown args (MarcoFalke) +- #16207 stop generating lcov coverage when functional tests fail (asood123) +- #16252 Log to debug.log in all unit tests (MarcoFalke) +- #16289 Add missing ECC_Stop() in GUI rpcnestedtests.cpp (jonasschnelli) +- #16278 Remove unused includes (practicalswift) +- #16302 Add missing syncwithvalidationinterfacequeue to wallet_balance test (MarcoFalke) +- #15538 wallet_bumpfee.py: Make sure coin selection produces change (instagibbs) +- #16294 Create at most one testing setup (MarcoFalke) +- #16299 bench: Move generated data to a dedicated translation unit (promag) +- #16329 Add tests for getblockchaininfo.softforks (MarcoFalke) +- #15687 tool wallet test coverage for unexpected writes to wallet (jonatack) +- #16267 bench: Benchmark blocktojson (fanatid) +- #14505 Add linter to make sure single parameter constructors are marked explicit (practicalswift) +- #16338 Disable other targets when enable-fuzz is set (qmma70) +- #16334 rpc_users: Also test rpcauth.py with password (dongcarl) +- #15282 Replace hard-coded hex tx with class in test framework (stevenroose) +- #16390 Add --filter option to test_runner.py (promag) +- #15891 Require standard txs in regtest by default (MarcoFalke) +- #16374 Enable passing wildcard test names to test runner from root (jonatack) +- #16420 Fix race condition in wallet_encryption test (jonasschnelli) +- #16422 remove redundant setup in addrman_tests (zenosage) +- #16438 travis: Print memory and number of cpus (MarcoFalke) +- #16445 Skip flaky p2p_invalid_messages test on macOS (fjahr) +- #16459 Fix race condition in example_test.py (sdaftuar) +- #16464 Ensure we don't generate a too-big block in p2sh sigops test (sdaftuar) +- #16491 fix deprecated log.warn in feature_dbcrash test (jonatack) +- #15134 Switch one of the Travis jobs to an unsigned char environment (-funsigned-char) (practicalswift) +- #16505 Changes verbosity of msbuild from quiet to normal in the appveyor script (sipsorcery) +- #16293 Make test cases separate functions (MarcoFalke) +- #16470 Fail early on disconnect in mininode.wait_for_* (MarcoFalke) +- #16277 Suppress output in test_bitcoin for expected errors (gertjaap) +- #16493 Fix test failures (MarcoFalke) +- #16538 Add missing sync_blocks to feature_pruning (MarcoFalke) +- #16509 Adapt test framework for chains other than "regtest" (MarcoFalke) +- #16363 Add test for BIP30 duplicate tx (MarcoFalke) +- #16535 Explain why -whitelist is used in feature_fee_estimation (MarcoFalke) +- #16554 only include and use OpenSSL where it's actually needed (BIP70) (fanquake) +- #16598 Remove confusing hash256 function in util (elichai) +- #16595 travis: Use extended 90 minute timeout when available (MarcoFalke) +- #16563 Add unit test for AddTimeData (mzumsande) +- #16561 Use colors and dots in test_runner.py output only if standard output is a terminal (practicalswift) +- #16465 Test p2sh-witness and bech32 in wallet_import_rescan (MarcoFalke) +- #16582 Rework ci (Use travis only as fallback env) (MarcoFalke) +- #16633 travis: Fix test_runner.py timeouts (MarcoFalke) +- #16646 Run tests with UPnP disabled (fanquake) +- #16623 ci: Add environment files for all settings (MarcoFalke) +- #16656 fix rpc_setban.py race (jonasschnelli) +- #16570 Make descriptor tests deterministic (davereikher) +- #16404 Test ZMQ notification after chain reorg (promag) +- #16726 Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values (practicalswift) +- #16739 ci: Pass down $makejobs to test_runner.py, other improvements (MarcoFalke) +- #16767 Check for codespell in lint-spelling.sh (kristapsk) +- #16768 Make lint-includes.sh work from any directory (kristapsk) +- #15257 Scripts and tools: Bump flake8 to 3.7.8 (Empact) +- #16804 Remove unused try-block in assert_debug_log (MarcoFalke) +- #16850 `servicesnames` field in `getpeerinfo` and `getnetworkinfo` (darosior) +- #16551 Test that low difficulty chain fork is rejected (MarcoFalke) +- #16737 Establish only one connection between nodes in rpc_invalidateblock (MarcoFalke) +- #16845 Add notes on how to generate data/wallets/high_minversion (MarcoFalke) +- #16888 Bump timeouts in slow running tests (MarcoFalke) +- #16864 Add python bech32 impl round-trip test (instagibbs) +- #16865 add some unit tests for merkle.cpp (soroosh-sdi) +- #14696 Add explicit references to related CVE's in p2p_invalid_block test (lucash-dev) +- #16907 lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke) +- #16898 Remove connect_nodes_bi (MarcoFalke) +- #16917 Move common function assert_approx() into util.py (fridokus) +- #16921 Add information on how to add Vulture suppressions (practicalswift) +- #16920 Fix extra_args in wallet_import_rescan.py (MarcoFalke) +- #16918 Make PORT_MIN in test runner configurable (MarcoFalke) +- #16941 travis: Disable feature_block in tsan run due to oom (MarcoFalke) +- #16929 follow-up to rpc: default maxfeerate value as BTC/kB (jonatack) +- #16959 ci: Set $host before setting fallback values (MarcoFalke) +- #16961 Remove python dead code linter (laanwj) +- #16931 add unittests for CheckProofOfWork (soroosh-sdi) +- #16991 Fix service flag comparison check in rpc_net test (luke-jr) (laanwj) +- #16987 Correct docstring param name (jbampton) +- #17015 Explain QT_QPA_PLATFORM for gui tests (MarcoFalke) +- #17006 Enable UBSan for Travis fuzzing job (practicalswift) +- #17086 Fix fs_tests for unknown locales (carnhofdaki) +- #15903 appveyor: Write @PACKAGE_NAME@ to config (MarcoFalke) +- #16742 test: add executable flag for wallet_watchonly.py (theStack) +- #16740 qa: Relax so that the subscriber is ready before publishing zmq messages (#16740) + +### Miscellaneous +- #15335 Fix lack of warning of unrecognized section names (AkioNak) +- #15528 contrib: Bump gitian descriptors for 0.19 (MarcoFalke) +- #15609 scripts and tools: Set 'distro' explicitly (hebasto) +- #15519 Add Poly1305 implementation (jonasschnelli) +- #15643 contrib: Gh-merge: include acks in merge commit (MarcoFalke) +- #15838 scripts and tools: Fetch missing review comments in github-merge.py (nkostoulas) +- #15920 lint: Check that all wallet args are hidden (MarcoFalke) +- #15849 Thread names in logs and deadlock debug tools (jamesob) +- #15650 Handle the result of posix_fallocate system call (lucayepa) +- #15766 scripts and tools: Upgrade gitian image before signing (hebasto) +- #15512 Add ChaCha20 encryption option (XOR) (jonasschnelli) +- #15968 Fix portability issue with pthreads (grim-trigger) +- #15970 Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL (orientye) +- #15863 scripts and tools: Ensure repos are up-to-date in gitian-build.py (hebasto) +- #15224 Add RNG strengthening (10ms once every minute) (sipa) +- #15840 Contrib scripts: Filter IPv6 by ASN (abitfan) +- #13998 Scripts and tools: gitian-build.py improvements and corrections (hebasto) +- #15236 scripts and tools: Make --setup command independent (hebasto) +- #16114 contrib: Add curl as a required program in gitian-build.py (fanquake) +- #16046 util: Add type safe gettime (MarcoFalke) +- #15703 Update secp256k1 subtree to latest upstream (sipa) +- #16086 contrib: Use newer config.guess & config.sub in install_db4.sh (fanquake) +- #16130 Don't GPG sign intermediate commits with github-merge tool (stevenroose) +- #16162 scripts: Add key for michael ford (fanquake) to trusted keys list (fanquake) +- #16201 devtools: Always use unabbreviated commit IDs in github-merge.py (laanwj) +- #16112 util: Log early messages (MarcoFalke) +- #16223 devtools: Fetch and display ACKs at sign-off time in github-merge (laanwj) +- #16300 util: Explain why the path is cached (MarcoFalke) +- #16314 scripts and tools: Update copyright_header.py script (hebasto) +- #16158 Fix logic of memory_cleanse() on MSVC and clean up docs (real-or-random) +- #14734 fix an undefined behavior in uint::SetHex (kazcw) +- #16327 scripts and tools: Update ShellCheck linter (hebasto) +- #15277 contrib: Enable building in guix containers (dongcarl) +- #16362 Add bilingual_str type (hebasto) +- #16481 logs: add missing space (harding) +- #16581 sipsorcery gitian key (sipsorcery) +- #16566 util: Refactor upper/lowercase functions (kallewoof) +- #16620 util: Move resolveerrmsg to util/error (MarcoFalke) +- #16625 scripts: Remove github-merge.py (fanquake) +- #15864 Fix datadir handling (hebasto) +- #16670 util: Add join helper to join a list of strings (MarcoFalke) +- #16665 scripts: Move update-translations.py to maintainer-tools repo (fanquake) +- #16730 Support serialization of `std::vector` (sipa) +- #16556 Fix systemd service file configuration directory setup (setpill) +- #15615 Add log output during initial header sync (jonasschnelli) +- #16774 Avoid unnecessary "Synchronizing blockheaders" log messages (jonasschnelli) +- #16489 log: harmonize bitcoind logging (jonatack) +- #16577 util: Cbufferedfile fixes and unit test (LarryRuane) +- #16984 util: Make thread names shorter (hebasto) +- #17038 Don't rename main thread at process level (laanwj) +- #17184 util: Filter out macos process serial number (hebasto) +- #17095 util: Filter control characters out of log messages (laanwj) +- #17085 init: Change fallback locale to C.UTF-8 (laanwj) +- #16957 9% less memory: make SaltedOutpointHasher noexcept (martinus) +- #17449 fix uninitialized variable nMinerConfirmationWindow (bitcoinVBR) + +### Documentation +- #15514 Update Transifex links (fanquake) +- #15513 add "sections" info to example bitcoin.conf (fanquake) +- #15530 Move wallet lock annotations to header (MarcoFalke) +- #15562 remove duplicate clone step in build-windows.md (fanquake) +- #15565 remove release note fragments (fanquake) +- #15444 Additional productivity tips (Sjors) +- #15577 Enable TLS in link to chris.beams.io (JeremyRand) +- #15604 release note for disabling reject messages by default (jnewbery) +- #15611 Add Gitian key for droark (droark) +- #15626 Update ACK description in CONTRIBUTING.md (jonatack) +- #15603 Add more tips to productivity.md (gwillen) +- #15683 Comment for seemingly duplicate LIBBITCOIN_SERVER (Bushstar) +- #15685 rpc-mining: Clarify error messages (MarcoFalke) +- #15760 Clarify sendrawtransaction::maxfeerate==0 help (MarcoFalke) +- #15659 fix findFork comment (r8921039) +- #15718 Improve netaddress comments (dongcarl) +- #15833 remove out-of-date comment on pay-to-witness support (r8921039) +- #15821 Remove upgrade note in release notes from EOL versions (MarcoFalke) +- #15267 explain AcceptToMemoryPoolWorker's coins_to_uncache (jamesob) +- #15887 Align code example style with clang-format (hebasto) +- #15877 Fix -dustrelayfee= argument docs grammar (keepkeyjon) +- #15908 Align MSVC build options with Linux build ones (hebasto) +- #15941 Add historical release notes for 0.18.0 (laanwj) +- #15794 Clarify PR guidelines w/re documentation (dongcarl) +- #15607 Release process updates (jonatack) +- #14364 Clarify -blocksdir usage (sangaman) +- #15777 Add doxygen comments for keypool classes (jnewbery) +- #15820 Add productivity notes for dummy rebases (dongcarl) +- #15922 Explain how to pass in non-fundamental types into functions (MarcoFalke) +- #16080 build/doc: update bitcoin_config.h packages, release process (jonatack) +- #16047 analyzepsbt description in doc/psbt.md (jonatack) +- #16039 add release note for 14954 (fanquake) +- #16139 Add riscv64 to outputs list in release-process.md (JeremyRand) +- #16140 create security policy (narula) +- #16164 update release process for SECURITY.md (jonatack) +- #16213 Remove explicit mention of versions from SECURITY.md (MarcoFalke) +- #16186 doc/lint: Fix spelling errors identified by codespell 1.15.0 (Empact) +- #16149 Rework section on ACK in CONTRIBUTING.md (MarcoFalke) +- #16196 Add release notes for 14897 & 15834 (MarcoFalke) +- #16241 add rapidcheck to vcpkg install list (fanquake) +- #16243 Remove travis badge from readme (MarcoFalke) +- #16256 remove orphaned header in developer notes (jonatack) +- #15964 Improve build-osx document formatting (giulio92) +- #16313 Fix broken link in doc/build-osx.md (jonatack) +- #16330 Use placeholder instead of key expiration date (hebasto) +- #16339 add reduce-memory.md (fanquake) +- #16347 Include static members in Doxygen (dongcarl) +- #15824 Improve netbase comments (dongcarl) +- #16430 Update bips 35, 37 and 111 status (MarcoFalke) +- #16455 Remove downgrading warning in release notes, per 0.18 branch (MarcoFalke) +- #16484 update labels in CONTRIBUTING.md (MarcoFalke) +- #16483 update Python command in msvc readme (sipsorcery) +- #16504 Add release note for the deprecated totalFee option of bumpfee (promag) +- #16448 add note on precedence of options in bitcoin.conf (fanquake) +- #16536 Update and extend benchmarking.md (ariard) +- #16530 Fix grammar and punctuation in developer notes (Tech1k) +- #16574 Add historical release notes for 0.18.1 (laanwj) +- #16585 Update Markdown syntax for bdb packages (emilengler) +- #16586 Mention other ways to conserve memory on compilation (MarcoFalke) +- #16605 Add missing contributor to 0.18.1 release notes (meshcollider) +- #16615 Fix typos in COPYRIGHT (gapeman) +- #16626 Fix spelling error chache -> cache (nilswloewen) +- #16587 Improve versionbits.h documentation (ariard) +- #16643 Add ZMQ dependencies to the Fedora build instructions (hebasto) +- #16634 Refer in rpcbind doc to the manpage (MarcoFalke) +- #16555 mention whitelist is inbound, and applies to blocksonly (Sjors) +- #16645 initial RapidCheck property-based testing documentation (jonatack) +- #16691 improve depends prefix documentation (fanquake) +- #16629 Add documentation for the new whitelist permissions (NicolasDorier) +- #16723 Update labels in CONTRIBUTING.md (hebasto) +- #16461 Tidy up shadowing section (promag) +- #16621 add default bitcoin.conf locations (GChuf) +- #16752 Delete stale URL in test README (michaelfolkson) +- #14862 Declare BLOCK_VALID_HEADER reserved (MarcoFalke) +- #16806 Add issue templates for bug and feature request (MarcoFalke) +- #16857 Elaborate need to re-login on Debian-based after usermod for Tor group (clashicly) +- #16863 Add a missing closing parenthesis in the bitcoin-wallet's help (darosior) +- #16757 CChainState return values (MarcoFalke) +- #16847 add comments clarifying how local services are advertised (jamesob) +- #16812 Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in (ch4ot1c) +- #16885 Update tx-size-small comment with relevant CVE disclosure (instagibbs) +- #16900 Fix doxygen comment for SignTransaction in rpc/rawtransaction_util (MarcoFalke) +- #16914 Update homebrew instruction for doxygen (Sjors) +- #16912 Remove Doxygen intro from src/bitcoind.cpp (ch4ot1c) +- #16960 replace outdated OpenSSL comment in test README (fanquake) +- #16968 Remove MSVC update step from translation process (laanwj) +- #16953 Improve test READMEs (fjahr) +- #16962 Put PR template in comments (laanwj) +- #16397 Clarify includeWatching for fundrawtransaction (stevenroose) +- #15459 add how to calculate blockchain and chainstate size variables to release process (marcoagner) +- #16997 Update bips.md for 0.19 (laanwj) +- #17001 Remove mention of renamed mapBlocksUnlinked (MarcoFalke) +- #17014 Consolidate release notes before 0.19.0 (move-only) (MarcoFalke) +- #17111 update bips.md with buried BIP9 deployments (MarcoFalke) + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- 251 +- Aaron Clauson +- Akio Nakamura +- Alistair Mann +- Amiti Uttarwar +- Andrew Chow +- andrewtoth +- Anthony Towns +- Antoine Riard +- Aseem Sood +- Ben Carman +- Ben Woosley +- bpay +- Carl Dong +- Carnhof Daki +- Chris Capobianco +- Chris Moore +- Chuf +- clashic +- clashicly +- Cory Fields +- Daki Carnhof +- Dan Gershony +- Daniel Edgecumbe +- Daniel Kraft +- Daniel McNally +- darosior +- David A. Harding +- David Reikher +- Douglas Roark +- Elichai Turkel +- Emil +- Emil Engler +- ezegom +- Fabian Jahr +- fanquake +- Felix Weis +- Ferdinando M. Ametrano +- fridokus +- gapeman +- GChuf +- Gert-Jaap Glasbergen +- Giulio Lombardo +- Glenn Willen +- Graham Krizek +- Gregory Sanders +- grim-trigger +- gwillen +- Hennadii Stepanov +- Jack Mallers +- James Hilliard +- James O'Beirne +- Jan Beich +- Jeremy Rubin +- JeremyRand +- Jim Posen +- John Bampton +- John Newbery +- Jon Atack +- Jon Layton +- Jonas Schnelli +- Jonathan "Duke" Leto +- João Barbosa +- Joonmo Yang +- Jordan Baczuk +- Jorge Timón +- Josu Goñi +- Julian Fleischer +- Karl-Johan Alm +- Kaz Wesley +- keepkeyjon +- Kirill Fomichev +- Kristaps Kaupe +- Kristian Kramer +- Larry Ruane +- Lenny Maiorani +- LongShao007 +- Luca Venturini +- lucash-dev +- Luke Dashjr +- marcoagner +- MarcoFalke +- marcuswin +- Martin Ankerl +- Martin Zumsande +- Matt Corallo +- MeshCollider +- Michael Folkson +- Miguel Herranz +- Nathan Marley +- Neha Narula +- nicolas.dorier +- Nils Loewen +- nkostoulas +- NullFunctor +- orient +- Patrick Strateman +- Peter Bushnell +- Peter Wagner +- Pieter Wuille +- practicalswift +- qmma +- r8921039 +- RJ Rybarczyk +- Russell Yanofsky +- Samuel Dobson +- Sebastian Falbesoner +- setpill +- shannon1916 +- Sjors Provoost +- soroosh-sdi +- Steven Roose +- Suhas Daftuar +- tecnovert +- THETCR +- Tim Ruffing +- Tobias Kaderle +- Torkel Rogstad +- Ulrich Kempken +- whythat +- William Casarin +- Wladimir J. van der Laan +- zenosage + +As well as everyone that helped translating on [Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.19.0.md b/doc/release-notes/release-notes-0.19.0.md index 153da68a6e..086491e92d 100644 --- a/doc/release-notes/release-notes-0.19.0.md +++ b/doc/release-notes/release-notes-0.19.0.md @@ -1,1086 +1,6 @@ -Bitcoin Core version 0.19.0 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but might take some time if the datadir needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems using -the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not recommended -to use Bitcoin Core on unsupported systems. - -Bitcoin Core should also work on most other Unix-like systems but is not -as frequently tested on them. - -From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is -built using Qt 5.9.x, which doesn't support versions of macOS older than -10.10. Additionally, Bitcoin Core does not yet change appearance when -macOS "dark mode" is activated. - -Users running macOS Catalina may need to "right-click" and then choose "Open" -to open the Bitcoin Core .dmg. This is due to new signing requirements -imposed by Apple, which the Bitcoin Core project does not yet adhere too. - -Notable changes -=============== - -New user documentation ----------------------- - -- [Reduce memory](https://github.com/bitcoin/bitcoin/blob/master/doc/reduce-memory.md) - suggests configuration tweaks for running Bitcoin Core on systems with - limited memory. (#16339) - -New RPCs --------- - -- `getbalances` returns an object with all balances (`mine`, - `untrusted_pending` and `immature`). Please refer to the RPC help of - `getbalances` for details. The new RPC is intended to replace - `getbalance`, `getunconfirmedbalance`, and the balance fields in - `getwalletinfo`. These old calls and fields may be removed in a - future version. (#15930, #16239) - -- `setwalletflag` sets and unsets wallet flags that enable or disable - features specific to that existing wallet, such as the new - `avoid_reuse` feature documented elsewhere in these release notes. - (#13756) - -- `getblockfilter` gets the BIP158 filter for the specified block. This - RPC is only enabled if block filters have been created using the - `-blockfilterindex` configuration option. (#14121) - -New settings ------------- - -- `-blockfilterindex` enables the creation of BIP158 block filters for - the entire blockchain. Filters will be created in the background and - currently use about 4 GiB of space. Note: this version of Bitcoin - Core does not serve block filters over the P2P network, although the - local user may obtain block filters using the `getblockfilter` RPC. - (#14121) - -Updated settings ----------------- - -- `whitebind` and `whitelist` now accept a list of permissions to - provide peers connecting using the indicated interfaces or IP - addresses. If no permissions are specified with an address or CIDR - network, the implicit default permissions are the same as previous - releases. See the `bitcoind -help` output for these two options for - details about the available permissions. (#16248) - -- Users setting custom `dbcache` values can increase their setting slightly - without using any more real memory. Recent changes reduced the memory use - by about 9% and made chainstate accounting more accurate (it was underestimating - the use of memory before). For example, if you set a value of "450" before, you - may now set a value of "500" to use about the same real amount of memory. (#16957) - - -Updated RPCs ------------- - -Note: some low-level RPC changes mainly useful for testing are described in the -Low-level Changes section below. - -- `sendmany` no longer has a `minconf` argument. This argument was not - well-specified and would lead to RPC errors even when the wallet's - coin selection succeeded. Users who want to influence coin selection - can use the existing `-spendzeroconfchange`, `-limitancestorcount`, - `-limitdescendantcount` and `-walletrejectlongchains` configuration - arguments. (#15596) - -- `getbalance` and `sendtoaddress`, plus the new RPCs `getbalances` and - `createwallet`, now accept an "avoid_reuse" parameter that controls - whether already used addresses should be included in the operation. - Additionally, `sendtoaddress` will avoid partial spends when - `avoid_reuse` is enabled even if this feature is not already enabled - via the `-avoidpartialspends` command line flag because not doing so - would risk using up the "wrong" UTXO for an address reuse case. - (#13756) - -- RPCs which have an `include_watchonly` argument or `includeWatching` option now default to `true` for watch-only - wallets. Affected RPCs are: `getbalance`, `listreceivedbyaddress`, `listreceivedbylabel`, `listtransactions`, - `listsinceblock`, `gettransaction`, `walletcreatefundedpsbt`, and `fundrawtransaction`. (#16383) - -- `listunspent` now returns a "reused" bool for each output if the - wallet flag "avoid_reuse" is enabled. (#13756) - -- `getblockstats` now uses BlockUndo data instead of the transaction - index, making it much faster, no longer dependent on the `-txindex` - configuration option, and functional for all non-pruned blocks. - (#14802) - -- `utxoupdatepsbt` now accepts a `descriptors` parameter that will fill - out input and output scripts and keys when known. P2SH-witness inputs - will be filled in from the UTXO set when a descriptor is provided that - shows they're spending segwit outputs. See the RPC help text for full - details. (#15427) - -- `sendrawtransaction` and `testmempoolaccept` no longer accept a - `allowhighfees` parameter to fail mempool acceptance if the - transaction fee exceeds the value of the configuration option - `-maxtxfee`. Now there is a hardcoded default maximum feerate that - can be changed when calling either RPC using a `maxfeerate` parameter. - (#15620) - -- `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry`, and - `getrawmempool` no longer return a `size` field unless the - configuration option `-deprecatedrpc=size` is used. Instead a new - `vsize` field is returned with the transaction's virtual size - (consistent with other RPCs such as `getrawtransaction`). (#15637) - -- `getwalletinfo` now includes a `scanning` field that is either `false` - (no scanning) or an object with information about the duration and - progress of the wallet's scanning historical blocks for transactions - affecting its balances. (#15730) - -- `gettransaction` now accepts a third (boolean) argument `verbose`. If - set to `true`, a new `decoded` field will be added to the response containing - the decoded transaction. This field is equivalent to RPC `decoderawtransaction`, - or RPC `getrawtransaction` when `verbose` is passed. (#16185, #16866, #16873) - -- `createwallet` accepts a new `passphrase` parameter. If set, this - will create the new wallet encrypted with the given passphrase. If - unset (the default) or set to an empty string, no encryption will be - used. (#16394) - -- `getchaintxstats` RPC now returns the additional key of - `window_final_block_height`. (#16695) - -- `getmempoolentry` now provides a `weight` field containing the - transaction weight as defined in BIP141. (#16647) - -- The `getnetworkinfo` and `getpeerinfo` commands now contain a new field with decoded network service flags. (#16786) - -- `getdescriptorinfo` now returns an additional `checksum` field - containing the checksum for the unmodified descriptor provided by the - user (that is, before the descriptor is normalized for the - `descriptor` field). (#15986) - -- `joinpsbts` now shuffles the order of the inputs and outputs of the resulting - joined PSBT. Previously, inputs and outputs were added in the order PSBTs were - provided. This made it easy to correlate inputs to outputs, representing a - privacy leak. (#16512) - -- `walletcreatefundedpsbt` now signals BIP125 Replace-by-Fee if the - `-walletrbf` configuration option is set to true. (#15911) - -GUI changes ------------ - -- The GUI wallet now provides bech32 addresses by default. The user may change the address type - during invoice generation using a GUI toggle, or the default address - type may be changed with the `-addresstype` configuration option. - (#15711, #16497) - -- In 0.18.0, a `./configure` flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now __disabled__ by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass `--enable-bip70` to `./configure`. (#15584) - -Deprecated or removed configuration options -------------------------------------------- - -- `-mempoolreplacement` is removed, although default node behavior - remains the same. This option previously allowed the user to prevent - the node from accepting or relaying BIP125 transaction replacements. - This is different from the remaining configuration option - `-walletrbf`. (#16171) - -Deprecated or removed RPCs --------------------------- - -- `bumpfee` no longer accepts a `totalFee` option unless the - configuration parameter `deprecatedrpc=totalFee` is specified. This - parameter will be fully removed in a subsequent release. (#15996) - -- `bumpfee` has a new `fee_rate` option as a replacement for the deprecated `totalFee`. (#16727) - -- `generate` is now removed after being deprecated in Bitcoin Core 0.18. - Use the `generatetoaddress` RPC instead. (#15492) - -P2P changes +0.19.0 note ----------- -- BIP 61 reject messages were deprecated in v0.18. They are now disabled - by default, but can be enabled by setting the `-enablebip61` command - line option. BIP 61 reject messages will be removed entirely in a - future version of Bitcoin Core. (#14054) - -- To eliminate well-known denial-of-service vectors in Bitcoin Core, - especially for nodes with spinning disks, the default value for the - `-peerbloomfilters` configuration option has been changed to false. - This prevents Bitcoin Core from sending the BIP111 NODE_BLOOM service - flag, accepting BIP37 bloom filters, or serving merkle blocks or - transactions matching a bloom filter. Users who still want to provide - bloom filter support may either set the configuration option to true - to re-enable both BIP111 and BIP37 support or enable just BIP37 - support for specific peers using the updated `-whitelist` and - `-whitebind` configuration options described elsewhere in these - release notes. For the near future, lightweight clients using public - BIP111/BIP37 nodes should still be able to connect to older versions - of Bitcoin Core and nodes that have manually enabled BIP37 support, - but developers of such software should consider migrating to either - using specific BIP37 nodes or an alternative transaction filtering - system. (#16152) - -- By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out. (#15759) - -Miscellaneous CLI Changes -------------------------- - -- The `testnet` field in `bitcoin-cli -getinfo` has been renamed to - `chain` and now returns the current network name as defined in BIP70 - (main, test, regtest). (#15566) - -Low-level changes -================= - -RPC ---- - -- `getblockchaininfo` no longer returns a `bip9_softforks` object. - Instead, information has been moved into the `softforks` object and - an additional `type` field describes how Bitcoin Core determines - whether that soft fork is active (e.g. BIP9 or BIP90). See the RPC - help for details. (#16060) - -- `getblocktemplate` no longer returns a `rules` array containing `CSV` - and `segwit` (the BIP9 deployments that are currently in active - state). (#16060) - -- `getrpcinfo` now returns a `logpath` field with the path to - `debug.log`. (#15483) - -Tests ------ - -- The regression test chain enabled by the `-regtest` command line flag - now requires transactions to not violate standard policy by default. - This is the same default used for mainnet and makes it easier to test - mainnet behavior on regtest. Note that the testnet still allows - non-standard txs by default and that the policy can be locally - adjusted with the `-acceptnonstdtxn` command line flag for both test - chains. (#15891) - -Configuration ------------- - -- A setting specified in the default section but not also specified in a - network-specific section (e.g. testnet) will now produce an error - preventing startup instead of just a warning unless the network is - mainnet. This prevents settings intended for mainnet from being - applied to testnet or regtest. (#15629) - -- On platforms supporting `thread_local`, log lines can be prefixed with - the name of the thread that caused the log. To enable this behavior, - use `-logthreadnames=1`. (#15849) - -Network -------- - -- When fetching a transaction announced by multiple peers, previous versions of - Bitcoin Core would sequentially attempt to download the transaction from each - announcing peer until the transaction is received, in the order that those - peers' announcements were received. In this release, the download logic has - changed to randomize the fetch order across peers and to prefer sending - download requests to outbound peers over inbound peers. This fixes an issue - where inbound peers could prevent a node from getting a transaction. - (#14897, #15834) - -- If a Tor hidden service is being used, Bitcoin Core will be bound to - the standard port 8333 even if a different port is configured for - clearnet connections. This prevents leaking node identity through use - of identical non-default port numbers. (#15651) - -Mempool and transaction relay ------------------------------ - -- Allows one extra single-ancestor transaction per package. Previously, - if a transaction in the mempool had 25 descendants, or it and all of - its descendants were over 101,000 vbytes, any newly-received - transaction that was also a descendant would be ignored. Now, one - extra descendant will be allowed provided it is an immediate - descendant (child) and the child's size is 10,000 vbytes or less. - This makes it possible for two-party contract protocols such as - Lightning Network to give each participant an output they can spend - immediately for Child-Pays-For-Parent (CPFP) fee bumping without - allowing one malicious participant to fill the entire package and thus - prevent the other participant from spending their output. (#15681) - -- Transactions with outputs paying v1 to v16 witness versions (future - segwit versions) are now accepted into the mempool, relayed, and - mined. Attempting to spend those outputs remains forbidden by policy - ("non-standard"). When this change has been widely deployed, wallets - and services can accept any valid bech32 Bitcoin address without - concern that transactions paying future segwit versions will become - stuck in an unconfirmed state. (#15846) - -- Legacy transactions (transactions with no segwit inputs) must now be - sent using the legacy encoding format, enforcing the rule specified in - BIP144. (#14039) - -Wallet ------- - -- When in pruned mode, a rescan that was triggered by an `importwallet`, - `importpubkey`, `importaddress`, or `importprivkey` RPC will only fail - when blocks have been pruned. Previously it would fail when `-prune` - has been set. This change allows setting `-prune` to a high value - (e.g. the disk size) without the calls to any of the import RPCs - failing until the first block is pruned. (#15870) - -- When creating a transaction with a fee above `-maxtxfee` (default 0.1 - BTC), the RPC commands `walletcreatefundedpsbt` and - `fundrawtransaction` will now fail instead of rounding down the fee. - Be aware that the `feeRate` argument is specified in BTC per 1,000 - vbytes, not satoshi per vbyte. (#16257) - -- A new wallet flag `avoid_reuse` has been added (default off). When - enabled, a wallet will distinguish between used and unused addresses, - and default to not use the former in coin selection. When setting - this flag on an existing wallet, rescanning the blockchain is required - to correctly mark previously used destinations. Together with "avoid - partial spends" (added in Bitcoin Core v0.17.0), this can eliminate a - serious privacy issue where a malicious user can track spends by - sending small payments to a previously-paid address that would then - be included with unrelated inputs in future payments. (#13756) - -Build system changes --------------------- - -- Python >=3.5 is now required by all aspects of the project. This - includes the build systems, test framework and linters. The previously - supported minimum (3.4), was EOL in March 2019. (#14954) - -- The minimum supported miniUPnPc API version is set to 10. This keeps - compatibility with Ubuntu 16.04 LTS and Debian 8 `libminiupnpc-dev` - packages. Please note, on Debian this package is still vulnerable to - [CVE-2017-8798](https://security-tracker.debian.org/tracker/CVE-2017-8798) - (in jessie only) and - [CVE-2017-1000494](https://security-tracker.debian.org/tracker/CVE-2017-1000494) - (both in jessie and in stretch). (#15993) - -0.19.0 change log -================= - -### Consensus -- #16128 Delete error-prone CScript constructor only used with FindAndDelete (instagibbs) -- #16060 Bury bip9 deployments (jnewbery) - -### Policy -- #15557 Enhance `bumpfee` to include inputs when targeting a feerate (instagibbs) -- #15846 Make sending to future native witness outputs standard (sipa) - -### Block and transaction handling -- #15632 Remove ResendWalletTransactions from the Validation Interface (jnewbery) -- #14121 Index for BIP 157 block filters (jimpo) -- #15141 Rewrite DoS interface between validation and net_processing (sdaftuar) -- #15880 utils and libraries: Replace deprecated Boost Filesystem functions (hebasto) -- #15971 validation: Add compile-time checking for negative locking requirement in LimitValidationInterfaceQueue (practicalswift) -- #15999 init: Remove dead code in LoadChainTip (MarcoFalke) -- #16015 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift) -- #16056 remove unused magic number from consistency check (instagibbs) -- #16171 Remove -mempoolreplacement to prevent needless block prop slowness (TheBlueMatt) -- #15894 Remove duplicated "Error: " prefix in logs (hebasto) -- #14193 validation: Add missing mempool locks (MarcoFalke) -- #15681 Allow one extra single-ancestor transaction per package (TheBlueMatt) -- #15305 [validation] Crash if disconnecting a block fails (sdaftuar) -- #16471 log correct messages when CPFP fails (jnewbery) -- #16433 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke) -- #13868 Remove unused fScriptChecks parameter from CheckInputs (Empact) -- #16421 Conservatively accept RBF bumps bumping one tx at the package limits (TheBlueMatt) -- #16854 Prevent UpdateTip log message from being broken up (stevenroose) -- #16956 validation: Make GetWitnessCommitmentIndex public (MarcoFalke) -- #16713 Ignore old versionbit activations to avoid 'unknown softforks' warning (jnewbery) -- #17002 chainparams: Bump assumed chain params (MarcoFalke) -- #16849 Fix block index inconsistency in InvalidateBlock() (sdaftuar) - -### P2P protocol and network code -- #15597 Generate log entry when blocks messages are received unexpectedly (pstratem) -- #15654 Remove unused unsanitized user agent string CNode::strSubVer (MarcoFalke) -- #15689 netaddress: Update CNetAddr for ORCHIDv2 (dongcarl) -- #15834 Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map (sdaftuar) -- #15651 torcontrol: Use the default/standard network port for Tor hidden services, even if the internal port is set differently (luke-jr) -- #16188 Document what happens to getdata of unknown type (MarcoFalke) -- #15649 Add ChaCha20Poly1305@Bitcoin AEAD (jonasschnelli) -- #16152 Disable bloom filtering by default (TheBlueMatt) -- #15993 Drop support of the insecure miniUPnPc versions (hebasto) -- #16197 Use mockable time for tx download (MarcoFalke) -- #16248 Make whitebind/whitelist permissions more flexible (NicolasDorier) -- #16618 [Fix] Allow connection of a noban banned peer (NicolasDorier) -- #16631 Restore default whitelistrelay to true (NicolasDorier) -- #15759 Add 2 outbound block-relay-only connections (sdaftuar) -- #15558 Don't query all DNS seeds at once (sipa) -- #16999 0.19 seeds update (laanwj) - -### Wallet -- #15288 Remove wallet -> node global function calls (ryanofsky) -- #15491 Improve log output for errors during load (gwillen) -- #13541 wallet/rpc: sendrawtransaction maxfeerate (kallewoof) -- #15680 Remove resendwallettransactions RPC method (jnewbery) -- #15508 Refactor analyzepsbt for use outside RPC code (gwillen) -- #15747 Remove plethora of Get*Balance (MarcoFalke) -- #15728 Refactor relay transactions (jnewbery) -- #15639 bitcoin-wallet tool: Drop libbitcoin_server.a dependency (ryanofsky) -- #15853 Remove unused import checkpoints.h (MarcoFalke) -- #15780 add cachable amounts for caching credit/debit values (kallewoof) -- #15778 Move maxtxfee from node to wallet (jnewbery) -- #15901 log on rescan completion (andrewtoth) -- #15917 Avoid logging no_such_file_or_directory error (promag) -- #15452 Replace CScriptID and CKeyID in CTxDestination with dedicated types (instagibbs) -- #15870 Only fail rescan when blocks have actually been pruned (MarcoFalke) -- #15006 Add option to create an encrypted wallet (achow101) -- #16001 Give WalletModel::UnlockContext move semantics (sipa) -- #15741 Batch write imported stuff in importmulti (achow101) -- #16144 do not encrypt wallets with disabled private keys (mrwhythat) -- #15024 Allow specific private keys to be derived from descriptor (meshcollider) -- #13756 "avoid_reuse" wallet flag for improved privacy (kallewoof) -- #16226 Move ismine to the wallet module (achow101) -- #16239 wallet/rpc: follow-up clean-up/fixes to avoid_reuse (kallewoof) -- #16286 refactoring: wallet: Fix GCC 7.4.0 warning (hebasto) -- #16257 abort when attempting to fund a transaction above -maxtxfee (Sjors) -- #16237 Have the wallet give out destinations instead of keys (achow101) -- #16322 Fix -maxtxfee check by moving it to CWallet::CreateTransaction (promag) -- #16361 Remove redundant pre-TopUpKeypool check (instagibbs) -- #16244 Move wallet creation out of the createwallet rpc into its own function (achow101) -- #16227 Refactor CWallet's inheritance chain (achow101) -- #16208 Consume ReserveDestination on successful CreateTransaction (instagibbs) -- #16301 Use CWallet::Import* functions in all import* RPCs (achow101) -- #16402 Remove wallet settings from chainparams (MarcoFalke) -- #16415 Get rid of PendingWalletTx class (ryanofsky) -- #15588 Log the actual wallet file version and no longer publicly expose the "version" record (achow101) -- #16399 Improve wallet creation (fjahr) -- #16475 Enumerate walletdb keys (MarcoFalke) -- #15709 Do not add "setting" key as unknown (Bushstar) -- #16451 Remove CMerkleTx (jnewbery) -- #15906 Move min_depth and max_depth to coin control (amitiuttarwar) -- #16502 Drop unused OldKey (promag) -- #16394 Allow createwallet to take empty passwords to make unencrypted wallets (achow101) -- #15911 Use wallet RBF default for walletcreatefundedpsbt (Sjors) -- #16503 Remove p2pEnabled from Chain interface (ariard) -- #16557 restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (jnewbery) -- #14934 Descriptor expansion cache clarifications (Sjors) -- #16383 rpcwallet: default include_watchonly to true for watchonly wallets (jb55) -- #16542 Return more specific errors about invalid descriptors (achow101) -- #16572 Fix Char as Bool in Wallet (JeremyRubin) -- #16753 extract PubKey from P2PK script with Solver (theStack) -- #16716 Use wallet name instead of pointer on unload/release (promag) -- #16185 gettransaction: add an argument to decode the transaction (darosior) -- #16745 Translate all initErrors in CreateWalletFromFile (MarcoFalke) -- #16792 Assert that the HRP is lowercase in Bech32::Encode (meshcollider) -- #16624 encapsulate transactions state (ariard) -- #16830 Cleanup walletinitinterface.h (hebasto) -- #16796 Fix segfault in CreateWalletFromFile (MarcoFalke) -- #16866 Rename 'decode' argument in gettransaction method to 'verbose' (jnewbery) -- #16727 Explicit feerate for bumpfee (instagibbs) -- #16609 descriptor: fix missed m_script_arg arg renaming in #14934 (fanquake) - -### RPC and other APIs -- #15492 remove deprecated generate method (Sjors) -- #15566 cli: Replace testnet with chain and return network name as per bip70 (fanquake) -- #15564 cli: Remove duplicate wallet fields from -getinfo (fanquake) -- #15642 Remove deprecated rpc warnings (jnewbery) -- #15637 Rename size to vsize in mempool related calls (fanquake) -- #15620 Uncouple non-wallet rpcs from maxTxFee global (MarcoFalke) -- #15616 Clarify decodescript RPCResult doc (MarcoFalke) -- #15669 Fix help text for signtransactionwithXXX (torkelrogstad) -- #15596 Ignore sendmany::minconf as dummy value (MarcoFalke) -- #15755 remove unused var in rawtransaction.cpp (Bushstar) -- #15746 RPCHelpMan: Always name dictionary keys (MarcoFalke) -- #15748 remove dead mining code (jnewbery) -- #15751 Speed up deriveaddresses for large ranges (sipa) -- #15770 Validate maxfeerate with AmountFromValue (promag) -- #15474 rest/rpc: Make mempoolinfo atomic (promag) -- #15463 Speedup getaddressesbylabel (promag) -- #15784 Remove dependency on interfaces::Chain in SignTransaction (ariard) -- #15323 Expose g_is_mempool_loaded via getmempoolinfo (Empact) -- #15932 Serialize in getblock without cs_main (MarcoFalke) -- #15930 Add balances RPC (MarcoFalke) -- #15730 Show scanning details in getwalletinfo (promag) -- #14802 faster getblockstats using BlockUndo data (FelixWeis) -- #14984 Speedup getrawmempool when verbose=true (promag) -- #16071 Hint for importmulti in help output of importpubkey and importaddress (kristapsk) -- #16063 Mention getwalletinfo where a rescan is triggered (promag) -- #16024 deriveaddresses: Correction of descriptor checksum in RPC example (ccapo) -- #16217 getrawtransaction: inform about blockhash argument when lookup fails (darosior) -- #15427 Add support for descriptors to utxoupdatepsbt (sipa) -- #16262 Allow shutdown while in generateblocks (pstratem) -- #15483 Adding a 'logpath' entry to getrpcinfo (darosior) -- #16325 Clarify that block count means height excl genesis (MarcoFalke) -- #16326 add new utxoupdatepsbt arguments to the CRPCCommand and CPRCCvertParam tables (jnewbery) -- #16332 Add logpath description for getrpcinfo (instagibbs) -- #16240 JSONRPCRequest-aware RPCHelpMan (kallewoof) -- #15996 Deprecate totalfee argument in `bumpfee` (instagibbs) -- #16467 sendrawtransaction help privacy note (jonatack) -- #16596 Fix getblocktemplate CLI example (emilengler) -- #15986 Add checksum to getdescriptorinfo (sipa) -- #16647 add weight to getmempoolentry output (fanquake) -- #16695 Add window final block height to getchaintxstats (leto) -- #16798 Refactor rawtransaction_util's SignTransaction to separate prevtx parsing (achow101) -- #16285 Improve scantxoutset response and help message (promag) -- #16725 Don't show addresses or P2PK in decoderawtransaction (NicolasDorier) -- #16787 Human readable network services (darosior) -- #16251 Improve signrawtransaction error reporting (ajtowns) -- #16873 fix regression in gettransaction (jonatack) -- #16512 Shuffle inputs and outputs after joining psbts (achow101) -- #16521 Use the default maxfeerate value as BTC/kB (Remagpie) -- #16817 Fix casing in getblockchaininfo to be inline with other fields (dangershony) -- #17131 fix -rpcclienttimeout 0 option (fjahr) -- #17249 Add missing deque include to fix build (jbeich) - -### GUI -- #15464 Drop unused return values in WalletFrame (promag) -- #15614 Defer removeAndDeleteWallet when no modal widget is active (promag) -- #15711 Generate bech32 addresses by default (MarcoFalke) -- #15829 update request payment button text and tab description (fanquake) -- #15874 Resolve the qt/guiutil <-> qt/optionsmodel CD (251Labs) -- #15371 Uppercase bech32 addresses in qr codes (benthecarman) -- #15928 Move QRImageWidget to its own file-pair (luke-jr) -- #16113 move coin control "OK" to the right hand side of the dialog (fanquake) -- #16090 Add vertical spacer to peer detail widget (JosuGZ) -- #15886 qt, wallet: Revamp SendConfirmationDialog (hebasto) -- #16263 Use qInfo() if no error occurs (hebasto) -- #16153 Add antialiasing to traffic graph widget (JosuGZ) -- #16350 Remove unused guard (hebasto) -- #16106 Sort wallets in open wallet menu (promag) -- #16291 Stop translating PACKAGE_NAME (MarcoFalke) -- #16380 Remove unused bits from the service flags enum (MarcoFalke) -- #16379 Fix autostart filenames on Linux for testnet/regtest (hebasto) -- #16366 init: Use InitError for all errors in bitcoind/qt (MarcoFalke) -- #16436 Do not create payment server if -disablewallet option provided (hebasto) -- #16514 Remove unused RPCConsole::tabFocus (promag) -- #16497 Generate bech32 addresses by default (take 2, fixup) (MarcoFalke) -- #16349 Remove redundant WalletController::addWallet slot (hebasto) -- #16578 Do not pass in command line arguments to QApplication (achow101) -- #16612 Remove menu icons (laanwj) -- #16677 remove unused PlatformStyle::TextColorIcon (fanquake) -- #16694 Ensure transaction send error is always visible (fanquake) -- #14879 Add warning messages to the debug window (hebasto) -- #16708 Replace obsolete functions of QSslSocket (hebasto) -- #16701 Replace functions deprecated in Qt 5.13 (hebasto) -- #16706 Replace deprecated QSignalMapper by lambda expressions (hebasto) -- #16707 Remove obsolete QModelIndex::child() (hebasto) -- #16758 Replace QFontMetrics::width() with TextWidth() (hebasto) -- #16760 Change uninstall icon on Windows (GChuf) -- #16720 Replace objc_msgSend() function calls with the native Objective-C syntax (hebasto) -- #16788 Update transifex slug for 0.19 (laanwj) -- #15450 Create wallet menu option (achow101) -- #16735 Remove unused menu items for Windows and Linux (GChuf) -- #16826 Do additional character escaping for wallet names and address labels (achow101) -- #15529 Add Qt programs to msvc build (updated, no code changes) (sipsorcery) -- #16714 add prune to intro screen with smart default (Sjors) -- #16858 advise users not to switch wallets when opening a BIP70 URI (jameshilliard) -- #16822 Create wallet menu option follow-ups (jonatack) -- #16882 Re-generate translations before 0.19.0 (MarcoFalke) -- #16928 Rename address checkbox back to bech32 (MarcoFalke) -- #16837 Fix {C{,XX},LD}FLAGS pickup (dongcarl) -- #16971 Change default size of intro frame (emilengler) -- #16988 Periodic translations update (laanwj) -- #16852 When BIP70 is disabled, get PaymentRequest merchant using string search (achow101) -- #16952 make sure to update the UI when deleting a transaction (jonasschnelli) -- #17031 Prevent processing duplicate payment requests (promag) -- #17135 Make polling in ClientModel asynchronous (promag) -- #17120 Fix start timer from non QThread (promag) -- #17257 disable font antialiasing for QR image address (fanquake) - -### Build system -- #14954 Require python 3.5 (MarcoFalke) -- #15580 native_protobuf: avoid system zlib (dongcarl) -- #15601 Switch to python3 (take 3) (MarcoFalke) -- #15581 Make less assumptions about build env (dongcarl) -- #14853 latest RapidCheck (fanquake) -- #15446 Improve depends debuggability (dongcarl) -- #13788 Fix --disable-asm for newer assembly checks/code (luke-jr) -- #12051 add missing debian contrib file to tarball (puchu) -- #15919 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift) -- #15978 .gitignore: Don't ignore depends patches (dongcarl) -- #15939 gitian: Remove windows 32 bit build (MarcoFalke) -- #15239 scripts and tools: Move non-linux build source tarballs to "bitcoin-binaries/version" directory (hebasto) -- #14047 Add HKDF_HMAC256_L32 and method to negate a private key (jonasschnelli) -- #16051 add patch to common dependencies (fanquake) -- #16049 switch to secure download of all dependencies (Kemu) -- #16059 configure: Fix thread_local detection (dongcarl) -- #16089 add ability to skip building zeromq (fanquake) -- #15844 Purge libtool archives (dongcarl) -- #15461 update to Boost 1.70 (Sjors) -- #16141 remove GZIP export from gitian descriptors (fanquake) -- #16235 Cleaned up and consolidated msbuild files (no code changes) (sipsorcery) -- #16246 MSVC: Fix error in debug mode (Fix #16245) (NicolasDorier) -- #16183 xtrans: Configure flags cleanup (dongcarl) -- #16258 [MSVC]: Create the config.ini as part of bitcoind build (NicolasDorier) -- #16271 remove -Wall from rapidcheck build flags (fanquake) -- #16309 [MSVC] allow user level project customization (NicolasDorier) -- #16308 [MSVC] Copy build output to src/ automatically after build (NicolasDorier) -- #15457 Check std::system for -[alert|block|wallet]notify (Sjors) -- #16344 use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors) -- #16352 prune dbus from depends (fanquake) -- #16270 expat 2.2.7 (fanquake) -- #16408 Prune X packages (dongcarl) -- #16386 disable unused Qt features (fanquake) -- #16424 Treat -Wswitch as error when --enable-werror (MarcoFalke) -- #16441 remove qt libjpeg check from bitcoin_qt.m4 (fanquake) -- #16434 Specify AM_CPPFLAGS for ZMQ (domob1812) -- #16534 add Qt Creator Makefile.am.user to .gitignore (Bushstar) -- #16573 disable building libsecp256k1 benchmarks (fanquake) -- #16533 disable libxcb extensions (fanquake) -- #16589 Remove unused src/obj-test folder (MarcoFalke) -- #16435 autoconf: Sane `--enable-debug` defaults (dongcarl) -- #16622 echo property tests status during build (jonatack) -- #16611 Remove src/obj directory from repository (laanwj) -- #16371 ignore macOS make deploy artefacts & add them to clean-local (fanquake) -- #16654 build: update RapidCheck Makefile (jonatack) -- #16370 cleanup package configure flags (fanquake) -- #16746 msbuild: Ignore linker warning (sipsorcery) -- #16750 msbuild: adds bench_bitcoin to auto generated project files (sipsorcery) -- #16810 guix: Remove ssp spec file hack (dongcarl) -- #16477 skip deploying plugins we dont use in macdeployqtplus (fanquake) -- #16413 Bump QT to LTS release 5.9.8 (THETCR) -- #15584 disable BIP70 support by default (fanquake) -- #16871 make building protobuf optional in depends (fanquake) -- #16879 remove redundant sed patching (fanquake) -- #16809 zlib: Move toolchain options to configure (dongcarl) -- #15146 Solve SmartOS FD_ZERO build issue (Empact) -- #16870 update boost macros to latest upstream for improved error reporting (fanquake) -- #16982 Factor out qt translations from build system (laanwj) -- #16926 Add OpenSSL termios fix for musl libc (nmarley) -- #16927 Refresh ZeroMQ 4.3.1 patch (nmarley) -- #17005 Qt version appears only if GUI is being built (ch4ot1c) -- #16468 Exclude depends/Makefile in .gitignore (promag) - -### Tests and QA -- #15296 Add script checking for deterministic line coverage in unit tests (practicalswift) -- #15338 ci: Build and run tests once on freebsd (MarcoFalke) -- #15479 Add .style.yapf (MarcoFalke) -- #15534 lint-format-strings: open files sequentially (fix for OS X) (gwillen) -- #15504 fuzz: Link BasicTestingSetup (shared with unit tests) (MarcoFalke) -- #15473 bench: Benchmark mempooltojson (MarcoFalke) -- #15466 Print remaining jobs in test_runner.py (stevenroose) -- #15631 mininode: Clearer error message on invalid magic bytes (MarcoFalke) -- #15255 Remove travis_wait from lint script (gkrizek) -- #15686 make pruning test faster (jnewbery) -- #15533 .style.yapf: Set column_limit=160 (MarcoFalke) -- #15660 Overhaul p2p_compactblocks.py (sdaftuar) -- #15495 Add regtests for HTTP status codes (domob1812) -- #15772 Properly log named args in authproxy (MarcoFalke) -- #15771 Prevent concurrency issues reading .cookie file (promag) -- #15693 travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke) -- #15629 init: Throw error when network specific config is ignored (MarcoFalke) -- #15773 Add BitcoinTestFramework::sync_* methods (MarcoFalke) -- #15797 travis: Bump second timeout to 33 minutes, add rationale (MarcoFalke) -- #15788 Unify testing setups for fuzz, bench, and unit tests (MarcoFalke) -- #15352 Reduce noise level in test_bitcoin output (practicalswift) -- #15779 Add wallet_balance benchmark (MarcoFalke) -- #15843 fix outdated include in blockfilter_index_tests (jamesob) -- #15866 Add missing syncwithvalidationinterfacequeue to wallet_import_rescan (MarcoFalke) -- #15697 Make swap_magic_bytes in p2p_invalid_messages atomic (MarcoFalke) -- #15895 Avoid re-reading config.ini unnecessarily (luke-jr) -- #15896 feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME in messages rather than hardcoding Bitcoin Core (luke-jr) -- #15897 QA/mininode: Send all headers upfront in send_blocks_and_test to avoid sending an unconnected one (luke-jr) -- #15696 test_runner: Move feature_pruning to base tests (MarcoFalke) -- #15869 Add settings merge test to prevent regresssions (ryanofsky) -- #15758 Add further tests to wallet_balance (MarcoFalke) -- #15841 combine_logs: append node stderr and stdout if it exists (MarcoFalke) -- #15949 test_runner: Move pruning back to extended (MarcoFalke) -- #15927 log thread names by default in functional tests (jnewbery) -- #15664 change default Python block serialization to witness (instagibbs) -- #15988 Add test for ArgsManager::GetChainName (ryanofsky) -- #15963 Make random seed logged and settable (jnewbery) -- #15943 Fail if RPC has been added without tests (MarcoFalke) -- #16036 travis: Run all lint scripts even if one fails (scravy) -- #13555 parameterize adjustment period in versionbits_computeblockversion (JBaczuk) -- #16079 wallet_balance.py: Prevent edge cases (stevenroose) -- #16078 replace tx hash with txid in rawtransaction test (LongShao007) -- #16042 Bump MAX_NODES to 12 (MarcoFalke) -- #16124 Limit Python linting to files in the repo (practicalswift) -- #16143 Mark unit test blockfilter_index_initial_sync as non-deterministic (practicalswift) -- #16214 travis: Fix caching issues (MarcoFalke) -- #15982 Make msg_block a witness block (MarcoFalke) -- #16225 Make coins_tests/updatecoins_simulation_test deterministic (practicalswift) -- #16236 fuzz: Log output even if fuzzer failed (MarcoFalke) -- #15520 cirrus: Run extended test feature_pruning (MarcoFalke) -- #16234 Add test for unknown args (MarcoFalke) -- #16207 stop generating lcov coverage when functional tests fail (asood123) -- #16252 Log to debug.log in all unit tests (MarcoFalke) -- #16289 Add missing ECC_Stop() in GUI rpcnestedtests.cpp (jonasschnelli) -- #16278 Remove unused includes (practicalswift) -- #16302 Add missing syncwithvalidationinterfacequeue to wallet_balance test (MarcoFalke) -- #15538 wallet_bumpfee.py: Make sure coin selection produces change (instagibbs) -- #16294 Create at most one testing setup (MarcoFalke) -- #16299 bench: Move generated data to a dedicated translation unit (promag) -- #16329 Add tests for getblockchaininfo.softforks (MarcoFalke) -- #15687 tool wallet test coverage for unexpected writes to wallet (jonatack) -- #16267 bench: Benchmark blocktojson (fanatid) -- #14505 Add linter to make sure single parameter constructors are marked explicit (practicalswift) -- #16338 Disable other targets when enable-fuzz is set (qmma70) -- #16334 rpc_users: Also test rpcauth.py with password (dongcarl) -- #15282 Replace hard-coded hex tx with class in test framework (stevenroose) -- #16390 Add --filter option to test_runner.py (promag) -- #15891 Require standard txs in regtest by default (MarcoFalke) -- #16374 Enable passing wildcard test names to test runner from root (jonatack) -- #16420 Fix race condition in wallet_encryption test (jonasschnelli) -- #16422 remove redundant setup in addrman_tests (zenosage) -- #16438 travis: Print memory and number of cpus (MarcoFalke) -- #16445 Skip flaky p2p_invalid_messages test on macOS (fjahr) -- #16459 Fix race condition in example_test.py (sdaftuar) -- #16464 Ensure we don't generate a too-big block in p2sh sigops test (sdaftuar) -- #16491 fix deprecated log.warn in feature_dbcrash test (jonatack) -- #15134 Switch one of the Travis jobs to an unsigned char environment (-funsigned-char) (practicalswift) -- #16505 Changes verbosity of msbuild from quiet to normal in the appveyor script (sipsorcery) -- #16293 Make test cases separate functions (MarcoFalke) -- #16470 Fail early on disconnect in mininode.wait_for_* (MarcoFalke) -- #16277 Suppress output in test_bitcoin for expected errors (gertjaap) -- #16493 Fix test failures (MarcoFalke) -- #16538 Add missing sync_blocks to feature_pruning (MarcoFalke) -- #16509 Adapt test framework for chains other than "regtest" (MarcoFalke) -- #16363 Add test for BIP30 duplicate tx (MarcoFalke) -- #16535 Explain why -whitelist is used in feature_fee_estimation (MarcoFalke) -- #16554 only include and use OpenSSL where it's actually needed (BIP70) (fanquake) -- #16598 Remove confusing hash256 function in util (elichai) -- #16595 travis: Use extended 90 minute timeout when available (MarcoFalke) -- #16563 Add unit test for AddTimeData (mzumsande) -- #16561 Use colors and dots in test_runner.py output only if standard output is a terminal (practicalswift) -- #16465 Test p2sh-witness and bech32 in wallet_import_rescan (MarcoFalke) -- #16582 Rework ci (Use travis only as fallback env) (MarcoFalke) -- #16633 travis: Fix test_runner.py timeouts (MarcoFalke) -- #16646 Run tests with UPnP disabled (fanquake) -- #16623 ci: Add environment files for all settings (MarcoFalke) -- #16656 fix rpc_setban.py race (jonasschnelli) -- #16570 Make descriptor tests deterministic (davereikher) -- #16404 Test ZMQ notification after chain reorg (promag) -- #16726 Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values (practicalswift) -- #16739 ci: Pass down $makejobs to test_runner.py, other improvements (MarcoFalke) -- #16767 Check for codespell in lint-spelling.sh (kristapsk) -- #16768 Make lint-includes.sh work from any directory (kristapsk) -- #15257 Scripts and tools: Bump flake8 to 3.7.8 (Empact) -- #16804 Remove unused try-block in assert_debug_log (MarcoFalke) -- #16850 `servicesnames` field in `getpeerinfo` and `getnetworkinfo` (darosior) -- #16551 Test that low difficulty chain fork is rejected (MarcoFalke) -- #16737 Establish only one connection between nodes in rpc_invalidateblock (MarcoFalke) -- #16845 Add notes on how to generate data/wallets/high_minversion (MarcoFalke) -- #16888 Bump timeouts in slow running tests (MarcoFalke) -- #16864 Add python bech32 impl round-trip test (instagibbs) -- #16865 add some unit tests for merkle.cpp (soroosh-sdi) -- #14696 Add explicit references to related CVE's in p2p_invalid_block test (lucash-dev) -- #16907 lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke) -- #16898 Remove connect_nodes_bi (MarcoFalke) -- #16917 Move common function assert_approx() into util.py (fridokus) -- #16921 Add information on how to add Vulture suppressions (practicalswift) -- #16920 Fix extra_args in wallet_import_rescan.py (MarcoFalke) -- #16918 Make PORT_MIN in test runner configurable (MarcoFalke) -- #16941 travis: Disable feature_block in tsan run due to oom (MarcoFalke) -- #16929 follow-up to rpc: default maxfeerate value as BTC/kB (jonatack) -- #16959 ci: Set $host before setting fallback values (MarcoFalke) -- #16961 Remove python dead code linter (laanwj) -- #16931 add unittests for CheckProofOfWork (soroosh-sdi) -- #16991 Fix service flag comparison check in rpc_net test (luke-jr) (laanwj) -- #16987 Correct docstring param name (jbampton) -- #17015 Explain QT_QPA_PLATFORM for gui tests (MarcoFalke) -- #17006 Enable UBSan for Travis fuzzing job (practicalswift) -- #17086 Fix fs_tests for unknown locales (carnhofdaki) -- #15903 appveyor: Write @PACKAGE_NAME@ to config (MarcoFalke) -- #16742 test: add executable flag for wallet_watchonly.py (theStack) -- #16740 qa: Relax so that the subscriber is ready before publishing zmq messages (#16740) - -### Miscellaneous -- #15335 Fix lack of warning of unrecognized section names (AkioNak) -- #15528 contrib: Bump gitian descriptors for 0.19 (MarcoFalke) -- #15609 scripts and tools: Set 'distro' explicitly (hebasto) -- #15519 Add Poly1305 implementation (jonasschnelli) -- #15643 contrib: Gh-merge: include acks in merge commit (MarcoFalke) -- #15838 scripts and tools: Fetch missing review comments in github-merge.py (nkostoulas) -- #15920 lint: Check that all wallet args are hidden (MarcoFalke) -- #15849 Thread names in logs and deadlock debug tools (jamesob) -- #15650 Handle the result of posix_fallocate system call (lucayepa) -- #15766 scripts and tools: Upgrade gitian image before signing (hebasto) -- #15512 Add ChaCha20 encryption option (XOR) (jonasschnelli) -- #15968 Fix portability issue with pthreads (grim-trigger) -- #15970 Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL (orientye) -- #15863 scripts and tools: Ensure repos are up-to-date in gitian-build.py (hebasto) -- #15224 Add RNG strengthening (10ms once every minute) (sipa) -- #15840 Contrib scripts: Filter IPv6 by ASN (abitfan) -- #13998 Scripts and tools: gitian-build.py improvements and corrections (hebasto) -- #15236 scripts and tools: Make --setup command independent (hebasto) -- #16114 contrib: Add curl as a required program in gitian-build.py (fanquake) -- #16046 util: Add type safe gettime (MarcoFalke) -- #15703 Update secp256k1 subtree to latest upstream (sipa) -- #16086 contrib: Use newer config.guess & config.sub in install_db4.sh (fanquake) -- #16130 Don't GPG sign intermediate commits with github-merge tool (stevenroose) -- #16162 scripts: Add key for michael ford (fanquake) to trusted keys list (fanquake) -- #16201 devtools: Always use unabbreviated commit IDs in github-merge.py (laanwj) -- #16112 util: Log early messages (MarcoFalke) -- #16223 devtools: Fetch and display ACKs at sign-off time in github-merge (laanwj) -- #16300 util: Explain why the path is cached (MarcoFalke) -- #16314 scripts and tools: Update copyright_header.py script (hebasto) -- #16158 Fix logic of memory_cleanse() on MSVC and clean up docs (real-or-random) -- #14734 fix an undefined behavior in uint::SetHex (kazcw) -- #16327 scripts and tools: Update ShellCheck linter (hebasto) -- #15277 contrib: Enable building in guix containers (dongcarl) -- #16362 Add bilingual_str type (hebasto) -- #16481 logs: add missing space (harding) -- #16581 sipsorcery gitian key (sipsorcery) -- #16566 util: Refactor upper/lowercase functions (kallewoof) -- #16620 util: Move resolveerrmsg to util/error (MarcoFalke) -- #16625 scripts: Remove github-merge.py (fanquake) -- #15864 Fix datadir handling (hebasto) -- #16670 util: Add join helper to join a list of strings (MarcoFalke) -- #16665 scripts: Move update-translations.py to maintainer-tools repo (fanquake) -- #16730 Support serialization of `std::vector` (sipa) -- #16556 Fix systemd service file configuration directory setup (setpill) -- #15615 Add log output during initial header sync (jonasschnelli) -- #16774 Avoid unnecessary "Synchronizing blockheaders" log messages (jonasschnelli) -- #16489 log: harmonize bitcoind logging (jonatack) -- #16577 util: Cbufferedfile fixes and unit test (LarryRuane) -- #16984 util: Make thread names shorter (hebasto) -- #17038 Don't rename main thread at process level (laanwj) -- #17184 util: Filter out macos process serial number (hebasto) -- #17095 util: Filter control characters out of log messages (laanwj) -- #17085 init: Change fallback locale to C.UTF-8 (laanwj) -- #16957 9% less memory: make SaltedOutpointHasher noexcept (martinus) - -### Documentation -- #15514 Update Transifex links (fanquake) -- #15513 add "sections" info to example bitcoin.conf (fanquake) -- #15530 Move wallet lock annotations to header (MarcoFalke) -- #15562 remove duplicate clone step in build-windows.md (fanquake) -- #15565 remove release note fragments (fanquake) -- #15444 Additional productivity tips (Sjors) -- #15577 Enable TLS in link to chris.beams.io (JeremyRand) -- #15604 release note for disabling reject messages by default (jnewbery) -- #15611 Add Gitian key for droark (droark) -- #15626 Update ACK description in CONTRIBUTING.md (jonatack) -- #15603 Add more tips to productivity.md (gwillen) -- #15683 Comment for seemingly duplicate LIBBITCOIN_SERVER (Bushstar) -- #15685 rpc-mining: Clarify error messages (MarcoFalke) -- #15760 Clarify sendrawtransaction::maxfeerate==0 help (MarcoFalke) -- #15659 fix findFork comment (r8921039) -- #15718 Improve netaddress comments (dongcarl) -- #15833 remove out-of-date comment on pay-to-witness support (r8921039) -- #15821 Remove upgrade note in release notes from EOL versions (MarcoFalke) -- #15267 explain AcceptToMemoryPoolWorker's coins_to_uncache (jamesob) -- #15887 Align code example style with clang-format (hebasto) -- #15877 Fix -dustrelayfee= argument docs grammar (keepkeyjon) -- #15908 Align MSVC build options with Linux build ones (hebasto) -- #15941 Add historical release notes for 0.18.0 (laanwj) -- #15794 Clarify PR guidelines w/re documentation (dongcarl) -- #15607 Release process updates (jonatack) -- #14364 Clarify -blocksdir usage (sangaman) -- #15777 Add doxygen comments for keypool classes (jnewbery) -- #15820 Add productivity notes for dummy rebases (dongcarl) -- #15922 Explain how to pass in non-fundamental types into functions (MarcoFalke) -- #16080 build/doc: update bitcoin_config.h packages, release process (jonatack) -- #16047 analyzepsbt description in doc/psbt.md (jonatack) -- #16039 add release note for 14954 (fanquake) -- #16139 Add riscv64 to outputs list in release-process.md (JeremyRand) -- #16140 create security policy (narula) -- #16164 update release process for SECURITY.md (jonatack) -- #16213 Remove explicit mention of versions from SECURITY.md (MarcoFalke) -- #16186 doc/lint: Fix spelling errors identified by codespell 1.15.0 (Empact) -- #16149 Rework section on ACK in CONTRIBUTING.md (MarcoFalke) -- #16196 Add release notes for 14897 & 15834 (MarcoFalke) -- #16241 add rapidcheck to vcpkg install list (fanquake) -- #16243 Remove travis badge from readme (MarcoFalke) -- #16256 remove orphaned header in developer notes (jonatack) -- #15964 Improve build-osx document formatting (giulio92) -- #16313 Fix broken link in doc/build-osx.md (jonatack) -- #16330 Use placeholder instead of key expiration date (hebasto) -- #16339 add reduce-memory.md (fanquake) -- #16347 Include static members in Doxygen (dongcarl) -- #15824 Improve netbase comments (dongcarl) -- #16430 Update bips 35, 37 and 111 status (MarcoFalke) -- #16455 Remove downgrading warning in release notes, per 0.18 branch (MarcoFalke) -- #16484 update labels in CONTRIBUTING.md (MarcoFalke) -- #16483 update Python command in msvc readme (sipsorcery) -- #16504 Add release note for the deprecated totalFee option of bumpfee (promag) -- #16448 add note on precedence of options in bitcoin.conf (fanquake) -- #16536 Update and extend benchmarking.md (ariard) -- #16530 Fix grammar and punctuation in developer notes (Tech1k) -- #16574 Add historical release notes for 0.18.1 (laanwj) -- #16585 Update Markdown syntax for bdb packages (emilengler) -- #16586 Mention other ways to conserve memory on compilation (MarcoFalke) -- #16605 Add missing contributor to 0.18.1 release notes (meshcollider) -- #16615 Fix typos in COPYRIGHT (gapeman) -- #16626 Fix spelling error chache -> cache (nilswloewen) -- #16587 Improve versionbits.h documentation (ariard) -- #16643 Add ZMQ dependencies to the Fedora build instructions (hebasto) -- #16634 Refer in rpcbind doc to the manpage (MarcoFalke) -- #16555 mention whitelist is inbound, and applies to blocksonly (Sjors) -- #16645 initial RapidCheck property-based testing documentation (jonatack) -- #16691 improve depends prefix documentation (fanquake) -- #16629 Add documentation for the new whitelist permissions (NicolasDorier) -- #16723 Update labels in CONTRIBUTING.md (hebasto) -- #16461 Tidy up shadowing section (promag) -- #16621 add default bitcoin.conf locations (GChuf) -- #16752 Delete stale URL in test README (michaelfolkson) -- #14862 Declare BLOCK_VALID_HEADER reserved (MarcoFalke) -- #16806 Add issue templates for bug and feature request (MarcoFalke) -- #16857 Elaborate need to re-login on Debian-based after usermod for Tor group (clashicly) -- #16863 Add a missing closing parenthesis in the bitcoin-wallet's help (darosior) -- #16757 CChainState return values (MarcoFalke) -- #16847 add comments clarifying how local services are advertised (jamesob) -- #16812 Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in (ch4ot1c) -- #16885 Update tx-size-small comment with relevant CVE disclosure (instagibbs) -- #16900 Fix doxygen comment for SignTransaction in rpc/rawtransaction_util (MarcoFalke) -- #16914 Update homebrew instruction for doxygen (Sjors) -- #16912 Remove Doxygen intro from src/bitcoind.cpp (ch4ot1c) -- #16960 replace outdated OpenSSL comment in test README (fanquake) -- #16968 Remove MSVC update step from translation process (laanwj) -- #16953 Improve test READMEs (fjahr) -- #16962 Put PR template in comments (laanwj) -- #16397 Clarify includeWatching for fundrawtransaction (stevenroose) -- #15459 add how to calculate blockchain and chainstate size variables to release process (marcoagner) -- #16997 Update bips.md for 0.19 (laanwj) -- #17001 Remove mention of renamed mapBlocksUnlinked (MarcoFalke) -- #17014 Consolidate release notes before 0.19.0 (move-only) (MarcoFalke) -- #17111 update bips.md with buried BIP9 deployments (MarcoFalke) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 251 -- Aaron Clauson -- Akio Nakamura -- Alistair Mann -- Amiti Uttarwar -- Andrew Chow -- andrewtoth -- Anthony Towns -- Antoine Riard -- Aseem Sood -- Ben Carman -- Ben Woosley -- bpay -- Carl Dong -- Carnhof Daki -- Chris Capobianco -- Chris Moore -- Chuf -- clashic -- clashicly -- Cory Fields -- Daki Carnhof -- Dan Gershony -- Daniel Edgecumbe -- Daniel Kraft -- Daniel McNally -- darosior -- David A. Harding -- David Reikher -- Douglas Roark -- Elichai Turkel -- Emil -- Emil Engler -- ezegom -- Fabian Jahr -- fanquake -- Felix Weis -- Ferdinando M. Ametrano -- fridokus -- gapeman -- GChuf -- Gert-Jaap Glasbergen -- Giulio Lombardo -- Glenn Willen -- Graham Krizek -- Gregory Sanders -- grim-trigger -- gwillen -- Hennadii Stepanov -- Jack Mallers -- James Hilliard -- James O'Beirne -- Jan Beich -- Jeremy Rubin -- JeremyRand -- Jim Posen -- John Bampton -- John Newbery -- Jon Atack -- Jon Layton -- Jonas Schnelli -- Jonathan "Duke" Leto -- João Barbosa -- Joonmo Yang -- Jordan Baczuk -- Jorge Timón -- Josu Goñi -- Julian Fleischer -- Karl-Johan Alm -- Kaz Wesley -- keepkeyjon -- Kirill Fomichev -- Kristaps Kaupe -- Kristian Kramer -- Larry Ruane -- Lenny Maiorani -- LongShao007 -- Luca Venturini -- lucash-dev -- Luke Dashjr -- marcoagner -- MarcoFalke -- marcuswin -- Martin Ankerl -- Martin Zumsande -- Matt Corallo -- MeshCollider -- Michael Folkson -- Miguel Herranz -- Nathan Marley -- Neha Narula -- nicolas.dorier -- Nils Loewen -- nkostoulas -- orient -- Patrick Strateman -- Peter Bushnell -- Peter Wagner -- Pieter Wuille -- practicalswift -- qmma -- r8921039 -- RJ Rybarczyk -- Russell Yanofsky -- Samuel Dobson -- Sebastian Falbesoner -- setpill -- shannon1916 -- Sjors Provoost -- soroosh-sdi -- Steven Roose -- Suhas Daftuar -- tecnovert -- THETCR -- Tim Ruffing -- Tobias Kaderle -- Torkel Rogstad -- Ulrich Kempken -- whythat -- William Casarin -- Wladimir J. van der Laan -- zenosage +Due to a last-minute issue (#17449), 0.19.0, although it was tagged, was never released. -As well as everyone that helped translating on [Transifex](https://www.transifex.com/bitcoin/bitcoin/). +See the release notes for 0.19.0.1 instead. From 2aba76ce02dd86df1b7714ff839588b7b2657c0a Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Sun, 10 Nov 2019 12:03:53 +0200 Subject: [PATCH 031/388] qt: Fix missing qRegisterMetaType for size_t It is required in order to use size_t in QueuedConnections. Github-Pull: #17427 Rebased-From: 88a94f7bb8ba2b0257315d70717f9af928ca6561 Tree-SHA512: 55accd997209c559dfc8e88b0db189ba314ac31e265ba2f94fa2009f1aba6b96213e2aa8cbad492b1230078f2e6cf1cca7a233dc6f54e9bc449f4e5438330b4d --- src/qt/bitcoin.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 86f4dc91a1..7fda607d90 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -447,6 +447,7 @@ int GuiMain(int argc, char* argv[]) // Need to pass name here as CAmount is a typedef (see http://qt-project.org/doc/qt-5/qmetatype.html#qRegisterMetaType) // IMPORTANT if it is no longer a typedef use the normal variant above qRegisterMetaType< CAmount >("CAmount"); + qRegisterMetaType("size_t"); qRegisterMetaType< std::function >("std::function"); qRegisterMetaType("QMessageBox::Icon"); /// 2. Parse command-line options. We do this after qt in order to show an error if there are problems parsing these From a284bbbee805cd03664fd27656795a9f7d3eeca7 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Sun, 10 Nov 2019 12:10:36 +0200 Subject: [PATCH 032/388] refactor: Styling w/ clang-format, comment update Github-Pull: #17427 Rebased-From: 1828c6f05fcbed9ed432b042cc36eee0d80b113d Tree-SHA512: 140b723bd9c8d8823ecb84d7f774d213a9e9dac45fb0de82c43521cf8276d946feaa1b7c0b7d40f51dbab38c88c53b4680da1965b1e0ce7f858eb35b2c4537da --- src/qt/bitcoin.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 7fda607d90..812199cda0 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -439,17 +439,19 @@ int GuiMain(int argc, char* argv[]) BitcoinApplication app(*node); - // Register meta types used for QMetaObject::invokeMethod - qRegisterMetaType< bool* >(); + // Register meta types used for QMetaObject::invokeMethod and Qt::QueuedConnection + qRegisterMetaType(); #ifdef ENABLE_WALLET qRegisterMetaType(); #endif - // Need to pass name here as CAmount is a typedef (see http://qt-project.org/doc/qt-5/qmetatype.html#qRegisterMetaType) - // IMPORTANT if it is no longer a typedef use the normal variant above - qRegisterMetaType< CAmount >("CAmount"); + // Register typedefs (see http://qt-project.org/doc/qt-5/qmetatype.html#qRegisterMetaType) + // IMPORTANT: if CAmount is no longer a typedef use the normal variant above (see https://doc.qt.io/qt-5/qmetatype.html#qRegisterMetaType-1) + qRegisterMetaType("CAmount"); qRegisterMetaType("size_t"); - qRegisterMetaType< std::function >("std::function"); + + qRegisterMetaType>("std::function"); qRegisterMetaType("QMessageBox::Icon"); + /// 2. Parse command-line options. We do this after qt in order to show an error if there are problems parsing these // Command-line options take precedence: node->setupServerArgs(); From 551583398ba4fdae973c047bc60556ffa17c6431 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Tue, 19 Nov 2019 14:35:14 -0500 Subject: [PATCH 033/388] Have a PSBTAnalysis state that indicates invalid PSBT Invalid PSBTs need to be re-created, so the next role is the Creator (new PSBTRole). Additionally, we need to know what went wrong so an error field was added to PSBTAnalysis. A PSBTAnalysis indicating invalid will have empty everything, next will be set to PSBTRole::CREATOR, and an error message. Github-Pull: #17524 Rebased-From: 638e40cb6080800c7b0a7f4028f63326acbe4700 --- src/node/psbt.h | 11 +++++++++++ src/psbt.cpp | 1 + src/psbt.h | 1 + src/rpc/rawtransaction.cpp | 6 +++++- 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/node/psbt.h b/src/node/psbt.h index e04366a20f..7384dc415c 100644 --- a/src/node/psbt.h +++ b/src/node/psbt.h @@ -30,6 +30,17 @@ struct PSBTAnalysis { Optional fee; //!< Amount of fee being paid by the transaction std::vector inputs; //!< More information about the individual inputs of the transaction PSBTRole next; //!< Which of the BIP 174 roles needs to handle the transaction next + std::string error; //!< Error message + + void SetInvalid(std::string err_msg) + { + estimated_vsize = nullopt; + estimated_feerate = nullopt; + fee = nullopt; + inputs.clear(); + next = PSBTRole::CREATOR; + error = err_msg; + } }; /** diff --git a/src/psbt.cpp b/src/psbt.cpp index fe74002e82..20473429a4 100644 --- a/src/psbt.cpp +++ b/src/psbt.cpp @@ -349,6 +349,7 @@ TransactionError CombinePSBTs(PartiallySignedTransaction& out, const std::vector std::string PSBTRoleName(PSBTRole role) { switch (role) { + case PSBTRole::CREATOR: return "creator"; case PSBTRole::UPDATER: return "updater"; case PSBTRole::SIGNER: return "signer"; case PSBTRole::FINALIZER: return "finalizer"; diff --git a/src/psbt.h b/src/psbt.h index 6d77db0c6f..437b75d7cf 100644 --- a/src/psbt.h +++ b/src/psbt.h @@ -552,6 +552,7 @@ struct PartiallySignedTransaction }; enum class PSBTRole { + CREATOR, UPDATER, SIGNER, FINALIZER, diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index f548d356cf..2fd6b9709f 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -1671,6 +1671,7 @@ UniValue analyzepsbt(const JSONRPCRequest& request) " \"estimated_feerate\" : feerate (numeric, optional) Estimated feerate of the final signed transaction in " + CURRENCY_UNIT + "/kB. Shown only if all UTXO slots in the PSBT have been filled.\n" " \"fee\" : fee (numeric, optional) The transaction fee paid. Shown only if all UTXO slots in the PSBT have been filled.\n" " \"next\" : \"role\" (string) Role of the next person that this psbt needs to go to\n" + " \"error\" : \"error\" (string) Error message if there is one" "}\n" }, RPCExamples { @@ -1723,7 +1724,7 @@ UniValue analyzepsbt(const JSONRPCRequest& request) } inputs_result.push_back(input_univ); } - result.pushKV("inputs", inputs_result); + if (!inputs_result.empty()) result.pushKV("inputs", inputs_result); if (psbta.estimated_vsize != nullopt) { result.pushKV("estimated_vsize", (int)*psbta.estimated_vsize); @@ -1735,6 +1736,9 @@ UniValue analyzepsbt(const JSONRPCRequest& request) result.pushKV("fee", ValueFromAmount(*psbta.fee)); } result.pushKV("next", PSBTRoleName(psbta.next)); + if (!psbta.error.empty()) { + result.pushKV("error", psbta.error); + } return result; } From ca5f8deefd778195cb10a3419d3b5c0693abb958 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Tue, 19 Nov 2019 14:54:13 -0500 Subject: [PATCH 034/388] Mark PSBTs spending unspendable outputs as invalid in analysis Github-Pull: #17524 Rebased-From: 773d4572a4864ab7b6380858d07d9579ff6dd9a2 --- src/node/psbt.cpp | 6 ++++++ test/functional/rpc_psbt.py | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/src/node/psbt.cpp b/src/node/psbt.cpp index 12559c5a5f..9a30c3f083 100644 --- a/src/node/psbt.cpp +++ b/src/node/psbt.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include @@ -39,6 +40,11 @@ PSBTAnalysis AnalyzePSBT(PartiallySignedTransaction psbtx) calc_fee = false; } + if (!utxo.IsNull() && utxo.scriptPubKey.IsUnspendable()) { + result.SetInvalid(strprintf("PSBT is not valid. Input %u spends unspendable output", i)); + return result; + } + // Check if it is final if (!utxo.IsNull() && !PSBTInputSigned(input)) { input_analysis.is_final = false; diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py index 61572654e0..57333955b2 100755 --- a/test/functional/rpc_psbt.py +++ b/test/functional/rpc_psbt.py @@ -416,5 +416,10 @@ def test_psbt_input_keys(psbt_input, keys): analyzed = self.nodes[0].analyzepsbt(signed) assert analyzed['inputs'][0]['has_utxo'] and analyzed['inputs'][0]['is_final'] and analyzed['next'] == 'extractor' + self.log.info("PSBT spending unspendable outputs should have error message and Creator as next") + analysis = self.nodes[0].analyzepsbt('cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWAEHYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFv8/wADXYP/7//////8JxOh0LR2HAI8AAAAAAAEBIADC6wsAAAAAF2oUt/X69ELjeX2nTof+fZ10l+OyAokDAQcJAwEHEAABAACAAAEBIADC6wsAAAAAF2oUt/X69ELjeX2nTof+fZ10l+OyAokDAQcJAwEHENkMak8AAAAA') + assert_equal(analysis['next'], 'creator') + assert_equal(analysis['error'], 'PSBT is not valid. Input 0 spends unspendable output') + if __name__ == '__main__': PSBTTest().main() From b9f1bc0fc17a3a457b2c1fcd47dd0b676b893558 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Mon, 2 Dec 2019 19:55:10 +0000 Subject: [PATCH 035/388] wallet: unbreak with boost 1.72 wallet/walletutil.cpp:77:23: error: no member named 'level' in 'boost::filesystem::recursive_directory_iterator' } else if (it.level() == 0 && it->symlink_status().type() == fs::regular_file && IsBerkeleyBtree(it... ~~ ^ Github-Pull: #17654 Rebased-From: a64e97dd476bda7c7981979d045b0d06d6f7ce47 --- src/fs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/fs.h b/src/fs.h index c713297d6e..8af81f173b 100644 --- a/src/fs.h +++ b/src/fs.h @@ -11,7 +11,6 @@ #include #endif -#define BOOST_FILESYSTEM_NO_DEPRECATED #include #include From d14ab7c522d7b6912af0c7eee006822ff535f9df Mon Sep 17 00:00:00 2001 From: fanquake Date: Sat, 7 Dec 2019 15:32:05 -0500 Subject: [PATCH 036/388] gui: disable File->CreateWallet during startup Github-Pull: #17695 Rebased-From: d65fafc2f7d98ab2be0a0961e7a3ebe7850c1dca --- src/qt/bitcoingui.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 7671fde705..e269c91d1c 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -341,6 +341,7 @@ void BitcoinGUI::createActions() m_close_wallet_action->setStatusTip(tr("Close wallet")); m_create_wallet_action = new QAction(tr("Create Wallet..."), this); + m_create_wallet_action->setEnabled(false); m_create_wallet_action->setStatusTip(tr("Create a new wallet")); showHelpMessageAction = new QAction(tr("&Command-line options"), this); @@ -617,6 +618,7 @@ void BitcoinGUI::setWalletController(WalletController* wallet_controller) m_wallet_controller = wallet_controller; + m_create_wallet_action->setEnabled(true); m_open_wallet_action->setEnabled(true); m_open_wallet_action->setMenu(m_open_wallet_menu); From bda2f5b3c9aa4d87e33f7af13f7a1ae5b6b4fa11 Mon Sep 17 00:00:00 2001 From: Harris Date: Fri, 6 Dec 2019 21:47:55 +0100 Subject: [PATCH 037/388] cli: fix Fatal LevelDB error when specifying -blockfilterindex=basic twice Github-Pull: #17687 Rebased-From: 034561f9cd4180ea1c165cb02df6c84444a8d692 --- src/blockfilter.cpp | 8 ++++---- src/blockfilter.h | 3 ++- src/init.cpp | 6 +++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/blockfilter.cpp b/src/blockfilter.cpp index 787390be31..5ad22d46eb 100644 --- a/src/blockfilter.cpp +++ b/src/blockfilter.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -221,15 +222,14 @@ bool BlockFilterTypeByName(const std::string& name, BlockFilterType& filter_type return false; } -const std::vector& AllBlockFilterTypes() +const std::set& AllBlockFilterTypes() { - static std::vector types; + static std::set types; static std::once_flag flag; std::call_once(flag, []() { - types.reserve(g_filter_types.size()); for (auto entry : g_filter_types) { - types.push_back(entry.first); + types.insert(entry.first); } }); diff --git a/src/blockfilter.h b/src/blockfilter.h index 914b94fec1..828204b875 100644 --- a/src/blockfilter.h +++ b/src/blockfilter.h @@ -7,6 +7,7 @@ #include #include +#include #include #include @@ -97,7 +98,7 @@ const std::string& BlockFilterTypeName(BlockFilterType filter_type); bool BlockFilterTypeByName(const std::string& name, BlockFilterType& filter_type); /** Get a list of known filter types. */ -const std::vector& AllBlockFilterTypes(); +const std::set& AllBlockFilterTypes(); /** Get a comma-separated list of known filter type names. */ const std::string& ListBlockFilterTypes(); diff --git a/src/init.cpp b/src/init.cpp index 8c0d599435..543194c2e3 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -57,6 +57,7 @@ #include #include +#include #ifndef WIN32 #include @@ -865,7 +866,7 @@ int nUserMaxConnections; int nFD; ServiceFlags nLocalServices = ServiceFlags(NODE_NETWORK | NODE_NETWORK_LIMITED); int64_t peer_connect_timeout; -std::vector g_enabled_filter_types; +std::set g_enabled_filter_types; } // namespace @@ -953,13 +954,12 @@ bool AppInitParameterInteraction() g_enabled_filter_types = AllBlockFilterTypes(); } else if (blockfilterindex_value != "0") { const std::vector names = gArgs.GetArgs("-blockfilterindex"); - g_enabled_filter_types.reserve(names.size()); for (const auto& name : names) { BlockFilterType filter_type; if (!BlockFilterTypeByName(name, filter_type)) { return InitError(strprintf(_("Unknown -blockfilterindex value %s.").translated, name)); } - g_enabled_filter_types.push_back(filter_type); + g_enabled_filter_types.insert(filter_type); } } From 4d7875c55500368336992d66b296ba5ee01c0932 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Wed, 11 Dec 2019 17:11:20 -0500 Subject: [PATCH 038/388] rpc: require second argument only for scantxoutset start action The second argument of scanobjects is only required for the start action. Stop and abort actions do not need this. Github-Pull: #17728 Rebased-From: 7d263571bee8c36fbe3c854b69c6f31cf1ee3b9b --- src/rpc/blockchain.cpp | 7 ++++++- test/functional/rpc_scantxoutset.py | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index 02717fa80f..ad5be71e21 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -2049,7 +2049,7 @@ UniValue scantxoutset(const JSONRPCRequest& request) " \"start\" for starting a scan\n" " \"abort\" for aborting the current scan (returns true when abort was successful)\n" " \"status\" for progress report (in %) of the current scan"}, - {"scanobjects", RPCArg::Type::ARR, RPCArg::Optional::NO, "Array of scan objects\n" + {"scanobjects", RPCArg::Type::ARR, RPCArg::Optional::OMITTED, "Array of scan objects. Required for \"start\" action\n" " Every scan object is either a string descriptor or an object:", { {"descriptor", RPCArg::Type::STR, RPCArg::Optional::OMITTED, "An output descriptor"}, @@ -2109,6 +2109,11 @@ UniValue scantxoutset(const JSONRPCRequest& request) if (!reserver.reserve()) { throw JSONRPCError(RPC_INVALID_PARAMETER, "Scan already in progress, use action \"abort\" or \"status\""); } + + if (request.params.size() < 2) { + throw JSONRPCError(RPC_MISC_ERROR, "scanobjects argument is required for the start action"); + } + std::set needles; std::map descriptors; CAmount total_in = 0; diff --git a/test/functional/rpc_scantxoutset.py b/test/functional/rpc_scantxoutset.py index 9f94d11a93..f31e4f43bd 100755 --- a/test/functional/rpc_scantxoutset.py +++ b/test/functional/rpc_scantxoutset.py @@ -116,5 +116,12 @@ def run_test(self): assert_equal(descriptors(self.nodes[0].scantxoutset("start", [ "combo(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/0)"])), ["pkh([0c5f9a1e/1/1/0]03e1c5b6e650966971d7e71ef2674f80222752740fc1dfd63bbbd220d2da9bd0fb)#cxmct4w8"]) assert_equal(descriptors(self.nodes[0].scantxoutset("start", [ {"desc": "combo(tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/1/1/*)", "range": 1500}])), ['pkh([0c5f9a1e/1/1/0]03e1c5b6e650966971d7e71ef2674f80222752740fc1dfd63bbbd220d2da9bd0fb)#cxmct4w8', 'pkh([0c5f9a1e/1/1/1500]03832901c250025da2aebae2bfb38d5c703a57ab66ad477f9c578bfbcd78abca6f)#vchwd07g', 'pkh([0c5f9a1e/1/1/1]030d820fc9e8211c4169be8530efbc632775d8286167afd178caaf1089b77daba7)#z2t3ypsa']) + # Check that status and abort don't need second arg + assert_equal(self.nodes[0].scantxoutset("status"), None) + assert_equal(self.nodes[0].scantxoutset("abort"), False) + + # Check that second arg is needed for start + assert_raises_rpc_error(-1, "scanobjects argument is required for the start action", self.nodes[0].scantxoutset, "start") + if __name__ == '__main__': ScantxoutsetTest().main() From 5276b0e5a2e2a12c7e038a44847fe79d7afc2944 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Tue, 12 Nov 2019 09:25:10 +0200 Subject: [PATCH 039/388] util: Add missing headers to util/fees.cpp Github-Pull: #17450 Rebased-From: b1315241375211563e9ec00391c4ac5310e1146f --- src/util/fees.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/util/fees.cpp b/src/util/fees.cpp index cf16d5e44f..41149888d7 100644 --- a/src/util/fees.cpp +++ b/src/util/fees.cpp @@ -3,8 +3,11 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. +#include + #include +#include #include std::string StringForFeeReason(FeeReason reason) { From bd8c6f12e805115b5f8f7b608061008027f4a793 Mon Sep 17 00:00:00 2001 From: Gregory Sanders Date: Sun, 1 Dec 2019 09:46:44 -0500 Subject: [PATCH 040/388] Fix origfee return for bumpfee with feerate arg Github-Pull: #17643 Rebased-From: 02afb0c550dc8529918460c845d1da3adf236eed --- src/wallet/feebumper.cpp | 7 ++++--- test/functional/wallet_bumpfee.py | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/wallet/feebumper.cpp b/src/wallet/feebumper.cpp index b87231293f..cb2fe37fc9 100644 --- a/src/wallet/feebumper.cpp +++ b/src/wallet/feebumper.cpp @@ -109,12 +109,11 @@ static feebumper::Result CheckFeeRate(const CWallet* wallet, const CWalletTx& wt return feebumper::Result::OK; } -static CFeeRate EstimateFeeRate(CWallet* wallet, const CWalletTx& wtx, CCoinControl& coin_control, CAmount& old_fee) +static CFeeRate EstimateFeeRate(CWallet* wallet, const CWalletTx& wtx, const CAmount old_fee, CCoinControl& coin_control) { // Get the fee rate of the original transaction. This is calculated from // the tx fee/vsize, so it may have been rounded down. Add 1 satoshi to the // result. - old_fee = wtx.GetDebit(ISMINE_SPENDABLE) - wtx.tx->GetValueOut(); int64_t txSize = GetVirtualTransactionSize(*(wtx.tx)); CFeeRate feerate(old_fee, txSize); feerate += CFeeRate(1); @@ -310,6 +309,8 @@ Result CreateRateBumpTransaction(CWallet* wallet, const uint256& txid, const CCo } } + old_fee = wtx.GetDebit(ISMINE_SPENDABLE) - wtx.tx->GetValueOut(); + if (coin_control.m_feerate) { // The user provided a feeRate argument. // We calculate this here to avoid compiler warning on the cs_wallet lock @@ -320,7 +321,7 @@ Result CreateRateBumpTransaction(CWallet* wallet, const uint256& txid, const CCo } } else { // The user did not provide a feeRate argument - new_coin_control.m_feerate = EstimateFeeRate(wallet, wtx, new_coin_control, old_fee); + new_coin_control.m_feerate = EstimateFeeRate(wallet, wtx, old_fee, new_coin_control); } // Fill in required inputs we are double-spending(all of them) diff --git a/test/functional/wallet_bumpfee.py b/test/functional/wallet_bumpfee.py index 89838ff058..c11305ebaf 100755 --- a/test/functional/wallet_bumpfee.py +++ b/test/functional/wallet_bumpfee.py @@ -100,7 +100,8 @@ def test_simple_bumpfee_succeeds(self, mode, rbf_node, peer_node, dest_address): else: bumped_tx = rbf_node.bumpfee(rbfid) assert_equal(bumped_tx["errors"], []) - assert bumped_tx["fee"] - abs(rbftx["fee"]) > 0 + assert bumped_tx["fee"] > -rbftx["fee"] + assert_equal(bumped_tx["origfee"], -rbftx["fee"]) # check that bumped_tx propagates, original tx was evicted and has a wallet conflict self.sync_mempools((rbf_node, peer_node)) assert bumped_tx["txid"] in rbf_node.getrawmempool() From c0dc7282068b370591e89c630c44bc43bbae38a5 Mon Sep 17 00:00:00 2001 From: fanquake Date: Fri, 15 Nov 2019 11:38:27 -0500 Subject: [PATCH 041/388] test: fix bitcoind already running warnings on macOS On macOS, pidof installed via brew returns b'' rather than None. Account for this, to remove spurious warnings from the test_runner. Github-Pull: #17488 Rebased-From: 1c23ea5fe67b88fd72a1ff640dd1bbb21a34fbf4 --- test/functional/test_runner.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/functional/test_runner.py b/test/functional/test_runner.py index 9c92091f1d..2f8279bc21 100755 --- a/test/functional/test_runner.py +++ b/test/functional/test_runner.py @@ -361,9 +361,10 @@ def main(): def run_tests(*, test_list, src_dir, build_dir, tmpdir, jobs=1, enable_coverage=False, args=None, combined_logs_len=0, failfast=False, runs_ci, use_term_control): args = args or [] - # Warn if bitcoind is already running (unix only) + # Warn if bitcoind is already running + # pidof might fail or return an empty string if bitcoind is not running try: - if subprocess.check_output(["pidof", "bitcoind"]) is not None: + if subprocess.check_output(["pidof", "bitcoind"]) not in [b'']: print("%sWARNING!%s There is already a bitcoind process running on this system. Tests may fail unexpectedly due to resource contention!" % (BOLD[1], BOLD[0])) except (OSError, subprocess.SubprocessError): pass From 1a6a534665be410988785b0f2e09ef001a612d5c Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 17 Dec 2019 15:43:12 +0100 Subject: [PATCH 042/388] net: Log to net category for exceptions in ProcessMessages Remove the forest of special exceptions, and simply log a short message to the NET logging category when an exception happens during packet processing. It is not good to panick end users with errors that any peer can generate (let alone writing to stderr). Github-Pull: #17762 Rebased-From: 4d88c3dcb61e7c075ed3dd442044e0eff4e3c8de --- src/net_processing.cpp | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 34d349e8e9..b57cb2f303 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -3363,35 +3363,10 @@ bool PeerLogicValidation::ProcessMessages(CNode* pfrom, std::atomic& inter return false; if (!pfrom->vRecvGetData.empty()) fMoreWork = true; - } - catch (const std::ios_base::failure& e) - { - if (m_enable_bip61) { - connman->PushMessage(pfrom, CNetMsgMaker(INIT_PROTO_VERSION).Make(NetMsgType::REJECT, strCommand, REJECT_MALFORMED, std::string("error parsing message"))); - } - if (strstr(e.what(), "end of data")) { - // Allow exceptions from under-length message on vRecv - LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' caught, normally caused by a message being shorter than its stated length\n", __func__, SanitizeString(strCommand), nMessageSize, e.what()); - } else if (strstr(e.what(), "size too large")) { - // Allow exceptions from over-long size - LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' caught\n", __func__, SanitizeString(strCommand), nMessageSize, e.what()); - } else if (strstr(e.what(), "non-canonical ReadCompactSize()")) { - // Allow exceptions from non-canonical encoding - LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' caught\n", __func__, SanitizeString(strCommand), nMessageSize, e.what()); - } else if (strstr(e.what(), "Superfluous witness record")) { - // Allow exceptions from illegal witness encoding - LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' caught\n", __func__, SanitizeString(strCommand), nMessageSize, e.what()); - } else if (strstr(e.what(), "Unknown transaction optional data")) { - // Allow exceptions from unknown witness encoding - LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' caught\n", __func__, SanitizeString(strCommand), nMessageSize, e.what()); - } else { - PrintExceptionContinue(&e, "ProcessMessages()"); - } - } - catch (const std::exception& e) { - PrintExceptionContinue(&e, "ProcessMessages()"); + } catch (const std::exception& e) { + LogPrint(BCLog::NET, "%s(%s, %u bytes): Exception '%s' (%s) caught\n", __func__, SanitizeString(strCommand), nMessageSize, e.what(), typeid(e).name()); } catch (...) { - PrintExceptionContinue(nullptr, "ProcessMessages()"); + LogPrint(BCLog::NET, "%s(%s, %u bytes): Unknown exception caught\n", __func__, SanitizeString(strCommand), nMessageSize); } if (!fRet) { From 112144dc524b6f4df5c88ab067e899d858f6461d Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 2 Jan 2020 20:54:15 +0100 Subject: [PATCH 043/388] Add missing typeinfo includes The use of `typeid()` for logging exception types requires this include according to https://en.cppreference.com/w/cpp/language/typeid. Github-Pull: #17762 Rebased-From: 4bdd68f301a9cee3360deafc7531c638e923226b --- src/net_processing.cpp | 1 + src/util/system.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/net_processing.cpp b/src/net_processing.cpp index b57cb2f303..3d0efa041d 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -30,6 +30,7 @@ #include #include +#include #if defined(NDEBUG) # error "Bitcoin cannot be compiled without assertions." diff --git a/src/util/system.cpp b/src/util/system.cpp index 3820006072..bbd7c9940a 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -64,6 +64,7 @@ #endif #include +#include // Application startup time (used for uptime calculation) const int64_t nStartupTime = GetTime(); From cd7b3b254a9d782667c751ade64c329edc30ecbb Mon Sep 17 00:00:00 2001 From: Aaron Clauson Date: Wed, 6 Nov 2019 22:02:16 +0000 Subject: [PATCH 044/388] Updated appveyor config: - Update build image from Visual Studio 2017 to Visual Studio 2019. - Updated Qt static library from Qt5.9.7 to Qt5.9.8. - Added commands to update vcpkg port files (this does not update already installed packages). - Updated vcpkg package list as per #17309. - Removed commands setting common project file options. Now done via common.init.vcxproj include. - Changed msbuild verbosity from normal to quiet. Normal rights a LOT of logs and impacts appveyor job duration. Updated msvc project configs: - Updated platform toolset from v141 to v142. - Updated Qt static library from Qt5.9.7 to Qt5.9.8. - Added ignore for linker warning building bitcoin-qt program. - Added missing util/str.cpp class file to test_bitcoin project file. Github-Pull: #17364 Rebased-From: 3c84deebaa311155ccc7565d09525041eed9747c --- .appveyor.yml | 55 +++++++++++++------- build_msvc/bitcoin-qt/bitcoin-qt.vcxproj | 2 + build_msvc/common.init.vcxproj | 4 +- build_msvc/common.qt.init.vcxproj | 2 +- build_msvc/test_bitcoin/test_bitcoin.vcxproj | 1 + 5 files changed, 43 insertions(+), 21 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index ed2ab49554..8402dc2216 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,31 +1,56 @@ version: '{branch}.{build}' skip_tags: true -image: Visual Studio 2017 +image: Visual Studio 2019 configuration: Release platform: x64 clone_depth: 5 environment: APPVEYOR_SAVE_CACHE_ON_ERROR: true CLCACHE_SERVER: 1 - PACKAGES: berkeleydb boost-filesystem boost-signals2 boost-test libevent openssl rapidcheck zeromq double-conversion + PACKAGES: berkeleydb boost-filesystem boost-multi-index boost-signals2 boost-test boost-thread libevent openssl rapidcheck zeromq double-conversion PATH: 'C:\Python37-x64;C:\Python37-x64\Scripts;%PATH%' PYTHONUTF8: 1 - QT_DOWNLOAD_URL: 'https://github.com/sipsorcery/qt_win_binary/releases/download/v1.0/Qt5.9.7_ssl_x64_static_vs2017.zip' - QT_DOWNLOAD_HASH: 'D4D35B8112302B67E5610A03421BB3E43FE13F14D9A5F637C22AE60DCEC0E0F5' - QT_LOCAL_PATH: 'C:\Qt5.9.7_ssl_x64_static_vs2017' + QT_DOWNLOAD_URL: 'https://github.com/sipsorcery/qt_win_binary/releases/download/v1.4/Qt5.9.8_x64_static_vs2019.zip' + QT_DOWNLOAD_HASH: 'f285cbb02bec3b3f3cc2621e3fa7d5edf0d6a66fa30c57859e583acda954ea80' + QT_LOCAL_PATH: 'C:\Qt5.9.8_x64_static_vs2019' + VCPKG_INSTALL_PATH: 'C:\tools\vcpkg\installed' cache: - C:\tools\vcpkg\installed - C:\Users\appveyor\clcache -> .appveyor.yml, build_msvc\**, **\Makefile.am, **\*.vcxproj.in -- C:\Qt5.9.7_ssl_x64_static_vs2017 +- C:\Qt5.9.8_x64_static_vs2019 install: - cmd: pip install --quiet git+https://github.com/frerich/clcache.git@v4.2.0 # Disable zmq test for now since python zmq library on Windows would cause Access violation sometimes. # - cmd: pip install zmq -- cmd: echo set(VCPKG_BUILD_TYPE release) >> C:\tools\vcpkg\triplets\%PLATFORM%-windows-static.cmake -- cmd: vcpkg remove --outdated --recurse -- cmd: vcpkg install --triplet %PLATFORM%-windows-static %PACKAGES% > NUL +# Powershell block below is to install the c++ dependencies via vcpkg. The pseudo code is: +# 1. If the vcpkg install directory exists assume dependencies are installed and do nothing. To +# force a fresh install of the packages delete the job's appveyor cache. +# 2. Otherwise: +# a. Update the vcpkg source (including port files) and build the vcpkg binary, +# b. Install the required packages. +- ps: | + cd c:\tools\vcpkg + if(!(Test-Path -Path ($env:VCPKG_INSTALL_PATH))) { + $env:GIT_REDIRECT_STDERR = '2>&1' # git is writing non-errors to STDERR when doing git pull. Send to STDOUT instead. + Add-Content "C:\tools\vcpkg\triplets\$env:PLATFORM-windows-static.cmake" "set(VCPKG_BUILD_TYPE release)" + git pull origin master + .\bootstrap-vcpkg.bat + .\vcpkg install --triplet $env:PLATFORM-windows-static $env:PACKAGES.split() > $null + } + else { + Write-Host "vcpkg packages already installed (to reinstall purge appveyor job's cache)." + } + .\vcpkg integrate install + cd "$env:APPVEYOR_BUILD_FOLDER" before_build: - ps: clcache -M 536870912 +# Powershell block below is to download and extract the Qt static libraries. The pseudo code is: +# 1. If the Qt destination directory exists assume it is correct and do nothing. To +# force a fresh install of the packages delete the job's appveyor cache. +# 2. Otherwise: +# a. Download the zip file with the prebuilt Qt static libraries. +# b. Check that the downloaded file matches the expected hash. +# c. Extract the zip file to the specific destination path expected by the msbuild projects. - ps: | if(!(Test-Path -Path ($env:QT_LOCAL_PATH))) { Write-Host "Downloading Qt binaries."; @@ -44,17 +69,10 @@ before_build: Write-Host "Qt binaries already present."; } - cmd: python build_msvc\msvc-autogen.py -- ps: $files = (Get-ChildItem -Recurse | where {$_.extension -eq ".vcxproj"}).FullName -- ps: for (${i} = 0; ${i} -lt ${files}.length; ${i}++) { - ${content} = (Get-Content ${files}[${i}]); - ${content} = ${content}.Replace("", "None"); - ${content} = ${content}.Replace("true", "false"); - Set-Content ${files}[${i}] ${content}; - } - ps: Start-Process clcache-server - ps: fsutil behavior set disablelastaccess 0 # Enable Access time feature on Windows (for clcache) build_script: -- cmd: msbuild /p:TrackFileAccess=false /p:CLToolExe=clcache.exe build_msvc\bitcoin.sln /m /v:n /nologo +- cmd: msbuild /p:TrackFileAccess=false /p:CLToolExe=clcache.exe build_msvc\bitcoin.sln /m /v:q /nologo after_build: - ps: fsutil behavior set disablelastaccess 1 # Disable Access time feature on Windows (better performance) - ps: clcache -z @@ -64,7 +82,8 @@ test_script: - cmd: src\bench_bitcoin.exe -evals=1 -scaling=0 > NUL - ps: python test\util\bitcoin-util-test.py - cmd: python test\util\rpcauth-test.py -- cmd: python test\functional\test_runner.py --ci --quiet --combinedlogslen=4000 --failfast +# Fee estimation test failing on appveyor with: WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted. +- cmd: python test\functional\test_runner.py --ci --quiet --combinedlogslen=4000 --failfast --exclude feature_fee_estimation artifacts: #- path: bitcoin-%APPVEYOR_BUILD_VERSION%.zip deploy: off diff --git a/build_msvc/bitcoin-qt/bitcoin-qt.vcxproj b/build_msvc/bitcoin-qt/bitcoin-qt.vcxproj index fdeec55ee8..dcfc1e1b33 100644 --- a/build_msvc/bitcoin-qt/bitcoin-qt.vcxproj +++ b/build_msvc/bitcoin-qt/bitcoin-qt.vcxproj @@ -56,6 +56,7 @@ $(QtReleaseLibraries);%(AdditionalDependencies) + /ignore:4206 ..\..\src; @@ -69,6 +70,7 @@ $(QtDebugLibraries);%(AdditionalDependencies) + /ignore:4206 ..\..\src; diff --git a/build_msvc/common.init.vcxproj b/build_msvc/common.init.vcxproj index 77f6a5c621..a04a38ff7c 100644 --- a/build_msvc/common.init.vcxproj +++ b/build_msvc/common.init.vcxproj @@ -39,7 +39,7 @@ true false true - v141 + v142 Unicode $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ $(Platform)\$(Configuration)\$(ProjectName)\ @@ -48,7 +48,7 @@ false true false - v141 + v142 Unicode $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ $(Platform)\$(Configuration)\$(ProjectName)\ diff --git a/build_msvc/common.qt.init.vcxproj b/build_msvc/common.qt.init.vcxproj index e21288e26b..42150a2310 100644 --- a/build_msvc/common.qt.init.vcxproj +++ b/build_msvc/common.qt.init.vcxproj @@ -2,7 +2,7 @@ - C:\Qt5.9.7_ssl_x64_static_vs2017 + C:\Qt5.9.8_x64_static_vs2019 $(QtBaseDir)\plugins $(QtBaseDir)\lib $(QtBaseDir)\include diff --git a/build_msvc/test_bitcoin/test_bitcoin.vcxproj b/build_msvc/test_bitcoin/test_bitcoin.vcxproj index 47e87b59e4..ad3110422f 100644 --- a/build_msvc/test_bitcoin/test_bitcoin.vcxproj +++ b/build_msvc/test_bitcoin/test_bitcoin.vcxproj @@ -16,6 +16,7 @@ + From b0f9b8e648733c3c5196fbb85fade88fa7ba9449 Mon Sep 17 00:00:00 2001 From: Aaron Clauson Date: Sun, 10 Nov 2019 13:49:28 +0000 Subject: [PATCH 045/388] Moves vcpkg list to a text file and updates the appveyor job and readme to use it. Github-Pull: #17416 Rebased-From: 29eb039252f35a3bb58b0027f172cfe3d0c79867 --- .appveyor.yml | 23 ++++++++++++----------- build_msvc/README.md | 11 ++++++----- build_msvc/vcpkg-packages.txt | 1 + 3 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 build_msvc/vcpkg-packages.txt diff --git a/.appveyor.yml b/.appveyor.yml index 8402dc2216..b4850d49c8 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -7,7 +7,6 @@ clone_depth: 5 environment: APPVEYOR_SAVE_CACHE_ON_ERROR: true CLCACHE_SERVER: 1 - PACKAGES: berkeleydb boost-filesystem boost-multi-index boost-signals2 boost-test boost-thread libevent openssl rapidcheck zeromq double-conversion PATH: 'C:\Python37-x64;C:\Python37-x64\Scripts;%PATH%' PYTHONUTF8: 1 QT_DOWNLOAD_URL: 'https://github.com/sipsorcery/qt_win_binary/releases/download/v1.4/Qt5.9.8_x64_static_vs2019.zip' @@ -15,7 +14,7 @@ environment: QT_LOCAL_PATH: 'C:\Qt5.9.8_x64_static_vs2019' VCPKG_INSTALL_PATH: 'C:\tools\vcpkg\installed' cache: -- C:\tools\vcpkg\installed +- C:\tools\vcpkg\installed -> build_msvc\vcpkg-packages.txt - C:\Users\appveyor\clcache -> .appveyor.yml, build_msvc\**, **\Makefile.am, **\*.vcxproj.in - C:\Qt5.9.8_x64_static_vs2019 install: @@ -23,25 +22,27 @@ install: # Disable zmq test for now since python zmq library on Windows would cause Access violation sometimes. # - cmd: pip install zmq # Powershell block below is to install the c++ dependencies via vcpkg. The pseudo code is: -# 1. If the vcpkg install directory exists assume dependencies are installed and do nothing. To -# force a fresh install of the packages delete the job's appveyor cache. -# 2. Otherwise: +# 1. Check whether the vcpkg install directory exists (note that updating the vcpkg-packages.txt file +# will cause the appveyor cache rules to invalidate the directory) +# 2. If the directory is missing: # a. Update the vcpkg source (including port files) and build the vcpkg binary, -# b. Install the required packages. +# b. Install the missing packages. - ps: | - cd c:\tools\vcpkg + $env:PACKAGES = Get-Content -Path build_msvc\vcpkg-packages.txt + Write-Host "vcpkg list: $env:PACKAGES" if(!(Test-Path -Path ($env:VCPKG_INSTALL_PATH))) { + cd c:\tools\vcpkg $env:GIT_REDIRECT_STDERR = '2>&1' # git is writing non-errors to STDERR when doing git pull. Send to STDOUT instead. - Add-Content "C:\tools\vcpkg\triplets\$env:PLATFORM-windows-static.cmake" "set(VCPKG_BUILD_TYPE release)" git pull origin master .\bootstrap-vcpkg.bat + Add-Content "C:\tools\vcpkg\triplets\$env:PLATFORM-windows-static.cmake" "set(VCPKG_BUILD_TYPE release)" .\vcpkg install --triplet $env:PLATFORM-windows-static $env:PACKAGES.split() > $null + cd "$env:APPVEYOR_BUILD_FOLDER" } else { - Write-Host "vcpkg packages already installed (to reinstall purge appveyor job's cache)." + Write-Host "required vcpkg packages already installed." } - .\vcpkg integrate install - cd "$env:APPVEYOR_BUILD_FOLDER" + c:\tools\vcpkg\vcpkg integrate install before_build: - ps: clcache -M 536870912 # Powershell block below is to download and extract the Qt static libraries. The pseudo code is: diff --git a/build_msvc/README.md b/build_msvc/README.md index 88b1f514bd..6c3ab6f6b0 100644 --- a/build_msvc/README.md +++ b/build_msvc/README.md @@ -56,11 +56,12 @@ Building --------------------- The instructions below use `vcpkg` to install the dependencies. -- Clone `vcpkg` from the [github repository](https://github.com/Microsoft/vcpkg) and install as per the instructions in the main README.md. -- Install the required packages (replace x64 with x86 as required): +- Install [`vcpkg`](https://github.com/Microsoft/vcpkg). +- Install the required packages (replace x64 with x86 as required). The list of required packages can be found in the `build_msvc\vcpkg-packages.txt` file. The PowerShell command below will work if run from the repository root directory and `vcpkg` is in the path. Alternatively the contents of the packages text file can be pasted in place of the `Get-Content` cmdlet. ``` - PS >.\vcpkg install --triplet x64-windows-static boost-filesystem boost-signals2 boost-test libevent openssl zeromq berkeleydb rapidcheck double-conversion +PS >.\vcpkg install --triplet x64-windows-static $(Get-Content -Path build_msvc\vcpkg-packages.txt).split() + ``` - Use Python to generate *.vcxproj from Makefile @@ -74,13 +75,13 @@ The instructions below use `vcpkg` to install the dependencies. - Build with Visual Studio 2017 or msbuild. ``` -msbuild /m bitcoin.sln /p:Platform=x64 /p:Configuration=Release /t:build +msbuild /m bitcoin.sln /p:Platform=x64 /p:Configuration=Release /p:PlatformToolset=v141 /t:build ``` - Build with Visual Studio 2019 or msbuild. ``` -msbuild /m bitcoin.sln /p:Platform=x64 /p:Configuration=Release /p:PlatformToolset=v142 /t:build +msbuild /m bitcoin.sln /p:Platform=x64 /p:Configuration=Release /t:build ``` AppVeyor diff --git a/build_msvc/vcpkg-packages.txt b/build_msvc/vcpkg-packages.txt new file mode 100644 index 0000000000..082a13f1cf --- /dev/null +++ b/build_msvc/vcpkg-packages.txt @@ -0,0 +1 @@ +berkeleydb boost-filesystem boost-multi-index boost-signals2 boost-test boost-thread libevent openssl rapidcheck zeromq double-conversion \ No newline at end of file From 4330a1ee7fdbf97ce466c442936ed04c13f229e2 Mon Sep 17 00:00:00 2001 From: Aaron Clauson Date: Thu, 12 Dec 2019 18:51:30 +0000 Subject: [PATCH 046/388] Update msvc build for Visual Studio 2019 v16.4 msvc warning C4834 for the Bitcoin Core build was introduced by Visual Studio 16.4.0. This PR adds an ignore rule for the warning (it's related to the nodiscard attribute and is not considered relevant). An additional side effect of the msvc compiler update is the prebuilt Qt5.9.8 libraries cannot be linked due to being built with an earlier version of the compiler. To fix this a new Qt5.9.8 version has been compiled and the appveyor job updated to use them. The GitHub Actions job needs to continue to use the original Qt5.9.8 libraries until the latest GitHub Windows image also updates to >= Visual Studio 2019 v16.4. Github-Pull: #17736 Rebased-From: 75d9317bc1aecaab95bf875f8dca97ac3daddff4 --- .appveyor.yml | 4 ++-- build_msvc/common.init.vcxproj | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index b4850d49c8..dacfba658b 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -9,8 +9,8 @@ environment: CLCACHE_SERVER: 1 PATH: 'C:\Python37-x64;C:\Python37-x64\Scripts;%PATH%' PYTHONUTF8: 1 - QT_DOWNLOAD_URL: 'https://github.com/sipsorcery/qt_win_binary/releases/download/v1.4/Qt5.9.8_x64_static_vs2019.zip' - QT_DOWNLOAD_HASH: 'f285cbb02bec3b3f3cc2621e3fa7d5edf0d6a66fa30c57859e583acda954ea80' + QT_DOWNLOAD_URL: 'https://github.com/sipsorcery/qt_win_binary/releases/download/v1.6/Qt5.9.8_x64_static_vs2019.zip' + QT_DOWNLOAD_HASH: '9a8c6eb20967873785057fdcd329a657c7f922b0af08c5fde105cc597dd37e21' QT_LOCAL_PATH: 'C:\Qt5.9.8_x64_static_vs2019' VCPKG_INSTALL_PATH: 'C:\tools\vcpkg\installed' cache: diff --git a/build_msvc/common.init.vcxproj b/build_msvc/common.init.vcxproj index a04a38ff7c..583cd9f88c 100644 --- a/build_msvc/common.init.vcxproj +++ b/build_msvc/common.init.vcxproj @@ -107,7 +107,7 @@ Level3 NotUsing /utf-8 %(AdditionalOptions) - 4018;4221;4244;4267;4334;4715;4805; + 4018;4221;4244;4267;4334;4715;4805;4834 true ZMQ_STATIC;NOMINMAX;WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;_WIN32_WINNT=0x0601;%(PreprocessorDefinitions) ..\..\src;..\..\src\univalue\include;..\..\src\secp256k1\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;%(AdditionalIncludeDirectories) From 99b54076ff2d2dd357dafb9f0275713cd8d0111f Mon Sep 17 00:00:00 2001 From: fanquake Date: Fri, 3 Jan 2020 19:24:58 +0800 Subject: [PATCH 047/388] scripts: fix check-symbols & check-security argument passing The first argument in bin_PROGRAMS (bitcoind) was being silently dropped and never passed into the check-security.py or check-symbols.py scripts. This has been the case since the scripts were added to the makefile in https://github.com/bitcoin/bitcoin/commit/f3d3eaf78eb51238d799d8f20a585550d1567719. Example of the behavior: ```python import sys if __name__ == '__main__': print(sys.argv) # ['args.py', 'b', 'c'] # if you add some lines to "a", # you'll see them here.. for line in sys.stdin: print(line) ``` Github-Pull: #17857 Rebased-From: 71af793512100ee7d508c3fb815af47925fe80ba --- src/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 1ef62a656d..947edc6983 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -686,13 +686,13 @@ clean-local: check-symbols: $(bin_PROGRAMS) if GLIBC_BACK_COMPAT @echo "Checking glibc back compat..." - $(AM_V_at) READELF=$(READELF) CPPFILT=$(CPPFILT) $(PYTHON) $(top_srcdir)/contrib/devtools/symbol-check.py < $(bin_PROGRAMS) + $(AM_V_at) READELF=$(READELF) CPPFILT=$(CPPFILT) $(PYTHON) $(top_srcdir)/contrib/devtools/symbol-check.py $(bin_PROGRAMS) endif check-security: $(bin_PROGRAMS) if HARDEN @echo "Checking binary security..." - $(AM_V_at) READELF=$(READELF) OBJDUMP=$(OBJDUMP) $(PYTHON) $(top_srcdir)/contrib/devtools/security-check.py < $(bin_PROGRAMS) + $(AM_V_at) READELF=$(READELF) OBJDUMP=$(OBJDUMP) $(PYTHON) $(top_srcdir)/contrib/devtools/security-check.py $(bin_PROGRAMS) endif if ENABLE_BIP70 From fd4ec7c720474a15d7ef58c6f11b5f3f575cd8eb Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 8 Jan 2020 13:45:40 +0100 Subject: [PATCH 048/388] qt: Periodic translations update for 0.19 branch Brings back `bitcoin_en` which was accidentally removed last time (see #17886). Tree-SHA512: a4aaa6f22e9ad3e87952f2a87829d675158cb26ed1fe61ef8e62646c22e21ccc0dec0f890b726f8adb76d7609e0274af8574b67201d30eff941cb60b1b76ff8c --- src/Makefile.qt_locale.include | 3 +- src/qt/bitcoin_locale.qrc | 3 +- src/qt/locale/bitcoin_ar.ts | 144 +++- src/qt/locale/bitcoin_ca.ts | 60 ++ src/qt/locale/bitcoin_cy.ts | 40 +- src/qt/locale/bitcoin_da.ts | 6 +- src/qt/locale/bitcoin_de.ts | 4 + src/qt/locale/bitcoin_en_GB.ts | 4 + src/qt/locale/bitcoin_es.ts | 392 +++++----- src/qt/locale/bitcoin_es_MX.ts | 15 + src/qt/locale/bitcoin_es_VE.ts | 46 +- src/qt/locale/bitcoin_eu.ts | 34 +- src/qt/locale/bitcoin_fa_IR.ts | 173 ---- src/qt/locale/bitcoin_fr.ts | 138 ++-- src/qt/locale/bitcoin_gl.ts | 1349 -------------------------------- src/qt/locale/bitcoin_hr.ts | 6 +- src/qt/locale/bitcoin_hu.ts | 260 +++++- src/qt/locale/bitcoin_id.ts | 130 ++- src/qt/locale/bitcoin_it.ts | 6 +- src/qt/locale/bitcoin_ja.ts | 167 +++- src/qt/locale/bitcoin_ko.ts | 16 + src/qt/locale/bitcoin_nl.ts | 47 +- src/qt/locale/bitcoin_pl.ts | 4 + src/qt/locale/bitcoin_pt.ts | 178 ++++- src/qt/locale/bitcoin_pt_BR.ts | 4 + src/qt/locale/bitcoin_ru.ts | 260 ++++-- src/qt/locale/bitcoin_sk.ts | 204 ++++- src/qt/locale/bitcoin_sl.ts | 4 + src/qt/locale/bitcoin_sv.ts | 102 ++- src/qt/locale/bitcoin_ta.ts | 1240 +++++++++++++++++++++++++++-- src/qt/locale/bitcoin_th.ts | 94 ++- src/qt/locale/bitcoin_uk.ts | 88 ++- src/qt/locale/bitcoin_zh_CN.ts | 6 +- 33 files changed, 3211 insertions(+), 2016 deletions(-) delete mode 100644 src/qt/locale/bitcoin_fa_IR.ts delete mode 100644 src/qt/locale/bitcoin_gl.ts diff --git a/src/Makefile.qt_locale.include b/src/Makefile.qt_locale.include index be13d33bd1..53c0eaba13 100644 --- a/src/Makefile.qt_locale.include +++ b/src/Makefile.qt_locale.include @@ -6,6 +6,7 @@ QT_TS = \ qt/locale/bitcoin_da.ts \ qt/locale/bitcoin_de.ts \ qt/locale/bitcoin_el.ts \ + qt/locale/bitcoin_en.ts \ qt/locale/bitcoin_en_GB.ts \ qt/locale/bitcoin_eo.ts \ qt/locale/bitcoin_es.ts \ @@ -17,11 +18,9 @@ QT_TS = \ qt/locale/bitcoin_et.ts \ qt/locale/bitcoin_eu.ts \ qt/locale/bitcoin_fa.ts \ - qt/locale/bitcoin_fa_IR.ts \ qt/locale/bitcoin_fi.ts \ qt/locale/bitcoin_fil.ts \ qt/locale/bitcoin_fr.ts \ - qt/locale/bitcoin_gl.ts \ qt/locale/bitcoin_he.ts \ qt/locale/bitcoin_hi.ts \ qt/locale/bitcoin_hr.ts \ diff --git a/src/qt/bitcoin_locale.qrc b/src/qt/bitcoin_locale.qrc index 483b0b1b18..f8d3fccc0e 100644 --- a/src/qt/bitcoin_locale.qrc +++ b/src/qt/bitcoin_locale.qrc @@ -7,6 +7,7 @@ locale/bitcoin_da.qm locale/bitcoin_de.qm locale/bitcoin_el.qm + locale/bitcoin_en.qm locale/bitcoin_en_GB.qm locale/bitcoin_eo.qm locale/bitcoin_es.qm @@ -18,11 +19,9 @@ locale/bitcoin_et.qm locale/bitcoin_eu.qm locale/bitcoin_fa.qm - locale/bitcoin_fa_IR.qm locale/bitcoin_fi.qm locale/bitcoin_fil.qm locale/bitcoin_fr.qm - locale/bitcoin_gl.qm locale/bitcoin_he.qm locale/bitcoin_hi.qm locale/bitcoin_hr.qm diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts index 84f0abebc5..13e2cf1f66 100644 --- a/src/qt/locale/bitcoin_ar.ts +++ b/src/qt/locale/bitcoin_ar.ts @@ -65,10 +65,30 @@ Receiving addresses العنوان الرقمي المُرسَل إليه + + These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + هذه هي عناوين البيتكوين لإرسال المدفوعات. دائما تحقق من المبلغ وعنوان المستلم قبل الإرسال. + + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + هذه هي عناوين البيتكوين الخاصة بك لإستلام المدفوعات. استخدم زر "إنشاء عنوان استلام جديد" في علامة التبويب "إستلام" لإنشاء عناوين جديدة. + &Copy Address نسخ العنوان + + Copy &Label + نسخ&تسمية + + + &Edit + تحرير + + + Export Address List + تصدير قائمة العناوين + Comma separated file (*.csv) ملف مفصول بفاصلة (*.csv) @@ -80,9 +100,89 @@ AddressTableModel - + + Label + وسم + + + Address + عنوان + + + (no label) + (بدون وسم) + + AskPassphraseDialog + + Passphrase Dialog + مربع كلمة المرور + + + Enter passphrase + ادخل كلمة المرور + + + New passphrase + كلمة مرور جديد + + + Repeat new passphrase + إعادة إدخال كلمة المرور + + + Show passphrase + إظهار كلمة المرور + + + Encrypt wallet + تشفير المحفظة + + + This operation needs your wallet passphrase to unlock the wallet. + العملية تحتاج كملة المرور المحفظة لتستطيع فتحها. + + + Unlock wallet + فتح المحفظة + + + This operation needs your wallet passphrase to decrypt the wallet. + العملية تحتاج كملة المرور المحفظة لتستطيع فتحها. + + + Decrypt wallet + فك تشفير المحفظة + + + Change passphrase + تغيير كلمة المرور + + + Confirm wallet encryption + تأكيد تشفير المحفظة + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! + إذا شفرت محفظتك وفقدت كلمة المرور، ستفقد كل ما تملك من البيتكوين. + + + Are you sure you wish to encrypt your wallet? + هل انت متأكد بأنك تريد تشفير محفظتك؟ + + + Wallet encrypted + تم تشفير المحفظة + + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + أدخل كلمة المرور الجديدة للمحفظة. <br/> الرجاء استخدام كلمة مرور تتكون من <b> عشرة أحرف عشوائية أو أكثر </b> ، أو <b> ثماني كلمات أو أكثر</b> . + + + Enter the old passphrase and new passphrase for the wallet. + ادخل كملة المرور القديمة وكلمة المرور الجديدة للمحفظة. + BanTableModel @@ -104,6 +204,10 @@ CoinControlDialog + + (no label) + (بدون وسم) + CreateWalletActivity @@ -190,13 +294,33 @@ ReceiveRequestDialog + + Address + عنوان + + + Label + وسم + RecentRequestsTableModel + + Label + وسم + + + (no label) + (بدون وسم) + SendCoinsDialog - + + (no label) + (بدون وسم) + + SendCoinsEntry @@ -220,6 +344,14 @@ TransactionTableModel + + Label + وسم + + + (no label) + (بدون وسم) + TransactionView @@ -231,6 +363,14 @@ Comma separated file (*.csv) ملف مفصول بفاصلة (*.csv) + + Label + وسم + + + Address + عنوان + Exporting Failed لقد فشل التصدير diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index bdee2bd179..a0a5abc189 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -333,6 +333,34 @@ Encrypt the private keys that belong to your wallet Encripta les claus privades pertanyents de la cartera + + &File + &Fitxer + + + Tabs toolbar + Barra d'eines de les pestanyes + + + &Command-line options + Opcions de la &línia d'ordres + + + Error + Error + + + Warning + Avís + + + Information + Informació + + + Up to date + Actualitzat + &Sending addresses Adreces d'&enviament @@ -496,6 +524,10 @@ The wallet will also be stored in this directory. La cartera també serà emmagatzemat en aquest directori. + + Error + Error + ModalOverlay @@ -532,10 +564,18 @@ OptionsDialog + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. + Minimitza en comptes de sortir de l'aplicació quan la finestra es tanca. Quan s'habilita aquesta opció l'aplicació es tancarà només quan se selecciona Surt del menú. + MiB MiB + + Error + Error + OverviewPage @@ -1294,6 +1334,10 @@ (no label) (sense etiqueta) + + Date and time that the transaction was received. + Data i hora en què la transacció va ser rebuda. + TransactionView @@ -1407,6 +1451,10 @@ Error loading %s: Wallet requires newer version of %s S'ha produït un error en carregar %s: la cartera requereix una versió més nova de %s + + Importing... + S'està important... + Unable to generate keys No s'han pogut generar les claus @@ -1419,6 +1467,18 @@ Section [%s] is not recognized. No es reconeix la secció [%s] + + This is experimental software. + Aquest és programari experimental. + + + Transaction amount too small + La transacció és massa petita + + + Transaction too large + La transacció és massa gran + Unable to generate initial keys No s'han pogut generar les claus inicials diff --git a/src/qt/locale/bitcoin_cy.ts b/src/qt/locale/bitcoin_cy.ts index 710fd4cad6..4f31ed3611 100644 --- a/src/qt/locale/bitcoin_cy.ts +++ b/src/qt/locale/bitcoin_cy.ts @@ -29,6 +29,10 @@ Delete the currently selected address from the list Dileu'r cyfeiriad presennol wedi ei ddewis o'r rhestr + + Enter address or label to search + Cyfeiriad neu label i chwilio + Export the data in the current tab to a file Allforio'r data yn y tab presennol i ffeil @@ -161,7 +165,11 @@ Wallet encrypted - Waled Wedi Amgryptio + Waled wedi amgryptio + + + Wallet to be encrypted + Waled i'w amgryptio IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -457,6 +465,14 @@ Catching up... Dal i fyny... + + Error: %1 + Gwall: %1 + + + Warning: %1 + Rhybudd: %1 + Date: %1 @@ -467,6 +483,12 @@ Amount: %1 Cyfanswm: %1 + + + + Wallet: %1 + + Waled: %1 @@ -528,23 +550,23 @@ Bytes: - Maint + Maint: Amount: - Cyfanswm + Cyfanswm: Fee: - Ffî + Ffî: Dust: - Llwch + Llwch: After Fee: - Ar Ôl Ffî + Ar Ôl Ffî: Change: @@ -584,7 +606,7 @@ Copy amount - Copïo Cyfanswm + Copïo cyfanswm (no label) @@ -720,6 +742,10 @@ %1 and %2 %1 a %2 + + Error: %1 + Gwall: %1 + QRImageWidget diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts index 254cb5557a..48ad3cfa40 100644 --- a/src/qt/locale/bitcoin_da.ts +++ b/src/qt/locale/bitcoin_da.ts @@ -1494,7 +1494,7 @@ Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. - På grund af vidtstrakte sikkerhedsfejl i BIP70 anbefales det kraftigt, at enhver instruktion til handlende om at skifte tegnebog ignoreres. + På grund af vidtstrakte sikkerhedsfejl i BIP70 anbefales det kraftigt, at enhver instruktion fra handlende om at skifte til en BIP70-tegnebog ignoreres. If you are receiving this error you should request the merchant provide a BIP21 compatible URI. @@ -2902,6 +2902,10 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Output index Outputindeks + + (Certificate was not verified) + (certifikat er ikke verificeret) + Merchant Forretningsdrivende diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index 88fe15bcba..5ebb7254ec 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -2902,6 +2902,10 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Output index Ausgabeindex + + (Certificate was not verified) + (Zertifikat wurde nicht verifiziert) + Merchant Händler diff --git a/src/qt/locale/bitcoin_en_GB.ts b/src/qt/locale/bitcoin_en_GB.ts index 23e0cabe39..3a43ef89b1 100644 --- a/src/qt/locale/bitcoin_en_GB.ts +++ b/src/qt/locale/bitcoin_en_GB.ts @@ -2902,6 +2902,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Output index Output index + + (Certificate was not verified) + (Certificate was not verified) + Merchant Merchant diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index c64d7b7203..ddeed2ca1e 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -31,7 +31,7 @@ Enter address or label to search - Introduzca una dirección o etiqueta que buscar + Introduzca la dirección, ID de transacción o etiqueta a buscar. Export the data in the current tab to a file @@ -99,7 +99,7 @@ There was an error trying to save the address list to %1. Please try again. - Hubo un error al intentar guardar la lista de direcciones a %1. Por favor trate de nuevo. + Hubo un error al intentar guardar la lista de direcciones a %1. Por favor, inténtelo de nuevo. @@ -137,7 +137,7 @@ Show passphrase - Mostrar clave + Mostrar contraseña Encrypt wallet @@ -161,11 +161,11 @@ Change passphrase - Cambiar frase secreta + Cambiar contraseña Confirm wallet encryption - Confirme cifrado del monedero + Confirmar el cifrado del monedero Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! @@ -181,7 +181,7 @@ Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Introduzca la nueva contraseña del monedero. <br/>Por favor utilice una contraseña de <b>diez o más caracteres aleatorios</b>, o <b>ocho o más palabras</b>. + Introduzca la nueva contraseña del monedero. <br/>Por favor utilice una contraseña de <b>diez o más caracteres aleatorios</b>, u <b>ocho o más palabras</b>. Enter the old passphrase and new passphrase for the wallet. @@ -189,11 +189,11 @@ Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Recuerda que codificando tu billetera no garantiza mantener a salvo tus bitcoins en caso de tener virus en el computador. + Recuerde que cifrar su monedero no garantiza mantener a salvo sus bitcoins en caso de tener virus en el computador. Wallet to be encrypted - Monedero a cifrar + Monedero para cifrar Your wallet is about to be encrypted. @@ -205,15 +205,15 @@ IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANTE: cualquier copia de seguridad anterior que haya hecho de su archivo de cartera debe ser reemplazada por el archivo de cartera encriptado y recién generado. Por razones de seguridad, las copias de seguridad anteriores del archivo de cartera sin cifrar serán inútiles tan pronto como empieces a usar la nueva billetera encriptada. + IMPORTANTE: Cualquier copia de seguridad anterior que haya hecho de su archivo del monedero debe ser reemplazada por el archivo del monedero cifrado y recién generado. Por razones de seguridad, las copias de seguridad anteriores del archivo del monedero sin cifrar serán inútiles tan pronto como empiece a usar el nuevo monedero cifrado. Wallet encryption failed - Encriptación de la cartera fallida + Cifrado del monedero fallido Wallet encryption failed due to an internal error. Your wallet was not encrypted. - La encriptación de la cartera falló debido a un error interno. Su cartera no fue encriptada. + El cifrado del monedero falló debido a un error interno. Su monedero no fue cifrado. The supplied passphrases do not match. @@ -221,19 +221,19 @@ Wallet unlock failed - El desbloqueo de la cartera falló. + Desbloquear el monedero falló. The passphrase entered for the wallet decryption was incorrect. - La contraseña ingresada para la desencriptación de la cartera es incorrecta. + La contraseña ingresada para el descifrado del monedero es incorrecta. Wallet decryption failed - La desencriptación de la cartera fallo + El descifrado del monedero falló Wallet passphrase was successfully changed. - La contraseña de la cartera ha sido exitosamente cambiada. + La contraseña del monedero ha sido cambiada con éxito. Warning: The Caps Lock key is on! @@ -315,7 +315,7 @@ &Backup Wallet... - Copia de &respaldo del monedero... + &Copia de respaldo del monedero... &Change Passphrase... @@ -335,7 +335,7 @@ Wallet: - Cartera: + Monedero: Click to disable network activity. @@ -351,7 +351,7 @@ Syncing Headers (%1%)... - Sincronizar encabezados (%1%) ... + Sincronizando cabeceras (%1%) ... Reindexing blocks on disk... @@ -367,7 +367,7 @@ Backup wallet to another location - Copia de seguridad del monedero en otra ubicación + Copia de seguridad del monedero en otra ubicación. Change the passphrase used for wallet encryption @@ -375,7 +375,7 @@ &Debug window - Ventana de &depuración + &Ventana de depuración. Open debugging and diagnostic console @@ -395,7 +395,7 @@ &Show / Hide - Mo&strar/ocultar + &Mostrar / Ocultar Show or hide the main Window @@ -423,7 +423,7 @@ &Help - A&yuda + &Ayuda Tabs toolbar @@ -431,7 +431,7 @@ Request payments (generates QR codes and bitcoin: URIs) - Solicitar pagos (genera codigo QR y URL's de Bitcoin) + Solicitar pagos (genera código QR y URL's de Bitcoin) Show the list of used sending addresses and labels @@ -443,11 +443,11 @@ Open a bitcoin: URI or payment request - Abrir un bitcoin: URI o petición de pago + Abrir un identificador URI de bitcoin o una solicitud de pago &Command-line options - &Opciones de linea de comando + &Opciones de línea de comandos %n active connection(s) to Bitcoin network @@ -495,11 +495,11 @@ &Sending addresses - Direcciones de &envío + &Direcciones de envío &Receiving addresses - Direcciones de &recepción + Direcciones de recepción Open Wallet @@ -527,7 +527,7 @@ No wallets available - No hay carteras disponibles + No hay monederos disponibles. &Window @@ -580,7 +580,7 @@ Wallet: %1 - Billetera: %1 + Monedero: %1 @@ -611,11 +611,11 @@ HD key generation is <b>enabled</b> - La generación de la clave HD está <b> activada </ b> + La generación de clave HD está <b>habilitada</b> HD key generation is <b>disabled</b> - La generación de la clave HD está <b> desactivada </ b> + La generación de clave HD está <b>deshabilitada</b> Private key <b>disabled</b> @@ -631,7 +631,7 @@ A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Se produjo un error fatal. Bitcoin ya no puede continuar de manera segura y no continuará + Se produjo un error fatal. Bitcoin ya no puede continuar de manera segura y se cerrará @@ -650,11 +650,11 @@ Amount: - Cuantía: + Cantidad: Fee: - Tasa: + Comisión: Dust: @@ -662,7 +662,7 @@ After Fee: - Después de tasas: + Después de comisión: Change: @@ -674,7 +674,7 @@ Tree mode - Modo arbol + Modo árbol List mode @@ -722,11 +722,11 @@ Lock unspent - Bloquear no utilizado + Bloquear lo no gastado Unlock unspent - Desbloquear no utilizado + Desbloquear lo no gastado Copy quantity @@ -738,7 +738,7 @@ Copy after fee - Copiar después de la tarifa + Copiar después de la comisión Copy bytes @@ -758,7 +758,7 @@ yes - si + no @@ -766,11 +766,11 @@ This label turns red if any recipient receives an amount smaller than the current dust threshold. - Está etiqueta se vuelve roja si algún receptor recibe una cantidad inferior al límite actual establecido para el polvo. + Esta etiqueta se vuelve roja si algún receptor recibe una cantidad inferior al umbral actual establecido para el polvo. Can vary +/- %1 satoshi(s) per input. - Puede variar +/- %1 satoshi (s) por entrada. + Puede variar +/- %1 satoshi(s) por entrada. (no label) @@ -793,11 +793,11 @@ Create wallet failed - La creación del monedero falló + Crear monedero falló Create wallet warning - Advertencia sobre creación de monedero + Advertencia sobre crear monedero @@ -812,7 +812,7 @@ Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. - Cifrar el monedero. El monedero se cifrará con la clave que elija. + Encriptar monedero. El monedero será cifrado con la contraseña que elija. Encrypt Wallet @@ -820,7 +820,7 @@ Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. - Desahibilitar las claves privadas para este monedero. Los monederos con claves privadas deshabilitadas no tendrán claves privadas y no podrán tener ni una semilla HD ni claves privadas importadas. Esto es ideal para monederos de solo lectura. + Deshabilita las claves privadas para este monedero. Los monederos con claves privadas deshabilitadas no tendrán claves privadas y no podrán tener ni una semilla HD ni claves privadas importadas. Esto es ideal para monederos de solo lectura. Disable Private Keys @@ -828,7 +828,7 @@ Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. - Crear un monedero vacío. Los monederos vacíos no tienen claves privadas ni scripts. Las claves privadas y direcciones pueden importarse despues o también establecer una semilla HD. + Crear un monedero vacío. Los monederos vacíos no tienen claves privadas ni scripts. Las claves privadas y direcciones pueden importarse después o también establecer una semilla HD. Make Blank Wallet @@ -887,7 +887,7 @@ Could not unlock wallet. - No se pudo desbloquear la billetera. + No se pudo desbloquear el monedero. New key generation failed. @@ -933,7 +933,7 @@ Command-line options - Opciones de la línea de órdenes + Opciones de la línea de comandos @@ -952,15 +952,15 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. - Al hacer clic OK, %1 iniciará el proceso de descarga y procesará el blockchain completo de %4 (%2 GB), iniciando desde el la transacción más antigua %3 cuando %4 se ejecutó inicialmente. + Al hacer clic en OK, %1 se iniciará el proceso de descarga y se procesará la cadena de bloques completa de %4 (%2 GB), iniciando desde la transacción más antigua %3 cuando %4 se ejecutó inicialmente. Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. - Revertir este parámetro requiere volver a descargar todos los bloques. Es más rápido descargar primero todos los bloques y podar despues. Deshabilita algunas características avanzadas. + Revertir este parámetro requiere volver a descargar todos los bloques. Es más rápido descargar primero todos los bloques y podar después. Deshabilita algunas características avanzadas. This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. - Esta sincronización inicial es muy exigente y puede exponer problemas de hardware con su computadora que anteriormente habían pasado desapercibidos. Cada vez que ejecuta %1, continuará la descarga donde lo dejó. + Esta sincronización inicial es muy exigente y puede exponer problemas de hardware con su computadora que anteriormente habían pasado desapercibidos. Cada vez que ejecuta %1, continuará la descarga desde donde la dejó. If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low. @@ -980,11 +980,11 @@ Discard blocks after verification, except most recent %1 GB (prune) - Descartar los bloques tras la verificación, excepto los %1 GB más recientes + Descartar los bloques después de la verificación, excepto los %1 GB más recientes (prune) At least %1 GB of data will be stored in this directory, and it will grow over time. - Al menos %1 GB de información será almacenado en este directorio, y seguirá creciendo a través del tiempo. + Al menos %1 GB de información será almacenada en este directorio, y seguirá creciendo a través del tiempo. Approximately %1 GB of data will be stored in this directory. @@ -996,7 +996,7 @@ The wallet will also be stored in this directory. - La billetera también se almacenará en este directorio. + El monedero también se almacenará en este directorio. Error: Specified data directory "%1" cannot be created. @@ -1019,19 +1019,19 @@ ModalOverlay Form - Desde + Formulario Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Es posible que las transacciones recientes aún no estén visibles y, por lo tanto, el saldo de su billetera podría ser incorrecto. Esta información será correcta una vez que su billetera haya terminado de sincronizarse con la red bitcoin, como se detalla a continuación. + Es posible que las transacciones recientes aún no estén visibles y, por lo tanto, el saldo de su monedero podría ser incorrecto. Esta información será correcta una vez que su monedero haya terminado de sincronizarse con la red bitcoin, como se detalla a continuación. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - La red no aceptará intentar gastar bitcoins que se vean afectados por transacciones aún no mostradas + La red no aceptará intentar gastar bitcoins que se vean afectados por transacciones aún no mostradas. Number of blocks left - Cantidad de bloques restantes + Cantidad de bloques restantes. Unknown... @@ -1039,15 +1039,15 @@ Last block time - Hora del último bloque + Hora del último bloque. Progress - Progreso + Progreso. Progress increase per hour - Aumento de progreso por hora + Aumento de progreso por hora. calculating... @@ -1055,15 +1055,15 @@ Estimated time left until synced - Tiempo estimado restante hasta sincronización + Tiempo estimado restante hasta la sincronización. Hide - Esconder + Ocultar Unknown. Syncing Headers (%1, %2%)... - Desconocido. Sincronizando cabecesar (%1, %2%)... + Desconocido. Sincronizando cabeceras (%1, %2%)... @@ -1082,7 +1082,7 @@ Select payment request file - Seleccione archivo de sulicitud de pago + Seleccione archivo de solicitud de pago Select payment request file to open @@ -1118,10 +1118,6 @@ &Main &Principal - - Automatically start %1 after logging in to the system. - Inicie automáticamente %1 después de iniciar sesión en el sistema. - &Start %1 on system login & Comience %1 en el inicio de sesión del sistema @@ -1156,7 +1152,7 @@ Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. - Minimice en lugar de salir de la aplicación cuando la ventana esté cerrada. Cuando esta opción está habilitada, la aplicación se cerrará solo después de seleccionar Salir en el menú. + Minimizar en lugar de salir de la aplicación cuando la ventana está cerrada. Cuando se activa esta opción, la aplicación sólo se cerrará después de seleccionar Salir en el menú. Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. @@ -1184,7 +1180,7 @@ Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher. - Desactiva algunas características avanzadas, pero todos los bloques se validarán por completo. Revertir esta configuración requiere volver a descargar todo el blockchain. El uso real del disco puede ser algo mayor. + Desactiva algunas características avanzadas, pero todos los bloques se validarán por completo. Revertir esta configuración requiere volver a descargar toda la blockchain. El uso real del disco puede ser algo mayor. Prune &block storage to @@ -1196,7 +1192,7 @@ Reverting this setting requires re-downloading the entire blockchain. - Revertir estas configuraciones requiere re-descargar el blockchain entero. + Revertir estas configuraciones requiere descargar de nuevo la blockchain entera. MiB @@ -1204,7 +1200,7 @@ (0 = auto, <0 = leave that many cores free) - (0 = auto, <0 = deja muchos núcleos gratis) + (0 = auto, <0 = deja estos núcleos libres) W&allet @@ -1216,11 +1212,11 @@ Enable coin &control features - Habilite las funciones de moneda y control + Habilitar características de &Control de Moneda. If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. - Si deshabilita el gasto de un cambio no confirmado, el cambio de una transacción no se puede usar hasta que esa transacción tenga al menos una confirmación. Esto también afecta cómo se calcula su saldo. + Si deshabilita el gasto de un cambio no confirmado, el cambio de una transacción no se puede usar hasta que esa transacción tenga al menos una confirmación. Esto también afecta a cómo se calcula su saldo. &Spend unconfirmed change @@ -1352,11 +1348,11 @@ Client restart required to activate changes. - Reinicio del cliente para activar cambios. + Se necesita reiniciar el cliente para activar los cambios. Client will be shut down. Do you want to proceed? - El cliente será cluasurado. Quieres proceder? + El cliente se cerrará. ¿Quiere proceder? Configuration options @@ -1376,7 +1372,7 @@ This change would require a client restart. - Este cambio requiere reinicio por parte del cliente. + Este cambio requiere reiniciar el cliente. The supplied proxy address is invalid. @@ -1411,7 +1407,7 @@ Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Total de transacciones que deben ser confirmadas, y que no cuentan con el balance gastable necesario + Total de transacciones que deben ser confirmadas y que no cuentan aun con el balance gastable necesario. Immature: @@ -1435,7 +1431,7 @@ Your current balance in watch-only addresses - Tu saldo actual en solo ver direcciones + Su saldo actual en direcciones solo-ver Spendable: @@ -1447,15 +1443,15 @@ Unconfirmed transactions to watch-only addresses - Transacciones no confirmadas para ver solo direcciones + Transacciones no confirmadas para direcciones ver-solo Mined balance in watch-only addresses that has not yet matured - Balance minero ver solo direcciones que aún no ha madurado + Balance minado en direcciones ver-solo que aún no ha madurado Current total balance in watch-only addresses - Saldo total actual en direcciones de solo reloj + Saldo total actual en direcciones de solo-ver @@ -1494,7 +1490,7 @@ If you are receiving this error you should request the merchant provide a BIP21 compatible URI. - Si está recibiendo este error debería pedir al comerciante que le proporcione una URI compatible con BIP21 + Si está recibiendo este error debería solicitar al comerciante que le proporcione una URI compatible con BIP21 Invalid payment address %1 @@ -1502,7 +1498,7 @@ URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - ¡URI no puede ser analizado! Esto puede deberse a una dirección de Bitcoin no válida o a parámetros de URI mal formados. + ¡No se puede interpretar la URI! Esto puede deberse a una dirección Bitcoin inválida o a parámetros de URI mal formados. Payment request file handling @@ -1538,11 +1534,11 @@ Requested payment amount of %1 is too small (considered dust). - El monto para la solicitud de pago de %1 es muy pequeño (considera el dust). + El monto para la solicitud de pago de %1 es muy pequeño (considerando el polvo). Refund from %1 - Reembolso de %1 + Devolución desde %1 Payment request %1 is too large (%2 bytes, allowed %3 bytes). @@ -1589,7 +1585,7 @@ Sent - Expedido + Enviado Received @@ -1826,7 +1822,7 @@ Sent - Expedido + Enviado &Peers @@ -1878,7 +1874,7 @@ Increase font size - Aumenta el tamaño de la fuente + Aumentar el tamaño de la fuente Services @@ -1910,7 +1906,7 @@ Ping Wait - Ping espera + Ping en espera Min Ping @@ -2002,7 +1998,7 @@ WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - ADVERTENCIA: los estafadores han estado activos, pidiendo a los usuarios que escriban comandos aquí, robando el contenido de su billetera. No use esta consola sin entender completamente las ramificaciones de un comando + ADVERTENCIA: los estafadores han estado activos pidiendo a los usuarios que escriban comandos aquí, robando el contenido de su monedero. No use esta consola sin entender completamente las ramificaciones de un comando. Network activity disabled @@ -2038,7 +2034,7 @@ Yes - Si + No @@ -2065,7 +2061,7 @@ An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud este abierta. Nota: El mensaje no se manda con el pago a travéz de la red de Bitcoin. + Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud esté abierta. Nota: El mensaje no se enviará con el pago a través de la red de Bitcoin. An optional label to associate with the new receiving address. @@ -2077,7 +2073,7 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. - Monto opcional a solicitar. Dejarlo vacion o en cero no solicita un monto especifico. + Monto opcional a solicitar. Dejarlo vacío o en cero para no solicitar un monto específico. &Create new receiving address @@ -2093,7 +2089,7 @@ Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. - Las direcciones segwit nativas (también conocidas como Bech32 o BIP-173) reducen las comisiones de transacción más adelante y ofrecen una mejor protección contra errores tipográficos, pero las billeteras antiguas no las admiten. Cuando no está marcada, se creará una dirección compatible con billeteras más antiguas. + Las direcciones segwit nativas (también conocidas como Bech32 o BIP-173) reducen las comisiones de transacción más adelante y ofrecen una mejor protección contra errores tipográficos, pero los monederos antiguos no las admiten. Cuando no está marcada, se creará una dirección compatible con monederos más antiguos. Generate native segwit (Bech32) address @@ -2113,7 +2109,7 @@ Remove the selected entries from the list - Borrar de la lista las direcciónes actualmente seleccionadas + Eliminar de la lista las direcciones actualmente seleccionadas. Remove @@ -2238,7 +2234,7 @@ Insufficient funds! - Fondos insuficientes! + ¡Fondos insuficientes! Quantity: @@ -2254,11 +2250,11 @@ Fee: - Tasa: + Comisión: After Fee: - Después de tasas: + Después de la comisión: Change: @@ -2266,7 +2262,7 @@ If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Al activarse, si la dirección esta vacía o es inválida, las monedas serán enviadas a una nueva dirección generada. + Al activarse, si la dirección de cambio está vacía o es inválida, las monedas serán enviadas a una nueva dirección generada. Custom change address @@ -2274,7 +2270,7 @@ Transaction Fee: - Comisión de transacción: + Comisión por transacción: Choose... @@ -2282,11 +2278,11 @@ Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. - Si utilizas la comisión por defecto, la transacción puede tardar varias horas o incluso días (o nunca) en confirmarse. Considera elegir la comisión de forma manual o espera hasta que se haya validado completamente la cadena. + Si utiliza la comisión por defecto, la transacción puede tardar varias horas o incluso días (o nunca) en confirmar. Considere elegir la comisión de forma manual o espere hasta que se haya validado completamente la cadena. Warning: Fee estimation is currently not possible. - Advertencia: En este momento no se puede estimar la cuota. + Advertencia: En este momento no se puede estimar la comisión. collapse fee-settings @@ -2306,7 +2302,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Hide - Esconder + Ocultar Recommended: @@ -2338,11 +2334,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Cuando hay menos volumen de transacciónes que espacio en los bloques, los mineros y los nodos de retransmisión pueden imponer una comisión mínima. Pagar solo esta comisión mínima está bien, pero tenga en cuenta que esto puede resultar en una transacción nunca confirmada una vez que haya más demanda de transacciones de Bitcoin de la que la red puede procesar. + Cuando hay menos volumen de transacciones que espacio en los bloques, los mineros y los nodos de retransmisión pueden imponer una comisión mínima. Pagar solo esta comisión mínima está bien, pero tenga en cuenta que esto puede resultar en una transacción nunca confirmada una vez que haya más demanda de transacciones de Bitcoin de la que la red puede procesar. A too low fee might result in a never confirming transaction (read the tooltip) - Una comisión muy pequeña puede derivar en una transacción que nunca será confirmada + Una comisión muy pequeña puede derivar en una transacción que nunca será confirmada (leer herramientas de información). Confirmation time target: @@ -2386,7 +2382,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Copy after fee - Copiar después de la tarifa + Copiar después de la comisión Copy bytes @@ -2426,15 +2422,15 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis You can increase the fee later (signals Replace-By-Fee, BIP-125). - Puede incrementar la comisión más tarde (usa Replace-By-Fee, BIP-125). + Puede incrementar la comisión más tarde (use Replace-By-Fee, BIP-125). Please, review your transaction. - Por favor, revisa tu transacción + Por favor, revise su transacción. Transaction fee - Comisión de transacción + Comisión por transacción. Not signalling Replace-By-Fee, BIP-125. @@ -2446,27 +2442,27 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis To review recipient list click "Show Details..." - Para ver la lista de receptores haga click en "Mostrar detalles" + Para ver la lista de receptores haga clic en "Mostrar detalles" Confirm send coins - Confirmar el envió de monedas + Confirmar el envío de monedas The recipient address is not valid. Please recheck. - La dirección de envío no es válida. Por favor revisala. + La dirección de envío no es válida. Por favor, revísela. The amount to pay must be larger than 0. - La cantidad por pagar tiene que ser mayor que 0. + La cantidad a pagar tiene que ser mayor que 0. The amount exceeds your balance. - El monto sobrepasa tu saldo. + El monto sobrepasa su saldo. The total exceeds your balance when the %1 transaction fee is included. - El total sobrepasa tu saldo cuando se incluyen %1 como comisión de envió. + El total sobrepasa su saldo cuando se incluyen %1 como comisión por transacción. Duplicate address found: addresses should only be used once each. @@ -2482,7 +2478,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis A fee higher than %1 is considered an absurdly high fee. - Una comisión mayor que %1 se considera como una comisión absurda-mente alta. + Una comisión mayor que %1 se considera una comisión absurdamente alta. Payment request expired. @@ -2506,7 +2502,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? - La dirección de cambio que ingresaste no es parte de tu monedero. Parte de tus fondos serán enviados a esta dirección. ¿Estás seguro? + La dirección de cambio seleccionada no es parte de su monedero. Parte de sus fondos serán enviados a esta dirección. ¿Está seguro? (no label) @@ -2517,11 +2513,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis SendCoinsEntry A&mount: - Ca&ntidad: + &Cantidad: Pay &To: - &Pagar a: + Pagar &a: &Label: @@ -2537,7 +2533,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis The Bitcoin address to send the payment to - Dirección Bitcoin a enviar el pago + Dirección Bitcoin a la que se enviará el pago Alt+A @@ -2545,7 +2541,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Paste address from clipboard - Pegar dirección desde portapapeles + Pegar dirección desde el portapapeles Alt+P @@ -2553,11 +2549,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Remove this entry - Eliminar esta transacción + Eliminar esta entrada. The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - La comisión será deducida de la cantidad que sea mandada. El destinatario recibirá menos bitcoins de la cantidad introducida en el campo Cantidad. Si hay varios destinatarios, la comisión será distribuida a partes iguales. + La comisión será deducida de la cantidad que sea enviada. El destinatario recibirá menos bitcoins que la cantidad introducida en el campo Cantidad. Si hay varios destinatarios seleccionados, la comisión será distribuida a partes iguales. S&ubtract fee from amount @@ -2565,7 +2561,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Use available balance - Usar balance disponible + Usar el balance disponible Message: @@ -2581,7 +2577,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Enter a label for this address to add it to the list of used addresses - Introduce una etiqueta para esta dirección para añadirla a la lista de direcciones utilizadas + Introduzca una etiqueta para esta dirección para añadirla a la lista de direcciones utilizadas A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. @@ -2597,25 +2593,25 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Enter a label for this address to add it to your address book - Introduce una etiqueta a esta dirección para añadirla a tu guía + Introduzca una etiqueta para esta dirección para añadirla a su libro de direcciones. SendConfirmationDialog Yes - Si + Sí. ShutdownWindow %1 is shutting down... - %1 se esta cerrando... + %1 se está cerrando... Do not shut down the computer until this window disappears. - No apague su computadora hasta que esta ventana desaparesca. + No apague el equipo hasta que esta ventana desaparezca. @@ -2638,7 +2634,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Choose previously used address - Escoger dirección previamente usada + Escoger direcciones previamente usadas Alt+A @@ -2646,7 +2642,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Paste address from clipboard - Pegar dirección desde portapapeles + Pegar dirección desde el portapapeles Alt+P @@ -2706,7 +2702,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Click "Sign Message" to generate signature - Click en "Firmar mensaje" para generar una firma + Clic en "Firmar mensaje" para generar una firma. The entered address is invalid. @@ -2714,7 +2710,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Please check the address and try again. - Por favor, revisa la dirección e intenta nuevamente. + Por favor, revise la dirección e inténtelo nuevamente. The entered address does not refer to a key. @@ -2742,11 +2738,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Please check the signature and try again. - Por favor compruebe la firma e intente de nuevo. + Por favor, compruebe la firma e inténtelo de nuevo. The signature did not match the message digest. - La firma no se combinó con el mensaje. + La firma no coincide con el resumen del mensaje. Message verification failed. @@ -2776,7 +2772,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis conflicted with a transaction with %1 confirmations - Hay un conflicto con la traducción de las confirmaciones %1 + Hay un conflicto con una transacción con %1 confirmaciones. 0/unconfirmed, %1 @@ -2784,11 +2780,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis in memory pool - en el equipo de memoria + en el "pool" de memoria not in memory pool - no en el equipo de memoria + no está en el "pool" de memoria abandoned @@ -2844,7 +2840,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Credit - Credito + Crédito matures in %n more block(s) @@ -2868,7 +2864,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Transaction fee - Comisión de transacción + Comisión por transacción. Net amount @@ -2896,7 +2892,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Output index - Indice de salida + Índice de salida + + + (Certificate was not verified) + (El certificado no ha sido verificado) Merchant @@ -3006,7 +3006,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Payment to yourself - Pago a ti mismo + Pago a usted mismo. Mined @@ -3014,7 +3014,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis watch-only - Solo observación + Solo-ver. (n/a) @@ -3026,7 +3026,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Transaction status. Hover over this field to show number of confirmations. - Estado de transacción. Pasa el ratón sobre este campo para ver el numero de confirmaciones. + Estado de transacción. Pase el ratón sobre este campo para ver el número de confirmaciones. Date and time that the transaction was received. @@ -3042,7 +3042,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis User-defined intent/purpose of the transaction. - Descripción de la transacción definido por el usuario. + Descripción de la transacción definida por el usuario. Amount removed from or added to balance. @@ -3089,7 +3089,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis To yourself - A ti mismo + A usted mismo Mined @@ -3113,7 +3113,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Increase transaction fee - Incrementar cuota de transacción + Incrementar la comisión por transacción Copy address @@ -3193,7 +3193,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Exporting Successful - Exportación exitosa + Exportación finalizada The transaction history was successfully saved to %1. @@ -3223,11 +3223,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Are you sure you wish to close the wallet <i>%1</i>? - ¿Está seguro que desea cerra el monedero <i>%1</i>? + ¿Está seguro que desea cerrar el monedero <i>%1</i>? Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. - Cerrar la monedero durante demasiado tiempo puede causar resincronizado de toda la cadena si la poda es habilitado. + Cerrar el monedero durante demasiado tiempo puede causar la resincronización de toda la cadena si la poda es habilitada. @@ -3245,15 +3245,15 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Fee bump error - Error de incremento de cuota + Error de incremento de comisión Increasing transaction fee failed - Ha fallado el incremento de la cuota de transacción. + Ha fallado el incremento de la comisión por transacción. Do you want to increase the fee? - ¿Desea incrementar la cuota? + ¿Desea incrementar la comisión? Current fee: @@ -3331,19 +3331,19 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Prune configured below the minimum of %d MiB. Please use a higher number. - La Poda se ha configurado por debajo del mínimo de %d MiB. Por favor utiliza un valor mas alto. + La Poda se ha configurado por debajo del mínimo de %d MiB. Por favor, utilice un valor mas alto. Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) - Poda: la ultima sincronizacion del monedero sobrepasa los datos podados. Necesitas reindexar con -reindex (o descargar la cadena de bloques de nuevo en el caso de un nodo podado) + Poda: la última sincronización del monedero sobrepasa los datos podados. Necesita reindexar con -reindex (o descargar la cadena de bloques de nuevo en el caso de un nodo podado) Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. - No es es posible re-escanear en modo prune. Debes usar -reindex el cual descargara toda la blockchain de nuevo. + No es posible re-escanear en modo prune. Debe usar -reindex el cual descargara toda la blockchain de nuevo. Error: A fatal internal error occurred, see debug.log for details - Error: Un error interno fatal ha ocurrido, ver debug.log para detalles + Error: Un error interno fatal ha ocurrido. Ver debug.log para detalles Pruning blockstore... @@ -3359,7 +3359,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Can't generate a change-address key. No keys in the internal keypool and can't generate any keys. - No se puede generar una clave de cambio-de-dirección. No hay claves en el cojunto de claves internas y no se pueden generar claves. + No se puede generar una clave de cambio-de-dirección. No hay claves en el conjunto de claves internas y no se pueden generar claves. Cannot obtain a lock on data directory %s. %s is probably already running. @@ -3371,23 +3371,23 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Error leyendo %s!. Todas las claves se han leido correctamente, pero los datos de transacciones o la libreta de direcciones pueden faltar o ser incorrectos. + Error leyendo %s!. Todas las claves se han leído correctamente, pero los datos de la transacción o el libro de direcciones pueden faltar o ser incorrectos. Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. - Por favor, compruebe si la fecha y hora en su computadora son correctas! Si su reloj esta mal, %s no trabajara correctamente. + ¡Por favor, compruebe si la fecha y hora en su computadora son correctas! Si su reloj está mal, %s no trabajará correctamente. Please contribute if you find %s useful. Visit %s for further information about the software. - Contribuya si encuentra %s de utilidad. Visite %s para mas información acerca del programa. + Contribuya si encuentra %s de utilidad. Visite %s para más información acerca del programa. The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct - La base de datos de bloques contiene un bloque que parece ser del futuro. Esto puede ser porque la fecha y hora de tu ordenador están mal ajustados. Reconstruye la base de datos de bloques solo si estas seguro de que la fecha y hora de tu ordenador estan ajustados correctamente. + La base de datos de bloques contiene un bloque que parece ser del futuro. Esto puede ser porque la fecha y hora de su ordenador están mal ajustados. Reconstruya la base de datos de bloques solo si está seguro de que la fecha y hora de su ordenador están ajustadas correctamente. This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Esta es una versión de prueba prelanzada - utilícelo a su propio riesgo - no lo utilice para aplicaciones de minería o comerciales + Esta es una versión de prueba prelanzada - utilícela bajo su propio riesgo - no la utilice para aplicaciones de minería o comerciales This is the transaction fee you may discard if change is smaller than dust at this level @@ -3407,7 +3407,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Advertencia: ¡No parecemos estar del todo con nuestros pares! Puede que necesite actualizarse, o puede que otros nodos necesiten actualizarse. + Advertencia: ¡No parecemos concordar del todo con nuestros pares! Puede que necesite actualizarse, o puede que otros nodos necesiten actualizarse. %d of last 100 blocks have unexpected version @@ -3427,7 +3427,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Change index out of range - Cambio de indice fuera de rango + Cambio de índice fuera de rango Config setting for %s only applied on %s network when in [%s] section. @@ -3443,7 +3443,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Do you want to rebuild the block database now? - ¿Quieres reconstruir la base de datos de bloques ahora? + ¿Quiere reconstruir la base de datos de bloques ahora? Error initializing block database @@ -3459,7 +3459,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Error loading %s: Private keys can only be disabled during creation - Error cargando %s: las claves privadas solo pueden ser deshabilitado durante la creación + Error cargando %s: Las claves privadas solo pueden ser deshabilitadas durante la creación Error loading %s: Wallet corrupted @@ -3467,7 +3467,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Error loading %s: Wallet requires newer version of %s - Error cargando %s: Monedero requiere una versión mas reciente de %s + Error cargando %s: El monedero requiere una versión más reciente de %s Error loading block database @@ -3491,7 +3491,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Incorrect or no genesis block found. Wrong datadir for network? - Incorrecto o bloque de génesis no encontrado. Datadir equivocada para la red? + Incorrecto o bloque de génesis no encontrado. ¿Datadir equivocada para la red? Initialization sanity check failed. %s is shutting down. @@ -3503,15 +3503,15 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Invalid amount for -%s=<amount>: '%s' - Monto invalido para -%s=<amount>: '%s' + Monto inválido para -%s=<amount>: '%s' Invalid amount for -discardfee=<amount>: '%s' - Monto invalido para -discardfee=<amount>: '%s' + Monto inválido para -discardfee=<amount>: '%s' Invalid amount for -fallbackfee=<amount>: '%s' - Monto invalido para -fallbackfee=<amount>: '%s' + Monto inválido para -fallbackfee=<amount>: '%s' Specified blocks directory "%s" does not exist. @@ -3547,7 +3547,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Prune cannot be configured with a negative value. - Pode no se puede configurar con un valor negativo. + Prune no se puede configurar con un valor negativo. Prune mode is incompatible with -txindex. @@ -3563,15 +3563,15 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis The source code is available from %s. - El código fuente esta disponible desde %s. + El código fuente está disponible desde %s. Transaction fee and change calculation failed - El cálculo de la comisión de transacción y del cambio han fallado + El cálculo de la comisión por transacción y del cambio han fallado Unable to bind to %s on this computer. %s is probably already running. - No se ha podido conectar con %s en este equipo. %s es posible que este todavia en ejecución. + No se ha podido conectar con %s en este equipo. %s es posible que esté todavía en ejecución. Unable to generate keys @@ -3599,7 +3599,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Error: Listening for incoming connections failed (listen returned error %s) - Error: la escucha para conexiones entrantes falló (la escucha regresó el error %s) + Error: La escucha para conexiones entrantes falló (la escucha devolvió el error %s) Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) @@ -3607,15 +3607,15 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis The transaction amount is too small to send after the fee has been deducted - Monto de transacción muy pequeña luego de la deducción por comisión + Monto de transacción muy pequeño después de la deducción de la comisión You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain - Necesitas reconstruir la base de datos utilizando -reindex para volver al modo sin recorte. Esto volverá a descargar toda la cadena de bloques + Necesita reconstruir la base de datos utilizando -reindex para volver al modo sin recorte. Esto volverá a descargar toda la cadena de bloques Error reading from database, shutting down. - Error al leer la base de datos, cerrando aplicación. + Error al leer la base de datos, cerrando la aplicación. Error upgrading chainstate database @@ -3659,7 +3659,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Signing transaction failed - Transacción falló + La transacción falló Specified -walletdir "%s" does not exist @@ -3681,7 +3681,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis The transaction amount is too small to pay the fee - El monto a transferir es muy pequeño para pagar el impuesto + El monto de la transacción es muy pequeño para pagar la comisión This is experimental software. @@ -3689,7 +3689,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Transaction amount too small - Monto de la transacción muy pequeño + El monto de la transacción es demasiado pequeño para pagar la comisión. Transaction too large @@ -3713,7 +3713,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Verifying wallet(s)... - Verificando billetera(s)... + Verificando monedero... Warning: unknown new rules activated (versionbit %i) @@ -3725,11 +3725,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis -maxtxfee is set very high! Fees this large could be paid on a single transaction. - -maxtxfee tiene un valor muy elevado! Comisiones muy grandes podrían ser pagadas en una única transacción. + -maxtxfee tiene un valor muy elevado. Comisiones muy grandes podrían ser pagadas en una única transacción. This is the transaction fee you may pay when fee estimates are not available. - Impuesto por transacción que pagarás cuando la estimación de impuesto no esté disponible. + Esta es la comisión por transacción que deberá pagar cuando la estimación de comisión no esté disponible. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. @@ -3741,11 +3741,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. - Advertencia: Archivo de monedero corrupto, datos recuperados! Original %s guardado como %s en %s; si su balance de transacciones es incorrecto, debe restaurar desde una copia de seguridad. + Advertencia: ¡Archivo de monedero corrupto, datos recuperados! Original %s guardado como %s en %s; si su balance de transacciones es incorrecto, debe restaurar desde una copia de seguridad. %s is set very high! - ¡%s esta configurado muy alto! + ¡%s está configurado muy alto! Error loading wallet %s. Duplicate -wallet filename specified. @@ -3757,7 +3757,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis The wallet will avoid paying less than the minimum relay fee. - La billetera no permitirá pagar menos que la fee de transmisión mínima (relay fee). + El monedero no permitirá pagar menos que la comisión mínima para retransmitir llamada relay fee. This is the minimum transaction fee you pay on every transaction. @@ -3765,11 +3765,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis This is the transaction fee you will pay if you send a transaction. - Esta es la tarifa a pagar si realizas una transacción. + Esta es la comisión por transacción a pagar si realiza una transacción. Transaction amounts must not be negative - Los montos de la transacción no debe ser negativo + Los montos de la transacción no deben ser negativos Transaction has too long of a mempool chain @@ -3797,7 +3797,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Warning: Private keys detected in wallet {%s} with disabled private keys - Advertencia: claves privadas detectadas en el monedero {%s} con claves privadas deshabilitadas + Advertencia: Claves privadas detectadas en el monedero {%s} con clave privada deshabilitada Cannot write to data directory '%s'; check permissions. @@ -3821,7 +3821,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Done loading - Generado pero no aceptado + Se terminó de cargar \ No newline at end of file diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/bitcoin_es_MX.ts index 5b19c0b5f7..5ff1b4dec8 100644 --- a/src/qt/locale/bitcoin_es_MX.ts +++ b/src/qt/locale/bitcoin_es_MX.ts @@ -305,6 +305,11 @@ Network activity disabled. Actividad de red deshabilitada. + + Click to enable network activity again. +   +Haga clic para habilitar la actividad de red nuevamente. + Syncing Headers (%1%)... Sincronizar encabezados (%1%) ... @@ -365,6 +370,10 @@ Sign messages with your Bitcoin addresses to prove you own them Firme mensajes con sus direcciones de Bitcoin para demostrar que los posee + + Verify messages to ensure they were signed with specified Bitcoin addresses + Verifique los mensajes para asegurarse de que se firmaron con direcciones de Bitcoin especificadas. + &File &Archivo @@ -381,6 +390,12 @@ Tabs toolbar Pestañas + + Request payments (generates QR codes and bitcoin: URIs) +   +Solicitar pagos (genera códigos QR y bitcoin: URI) +  + &Command-line options opciones de la &Linea de comandos diff --git a/src/qt/locale/bitcoin_es_VE.ts b/src/qt/locale/bitcoin_es_VE.ts index 51ca9fdf65..b347606074 100644 --- a/src/qt/locale/bitcoin_es_VE.ts +++ b/src/qt/locale/bitcoin_es_VE.ts @@ -171,6 +171,10 @@ Wallet encrypted Monedero cifrado + + Wallet encryption failed + Encriptado de monedero fallido + BanTableModel @@ -357,6 +361,14 @@ Up to date Actualizado + + Close wallet + Cerrar monedero + + + No wallets available + Monederos no disponibles + &Window &Ventana @@ -452,6 +464,14 @@ Confirmed Confirmado + + Copy address + Copiar dirección + + + Copy amount + Copiar cantidad + Copy quantity Copiar cantidad @@ -959,7 +979,15 @@ Remove Eliminar - + + Copy message + Copiar mensaje + + + Copy amount + Copiar cantidad + + ReceiveRequestDialog @@ -1104,6 +1132,10 @@ Copy quantity Copiar cantidad + + Copy amount + Copiar cantidad + Copy fee Copiar comisión @@ -1307,6 +1339,14 @@ TransactionView + + Copy address + Copiar dirección + + + Copy amount + Copiar cantidad + Comma separated file (*.csv) Archivo de columnas separadas por coma (*.csv) @@ -1337,6 +1377,10 @@ WalletController + + Close wallet + Cerrar monedero + WalletFrame diff --git a/src/qt/locale/bitcoin_eu.ts b/src/qt/locale/bitcoin_eu.ts index b998af90a8..73ea345e32 100644 --- a/src/qt/locale/bitcoin_eu.ts +++ b/src/qt/locale/bitcoin_eu.ts @@ -235,7 +235,11 @@ Wallet passphrase was successfully changed. Diruzorroaren pasahitza arrakastaz aldatu da. - + + Warning: The Caps Lock key is on! + Abisua: Mayuskulak blokeatuak dituzu! + + BanTableModel @@ -309,10 +313,18 @@ &Encrypt Wallet... Diruzorroa &enkriptatu... + + &Backup Wallet... + Diruzorroaren kopia bat gorde + &Change Passphrase... Pasahitza &aldatu... + + Open &URI... + &URLa zabaldu + Create Wallet... Diruzorroa sortu... @@ -325,6 +337,26 @@ Wallet: Diruzorroa: + + Click to disable network activity. + Sarea desaktibatzeko sakatu + + + Network activity disabled. + Sarea desaktibatua + + + Click to enable network activity again. + Sarea berriro aktibatzeko sakatu + + + Syncing Headers (%1%)... + Burukoak sinkronizatzen (%1)... + + + Reindexing blocks on disk... + Blokeak diskoan berriro zerrendatzen... + Change the passphrase used for wallet encryption Diruzorroa enkriptatzeko erabilitako pasahitza aldatu diff --git a/src/qt/locale/bitcoin_fa_IR.ts b/src/qt/locale/bitcoin_fa_IR.ts deleted file mode 100644 index 606adbfd93..0000000000 --- a/src/qt/locale/bitcoin_fa_IR.ts +++ /dev/null @@ -1,173 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - کلیک راست برای ویرایش نشانی یا برچسب - - - Create a new address - ساختن یک ادرس جدید - - - &New - و جدید - - - Copy the currently selected address to the system clipboard - کپی کردن آدرس فعلی انتخاب شده در کلیپ بورد سیستم - - - &Copy - و کپی - - - Delete the currently selected address from the list - حذف آدرس انتخاب‌شده فعلی از فهرست - - - Enter address or label to search - آدرس یا برچسب را برای جستجو وارد کنید - - - Export the data in the current tab to a file - داده های موجود در برگه فعلی را به یک فایل صادر کنید - - - &Export - صادر کردن - - - &Delete - و حذف کردن - - - - AddressTableModel - - - AskPassphraseDialog - - - BanTableModel - - - BitcoinGUI - - - CoinControlDialog - - - CreateWalletActivity - - - CreateWalletDialog - - - EditAddressDialog - - - FreespaceChecker - - - HelpMessageDialog - - - Intro - - - ModalOverlay - - - OpenURIDialog - - - OpenWalletActivity - - - OptionsDialog - - - OverviewPage - - - PaymentServer - - - PeerTableModel - - - QObject - - - QRImageWidget - - - RPCConsole - - - ReceiveCoinsDialog - - - ReceiveRequestDialog - - - RecentRequestsTableModel - - - SendCoinsDialog - - - SendCoinsEntry - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - - TrafficGraphWidget - - - TransactionDesc - - - TransactionDescDialog - - - TransactionTableModel - - - TransactionView - - - UnitDisplayStatusBarControl - - - WalletController - - - WalletFrame - - - WalletModel - - - WalletView - - &Export - صادر کردن - - - Export the data in the current tab to a file - داده های موجود در برگه فعلی را به یک فایل صادر کنید - - - - bitcoin-core - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index ec277e4eae..493700455d 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -67,11 +67,11 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Voici vos adresses Bitcoin pour envoyer des paiements. Vérifiez toujours le montant et l’adresse du destinataire avant d’envoyer des pièces. + Ce sont vos adresses Bitcoin pour envoyer des paiements. Vérifiez toujours le montant et l’adresse du destinataire avant d’envoyer des pièces. These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Ce sont vos adresses Bitcoin pour recevoir des paiements. Utilisez le bouton 'Créer nouvelle adresse de réception' dans l'onglet Recevoir pour créer de nouvelles adresses. + Ce sont vos adresses Bitcoin pour recevoir des paiements. Utilisez le bouton 'Créer une nouvelle adresse de réception' dans l’onglet Recevoir afin de créer de nouvelles adresses. &Copy Address @@ -137,7 +137,7 @@ Show passphrase - Afficher phrase secrète + Afficher la phrase de passe Encrypt wallet @@ -181,15 +181,15 @@ Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Saisir la nouvelle phrase secrète pour le porte-monnaie.<br/>Veuillez utiliser une phrase secrète de <b>dix caractères aléatoires ou plus</b>, ou <b>huit mots ou plus</b>. + Saisissez la nouvelle phrase de passe du porte-monnaie.<br/>Veuillez utiliser une phrase de passe composée de <b>dix caractères aléatoires ou plus</b>, ou de <b>huit mots ou plus</b>. Enter the old passphrase and new passphrase for the wallet. - Saisir l'ancienne phrase secrète et la nouvelle phrase secrète pour le porte-monnaie. + Saisir l’ancienne puis la nouvelle phrase de passe du porte-monnaie. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Souvenez-vous que chiffrer votre porte-monnaie ne peut pas complètement protéger vos bitcoins contre le vol par des programmes malveillants infectant votre ordinateur. + N’oubliez pas que le chiffrement de votre porte-monnaie ne peut pas protéger entièrement vos bitcoins contre le vol par des programmes malveillants qui infecteraient votre ordinateur. Wallet to be encrypted @@ -197,11 +197,11 @@ Your wallet is about to be encrypted. - Votre porte-monnaie est sur le point d'être chiffré. + Votre porte-monnaie est sur le point d’être chiffré. Your wallet is now encrypted. - Votre porte-monnaie est maintenant chiffré. + Votre porte-monnaie est désormais chiffré. IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -255,7 +255,7 @@ BitcoinGUI Sign &message... - Signer un &message... + Signer un &message… Synchronizing with network... @@ -311,23 +311,23 @@ &Encrypt Wallet... - &Chiffrer le porte-monnaie... + &Chiffrer le porte-monnaie… &Backup Wallet... - Sauvegarder le &porte-monnaie... + Sauvegarder le &porte-monnaie… &Change Passphrase... - &Changer la phrase de passe... + &Changer la phrase de passe… Open &URI... - Ouvrir une &URI... + Ouvrir une &URI… Create Wallet... - Créer un porte-monnaie... + Créer un porte-monnaie… Create a new wallet @@ -351,11 +351,11 @@ Syncing Headers (%1%)... - Synchronisation des en-têtes (%1)... + Synchronisation des en-têtes (%1)… Reindexing blocks on disk... - Réindexation des blocs sur le disque... + Réindexation des blocs sur le disque… Proxy is <b>enabled</b>: %1 @@ -383,7 +383,7 @@ &Verify message... - &Vérifier un message... + &Vérifier un message… &Send @@ -455,11 +455,11 @@ Indexing blocks on disk... - Indexation des blocs sur le disque... + Indexation des blocs sur le disque… Processing blocks on disk... - Traitement des blocs sur le disque... + Traitement des blocs sur le disque… Processed %n block(s) of transaction history. @@ -551,7 +551,7 @@ Connecting to peers... - Connexion aux pairs... + Connexion aux pairs… Catching up... @@ -559,11 +559,11 @@ Error: %1 - Erreur : %1 + Erreur : %1 Warning: %1 - Avertissement : %1 + Avertissement : %1 Date: %1 @@ -789,11 +789,11 @@ CreateWalletActivity Creating Wallet <b>%1</b>... - Création du porte-monnaie <b>%1</b>... + Création du porte-monnaie <b>%1</b>… Create wallet failed - Création du porte-monnaie échouée + Échec de création du porte-monnaie Create wallet warning @@ -804,7 +804,7 @@ CreateWalletDialog Create Wallet - Créer porte-monnaie + Créer un porte-monnaie Wallet Name @@ -812,7 +812,7 @@ Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. - Chiffrer le porte-monnaie. Le porte-monnaie sera chiffré avec une phrase secrète de votre choix. + Chiffrer le porte-monnaie. Le porte-monnaie sera chiffré avec une phrase de passe de votre choix. Encrypt Wallet @@ -820,19 +820,19 @@ Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. - Désactiver les clés privées pour ce porte-monnaie. Les portes-monnaie avec des clés privées désactivées n'auront pas de clés privées et ne peuvent pas avoir une graine HD ou des clés privées importées. Ceci est idéal pour un porte-monnaie + Désactiver les clés privées pour ce porte-monnaie. Les porte-monnaie pour lesquels les clés privées sont désactivées n’auront aucune clé privée et ne pourront ni avoir de graine HD ni de clés privées importées. Cela est idéal pour les porte-monnaie juste-regarder. Disable Private Keys - Désactiver Clés Privées + Désactiver les clés privées Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. - Créer un porte-monnaie vide. Les porte-monnaie vides n'ont pas de clés privées ou scripts initialement. Des clés privées et adresses peuvent être importées ou une graine HD peut être définie ultérieurement. + Créer un porte-monnaie vide. Les porte-monnaie vides n’ont initialement ni clé privée ni script. Ultérieurement, des clés privées et des adresses peuvent être importées ou une graine HD peut être définie. Make Blank Wallet - Créer Porte-Monnaie Vide + Créer un porte-monnaie vide Create @@ -956,7 +956,7 @@ Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. - Revenir sur ce paramètre requiert de re-télécharger l'entier de la chaîne de blocs. Il est plus rapide de télécharger la chaîne complète et de l'élaguer plus tard. Désactive certaines fonctionnalités avancées. + Rétablir ce paramètre à sa valeur antérieure exige de retélécharger la chaîne de blocs dans son intégralité. Il est plus rapide de télécharger la chaîne complète dans un premier temps et de l’élaguer ultérieurement. Désactive certaines fonctions avancées. This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. @@ -980,7 +980,7 @@ Discard blocks after verification, except most recent %1 GB (prune) - Jeter les blocs après vérification, à l'exception des %1 Go les plus récents (élagage) + Jeter les blocs après vérification, à l’exception des %1 Go les plus récents (élagage) At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -1016,7 +1016,7 @@ (%n GB needed for full chain) - (%n Go nécessaire pour la chaîne complète)(%n Go nécessaires pour la chaîne complète) + (%n Go nécessaire pour la chaîne complète)(%n Go nécessaires pour la chaîne complète) @@ -1039,7 +1039,7 @@ Unknown... - Inconnu... + Inconnu… Last block time @@ -1055,7 +1055,7 @@ calculating... - calcul en cours... + calcul en cours… Estimated time left until synced @@ -1101,7 +1101,7 @@ Open wallet warning - Avertissement d'ouverture du porte-monnaie + Avertissement d’ouverture du porte-monnaie default wallet @@ -1188,7 +1188,7 @@ Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher. - Désactive certaines fonctions avancées, mais tous les blocs seront quand même validés entièrement. Changer ce paramètre à sa valeur antérieure exige de retélécharger la chaîne de blocs dans son intégralité. L’espace disque utilisé pourrait être un peu plus élevé. + Désactive certaines fonctions avancées, mais tous les blocs seront quand même validés entièrement. Rétablir ce paramètre à sa valeur antérieure exige de retélécharger la chaîne de blocs dans son intégralité. L’espace disque utilisé pourrait être un peu plus élevé. Prune &block storage to @@ -1200,7 +1200,7 @@ Reverting this setting requires re-downloading the entire blockchain. - Changer ce paramètre à sa valeur antérieure exige de retélécharger la chaîne de blocs dans son intégralité. + Rétablir ce paramètre à sa valeur antérieure exige de retélécharger la chaîne de blocs dans son intégralité. MiB @@ -1494,11 +1494,11 @@ Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. - En raison de faille de sécurité généralisées dans BIP70 il est vivement recommandé que les instructions des marchands pour changer de porte-monnaie soient ignorées. + En raison de failles de sécurité fréquentes dans BIP70, il est vivement recommandé d’ignorer les instructions de marchands qui demanderaient de changer de porte-monnaie. If you are receiving this error you should request the merchant provide a BIP21 compatible URI. - Si vous recevez cette erreur vous devriez demander au marchand de vous fournir un URI compatible avec BIP21. + Si vous recevez cette erreur, vous devriez demander au marchand de vous fournir une URI compatible avec BIP21. Invalid payment address %1 @@ -1692,11 +1692,11 @@ Error: %1 - Erreur : %1 + Erreur : %1 %1 didn't yet exit safely... - %1 ne s’est pas encore arrêté en toute sécurité... + %1 ne s’est pas encore arrêté en toute sécurité… unknown @@ -1707,7 +1707,7 @@ QRImageWidget &Save Image... - &Enregistrer l’image... + &Enregistrer l’image… &Copy Image @@ -1723,7 +1723,7 @@ QR code support not available. - Support du code QR non disponible. + La prise en charge des codes QR n’est pas proposée. Save QR Code @@ -2085,7 +2085,7 @@ &Create new receiving address - &Créer nouvelle adresse de réception + &Créer une nouvelle adresse de réception Clear all fields of the form. @@ -2156,7 +2156,7 @@ &Save Image... - &Enregistrer l’image... + &Enregistrer l’image… Request payment to %1 @@ -2234,7 +2234,7 @@ Inputs... - Entrants... + Entrants… automatically selected @@ -2282,7 +2282,7 @@ Choose... - Choisir... + Choisir… Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. @@ -2322,7 +2322,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par (Smart fee not initialized yet. This usually takes a few blocks...) - (Les frais intelligents ne sont pas encore initialisés. Cela prend habituellement quelques blocs...) + (Les frais intelligents ne sont pas encore initialisés. Cela prend habituellement quelques blocs…) Send to multiple recipients at once @@ -2450,7 +2450,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par To review recipient list click "Show Details..." - Pour passer en revue la liste des destinataires cliquer sur "Afficher détails..." + Pour réviser la liste des destinataires, cliquez sur « Afficher les détails de la transaction… » Confirm send coins @@ -2615,7 +2615,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par ShutdownWindow %1 is shutting down... - Arrêt de %1... + Arrêt de %1… Do not shut down the computer until this window disappears. @@ -2902,6 +2902,10 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Output index Index des sorties + + (Certificate was not verified) + (Le certificat n’a pas été vérifié) + Merchant Marchand @@ -3227,7 +3231,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Are you sure you wish to close the wallet <i>%1</i>? - Voulez-vous vraiment fermer le porte-monnaie <i>%1</i>? + Voulez-vous vraiment fermer le porte-monnaie <i>%1</i> ? Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. @@ -3351,7 +3355,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Pruning blockstore... - Élagage du magasin de blocs... + Élagage du magasin de blocs… Unable to start HTTP server. See debug log for details. @@ -3491,7 +3495,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Importing... - Importation... + Importation… Incorrect or no genesis block found. Wrong datadir for network? @@ -3503,7 +3507,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Invalid P2P permission: '%s' - Permission P2P invalide : '%s' + Permission P2P invalide : '%s' Invalid amount for -%s=<amount>: '%s' @@ -3523,11 +3527,11 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Unknown address type '%s' - Type d’adresse inconnu « %s » + Type d’adresse inconnu '%s' Unknown change type '%s' - Type de monnaie inconnu « %s » + Type de monnaie inconnu '%s' Upgrading txindex database @@ -3535,15 +3539,15 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Loading P2P addresses... - Chargement des adresses P2P... + Chargement des adresses P2P… Error: Disk space is too low! - Erreur : L’espace disque est trop faible ! + Erreur : L’espace disque est trop faible ! Loading banlist... - Chargement de la liste d’interdiction... + Chargement de la liste d’interdiction… Not enough file descriptors available. @@ -3559,11 +3563,11 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Replaying blocks... - Relecture des blocs... + Relecture des blocs… Rewinding blocks... - Rebobinage des blocs... + Rebobinage des blocs… The source code is available from %s. @@ -3595,7 +3599,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Verifying blocks... - Vérification des blocs... + Vérification des blocs… Wallet needed to be rewritten: restart %s to complete @@ -3651,7 +3655,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Prune mode is incompatible with -blockfilterindex. - Le mode élagage est incompatible avec -blockfilterindex. + Le mode élagage n’est pas compatible avec -blockfilterindex. Reducing -maxconnections from %d to %d, because of system limitations. @@ -3717,7 +3721,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Verifying wallet(s)... - Vérification des porte-monnaie... + Vérification des porte-monnaie… Warning: unknown new rules activated (versionbit %i) @@ -3725,7 +3729,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Zapping all transactions from wallet... - Supprimer toutes les transactions du porte-monnaie... + Supprimer toutes les transactions du porte-monnaie… -maxtxfee is set very high! Fees this large could be paid on a single transaction. @@ -3757,7 +3761,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Starting network threads... - Démarrage des processus réseau... + Démarrage des processus réseau… The wallet will avoid paying less than the minimum relay fee. diff --git a/src/qt/locale/bitcoin_gl.ts b/src/qt/locale/bitcoin_gl.ts deleted file mode 100644 index 851b111fd6..0000000000 --- a/src/qt/locale/bitcoin_gl.ts +++ /dev/null @@ -1,1349 +0,0 @@ - - - AddressBookPage - - Create a new address - Crear un novo enderezo - - - &New - &Novo - - - Copy the currently selected address to the system clipboard - Copiar o enderezo seleccionado ao cartafol - - - &Copy - &Copiar - - - C&lose - &Pechar - - - Delete the currently selected address from the list - Borrar o enderezo actualmente seleccionado da listaxe - - - Enter address or label to search - Introduce enderezo ou etiqueta para buscar - - - Export the data in the current tab to a file - Exportar os datos da pestaña actual a un arquivo. - - - &Export - &Exportar - - - &Delete - &Borrar - - - Sending addresses - Enviando enderezos - - - Receiving addresses - Recibindo enderezos - - - &Copy Address - &Copiar Enderezo - - - &Edit - &Editar - - - Export Address List - Exportar Lista de Enderezos - - - Comma separated file (*.csv) - Arquivo separado por comas (*.csv) - - - - AddressTableModel - - Label - Etiqueta - - - Address - Enderezo - - - - AskPassphraseDialog - - Passphrase Dialog - Diálogo de Contrasinal - - - Enter passphrase - Introduce contrasinal - - - New passphrase - Novo contrasinal - - - Repeat new passphrase - Repite novo contrasinal - - - Unlock wallet - Desbloquear moedeiro - - - Decrypt wallet - Desencriptar moedeiro - - - Wallet encrypted - Moedeiro encriptado - - - Warning: The Caps Lock key is on! - Aviso: O Bloqueo de Maiúsculas está activo! - - - - BanTableModel - - - BitcoinGUI - - Sign &message... - &Asinar mensaxe... - - - Synchronizing with network... - Sincronizando coa rede... - - - &Overview - &Vista xeral - - - Show general overview of wallet - Amosar vista xeral do moedeiro - - - &Transactions - &Transaccións - - - Browse transaction history - Navegar historial de transaccións - - - E&xit - &Saír - - - Quit application - Saír da aplicación - - - About &Qt - Acerca de &Qt - - - Show information about Qt - Amosar información acerca de Qt - - - &Options... - &Opcións... - - - &Encrypt Wallet... - &Encriptar Moedeiro... - - - &Backup Wallet... - Copia de &Seguridade do Moedeiro... - - - &Change Passphrase... - &Cambiar contrasinal... - - - Wallet: - Moedeiro: - - - Reindexing blocks on disk... - Reindexando bloques no disco... - - - Send coins to a Bitcoin address - Enviar moedas a unha dirección Bitcoin - - - Backup wallet to another location - Facer copia de seguridade do moedeiro noutra localización - - - Change the passphrase used for wallet encryption - Cambiar o contrasinal empregado para a encriptación do moedeiro - - - &Debug window - Xanela de &Depuración - - - Open debugging and diagnostic console - Abrir consola de depuración e diagnóstico - - - &Verify message... - &Verificar mensaxe... - - - &Send - &Enviar - - - &Receive - &Recibir - - - &Show / Hide - &Amosar/Agachar - - - Show or hide the main Window - Amosar ou agachar a xanela principal - - - Encrypt the private keys that belong to your wallet - Encriptar as claves privadas que pertencen ao teu moedeiro - - - Sign messages with your Bitcoin addresses to prove you own them - Asina mensaxes cos teus enderezos Bitcoin para probar que che pertencen - - - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifica mensaxes para asegurar que foron asinados con enderezos Bitcoin específicos. - - - &File - &Arquivo - - - &Settings - Axus&tes - - - &Help - A&xuda - - - Tabs toolbar - Barra de ferramentas - - - Request payments (generates QR codes and bitcoin: URIs) - Solicitar pagamentos (xera códigos QR e bitcoin: URIs) - - - Show the list of used sending addresses and labels - Amosar a listaxe de enderezos e etiquetas usadas para enviar - - - Show the list of used receiving addresses and labels - Amosar a listaxe de etiquetas e enderezos usadas para recibir - - - Open a bitcoin: URI or payment request - Abrir un bitcoin: URI ou solicitude de pagamento - - - &Command-line options - Opcións da liña de comandos - - - %1 behind - %1 detrás - - - Last received block was generated %1 ago. - O último bloque recibido foi xerado fai %1. - - - Transactions after this will not yet be visible. - As transaccións despois desta non serán aínda visibles. - - - Error - Erro - - - Warning - Aviso - - - Information - Información - - - Up to date - Actualizado - - - Open Wallet - Abrir Moedeiro - - - Open a wallet - Abrir un moedeiro - - - Close Wallet... - Pechar Moedeiro... - - - Close wallet - Pechar moedeiro - - - default wallet - moedeiro por defecto - - - No wallets available - Non hai moedeiros dispoñíbeis - - - &Window - &Xanela - - - Minimize - Minimizar - - - Zoom - Zoom - - - Main Window - Xanela Principal - - - %1 client - %1 cliente - - - Catching up... - Poñendo ao día... - - - Sent transaction - Transacción enviada - - - Incoming transaction - Transacción entrante - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - O moedeiro está <b>encriptado</b> e actualmente <b>desbloqueado</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - O moedeiro está <b>encriptado</b> e actualmente <b>bloqueado</b> - - - - CoinControlDialog - - Quantity: - Cantidade: - - - Bytes: - Bytes: - - - Amount: - Importe: - - - Fee: - Taxa: - - - Change: - Cambiar: - - - (un)select all - (des)selecciona todo - - - Tree mode - Modo árbore - - - List mode - Modo lista - - - Amount - Cantidade - - - Date - Data - - - Confirmations - Confirmacións - - - Confirmed - Confirmado - - - yes - si - - - no - non - - - - CreateWalletActivity - - - CreateWalletDialog - - - EditAddressDialog - - Edit Address - Modificar Enderezo - - - &Label - &Etiqueta - - - The label associated with this address list entry - A etiqueta asociada con esta entrada da listaxe de enderezos - - - The address associated with this address list entry. This can only be modified for sending addresses. - O enderezo asociado con esta entrada na listaxe de enderezos. Esta so pode ser modificada por enderezos para enviar. - - - &Address - &Enderezo - - - - FreespaceChecker - - A new data directory will be created. - Crearáse un novo directorio de datos. - - - name - nome - - - Directory already exists. Add %1 if you intend to create a new directory here. - O directorio xa existe. Engade %1 se queres crear un novo directorio aquí. - - - Path already exists, and is not a directory. - A ruta xa existe e non é un directorio. - - - Cannot create data directory here. - Non se pode crear directorio de datos aquí - - - - HelpMessageDialog - - version - versión - - - Command-line options - Opcións da liña de comandos - - - - Intro - - Welcome - Benvido - - - Welcome to %1. - Benvido a %1. - - - Use the default data directory - Empregar o directorio de datos por defecto - - - Use a custom data directory: - Empregar un directorio de datos personalizado - - - Bitcoin - Bitcoin - - - Error - Erro - - - - ModalOverlay - - Form - Formulario - - - Last block time - Hora do último bloque - - - calculating... - calculando... - - - - OpenURIDialog - - Open URI - Abrir URI - - - Open payment request from URI or file - Abrir solicitude de pagamento dende URI ou ficheiro - - - URI: - URI: - - - Select payment request file - Seleccionar ficheiro de solicitude de pagamento - - - - OpenWalletActivity - - default wallet - moedeiro por defecto - - - - OptionsDialog - - Options - Opcións - - - &Main - &Principal - - - Reset all client options to default. - Restaurar todas as opcións de cliente ás por defecto - - - &Reset Options - Opcións de &Restaurar - - - &Network - &Rede - - - GB - GB - - - W&allet - Moedeiro - - - Expert - Experto - - - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir automáticamente o porto do cliente Bitcoin no router. Esto so funciona se o teu router soporta UPnP e está habilitado. - - - Map port using &UPnP - Mapear porto empregando &UPnP - - - Proxy &IP: - &IP do Proxy: - - - &Port: - &Porto: - - - Port of the proxy (e.g. 9050) - Porto do proxy (exemplo: 9050) - - - IPv4 - IPv4 - - - IPv6 - IPv6 - - - Tor - Tor - - - &Window - &Xanela - - - Show only a tray icon after minimizing the window. - Amosar so unha icona na bandexa tras minimizar a xanela. - - - &Minimize to the tray instead of the taskbar - &Minimizar á bandexa en lugar de á barra de tarefas. - - - M&inimize on close - M&inimizar ao pechar - - - &Display - &Visualización - - - User Interface &language: - &Linguaxe de interface de usuario: - - - &Unit to show amounts in: - &Unidade na que amosar as cantidades: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Escolle a unidade de subdivisión por defecto para amosar na interface e ao enviar moedas. - - - &OK - &OK - - - &Cancel - &Cancelar - - - default - por defecto - - - Confirm options reset - Confirmar opcións de restaurar - - - Configuration options - Opcións de configuración - - - Error - Erro - - - The configuration file could not be opened. - O arquivo de configuración non puido ser aberto. - - - This change would require a client restart. - Este cambio requeriría un reinicio do cliente. - - - The supplied proxy address is invalid. - O enderezo de proxy suministrado é inválido. - - - - OverviewPage - - Form - Formulario - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - A información amosada por estar desactualizada. O teu moedeiro sincronízase automáticamente coa rede Bitcoin despois de que se estableza unha conexión, mais este proceso non está todavía rematado. - - - Your current spendable balance - O teu balance actualmente dispoñible - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Total de transaccións que aínda teñen que ser confirmadas, e non contan todavía dentro do balance gastable - - - Immature: - Inmaduro: - - - Mined balance that has not yet matured - O balance minado todavía non madurou - - - Total: - Total: - - - Your current total balance - O teu balance actual total - - - Recent transactions - Transaccións recentes - - - - PaymentServer - - Payment request error - Erro na solicitude de pagamento - - - You are using a BIP70 URL which will be unsupported in the future. - Estás a usar unha URL BIP70 que non será soportada no futuro. - - - Payment request rejected - Solicitude de pagamento rexeitada - - - Payment request expired. - Solicitude de pagamento expirada. - - - Payment request is not initialized. - A solicitude de pagamento non está inicializada. - - - Invalid payment request. - Solicitude de pagamento inválida. - - - - PeerTableModel - - - QObject - - Amount - Cantidade - - - %1 h - %1 h - - - %1 m - %1 m - - - N/A - N/A - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - Error: Specified data directory "%1" does not exist. - Erro: O directorio de datos especificado "%1" non existe. - - - unknown - descoñecido - - - - QRImageWidget - - &Save Image... - &Gardar Imaxe... - - - Resulting URI too long, try to reduce the text for label / message. - A URI resultante é demasiado larga, tenta reducir o texto para a etiqueta / mensaxe. - - - Error encoding URI into QR Code. - Erro codificando URI nun Código QR. - - - - RPCConsole - - N/A - N/A - - - Client version - Versión do cliente - - - &Information - &Información - - - Debug window - Xanela de Depuración - - - Startup time - Tempo de arranque - - - Network - Rede - - - Number of connections - Número de conexións - - - Block chain - Cadea de bloques - - - Current number of blocks - Número actual de bloques - - - Last block time - Hora do último bloque - - - &Open - &Abrir - - - &Console - &Consola - - - &Network Traffic - &Tráfico de Rede - - - Totals - Totais - - - In: - Dentro: - - - Out: - Fóra: - - - Debug log file - Arquivo de log de depuración - - - Clear console - Limpar consola - - - - ReceiveCoinsDialog - - &Amount: - &Cantidade: - - - &Label: - &Etiqueta: - - - &Message: - &Mensaxe: - - - Clear all fields of the form. - Limpar tódolos campos do formulario - - - Clear - Limpar - - - - ReceiveRequestDialog - - QR Code - Código QR - - - Copy &URI - Copiar &URI - - - Copy &Address - Copiar &Enderezo - - - &Save Image... - &Gardar Imaxe... - - - Address - Enderezo - - - Amount - Cantidade - - - Label - Etiqueta - - - Wallet - Moedeiro - - - - RecentRequestsTableModel - - Date - Data - - - Label - Etiqueta - - - - SendCoinsDialog - - Send Coins - Moedas Enviadas - - - Insufficient funds! - Fondos insuficientes - - - Quantity: - Cantidade: - - - Bytes: - Bytes: - - - Amount: - Importe: - - - Fee: - Taxa: - - - Change: - Cambiar: - - - Transaction Fee: - Tarifa de transacción: - - - Send to multiple recipients at once - Enviar a múltiples receptores á vez - - - Add &Recipient - Engadir &Receptor - - - Clear all fields of the form. - Limpar tódolos campos do formulario - - - Clear &All - Limpar &Todo - - - Balance: - Balance: - - - Confirm the send action - Confirmar a acción de envío - - - S&end - &Enviar - - - Transaction fee - Tarifa de transacción - - - Payment request expired. - Solicitude de pagamento expirada. - - - - SendCoinsEntry - - A&mount: - &Cantidade: - - - Pay &To: - Pagar &A: - - - &Label: - &Etiqueta: - - - Choose previously used address - Escoller enderezo previamente usado - - - This is a normal payment. - Este é un pagamento normal - - - Alt+A - Alt+A - - - Paste address from clipboard - Pegar enderezo dende portapapeis - - - Alt+P - Alt+P - - - Remove this entry - Eliminar esta entrada - - - Message: - Mensaxe: - - - Enter a label for this address to add it to the list of used addresses - Introduce unha etiqueta para esta dirección para engadila á listaxe de direccións empregadas - - - Pay To: - Pagar A: - - - Memo: - Memo: - - - - SendConfirmationDialog - - - ShutdownWindow - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Sinaturas - Asinar / Verificar unha Mensaxe - - - &Sign Message - &Asinar Mensaxe - - - Choose previously used address - Escoller dirección previamente usada - - - Alt+A - Alt+A - - - Paste address from clipboard - Pegar enderezo dende portapapeis - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Introduce a mensaxe que queres asinar aquí - - - Signature - Sinatura - - - Copy the current signature to the system clipboard - Copiar a sinatura actual ao portapapeis do sistema - - - Sign the message to prove you own this Bitcoin address - Asina a mensaxe para probar que posúes este enderezo Bitcoin - - - Sign &Message - Asinar &Mensaxe - - - Reset all sign message fields - Restaurar todos os campos de sinatura de mensaxe - - - Clear &All - Limpar &Todo - - - &Verify Message - &Verificar Mensaxe - - - Verify the message to ensure it was signed with the specified Bitcoin address - Verificar a mensaxe para asegurar que foi asinada coa dirección Bitcoin especificada - - - Verify &Message - Verificar &Mensaxe - - - Reset all verify message fields - Restaurar todos os campos de verificación de mensaxe - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Date - Data - - - unknown - descoñecido - - - Transaction fee - Tarifa de transacción - - - Amount - Cantidade - - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - Este panel amosa unha descripción detallada da transacción - - - - TransactionTableModel - - Date - Data - - - Label - Etiqueta - - - - TransactionView - - Comma separated file (*.csv) - Arquivo separado por comas (*.csv) - - - Confirmed - Confirmado - - - Date - Data - - - Label - Etiqueta - - - Address - Enderezo - - - - UnitDisplayStatusBarControl - - - WalletController - - Close wallet - Pechar moedeiro - - - - WalletFrame - - - WalletModel - - Send Coins - Moedas Enviadas - - - default wallet - moedeiro por defecto - - - - WalletView - - &Export - &Exportar - - - Export the data in the current tab to a file - Exportar os datos da pestaña actual a un arquivo. - - - - bitcoin-core - - Corrupted block database detected - Detectada base de datos de bloques corrupta. - - - Do you want to rebuild the block database now? - Queres reconstruír a base de datos de bloques agora? - - - Error initializing block database - Erro inicializando a base de datos de bloques - - - Error initializing wallet database environment %s! - Erro inicializando entorno de base de datos de moedeiro %s! - - - Error loading block database - Erro cargando base de datos do bloque - - - Error opening block database - Erro abrindo base de datos de bloques - - - Failed to listen on any port. Use -listen=0 if you want this. - Fallou escoitar en calquera porto. Emprega -listen=0 se queres isto. - - - Incorrect or no genesis block found. Wrong datadir for network? - Bloque xénese incorrecto ou non existente. Datadir erróneo para a rede? - - - Not enough file descriptors available. - Non hai suficientes descritores de arquivo dispoñibles. - - - Verifying blocks... - Verificando bloques... - - - Signing transaction failed - Fallou a sinatura da transacción - - - Transaction amount too small - A cantidade da transacción é demasiado pequena - - - Transaction too large - A transacción é demasiado grande - - - Unknown network specified in -onlynet: '%s' - Rede descoñecida especificada en -onlynet: '%s' - - - Insufficient funds - Fondos insuficientes - - - Loading block index... - Cargando índice de bloques... - - - Loading wallet... - Cargando moedeiro... - - - Cannot downgrade wallet - Non se pode desactualizar o moedeiro - - - Rescanning... - Rescaneando... - - - Done loading - Carga completa - - - \ No newline at end of file diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/bitcoin_hr.ts index bef1f76f20..142770139c 100644 --- a/src/qt/locale/bitcoin_hr.ts +++ b/src/qt/locale/bitcoin_hr.ts @@ -71,7 +71,7 @@ These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Ovo su vaše bitcoin adrese za primanje novca. Preporučeno je da koristite novu primateljsku adresu za svaku transakciju. + Ovo su vaše Bitcoin adrese za primanje novca. Preporučeno je da koristite novu primateljsku adresu za svaku transakciju. &Copy Address @@ -2901,6 +2901,10 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Output index Indeks outputa + + (Certificate was not verified) + (Certifikat nije bio ovjeren) + Merchant Trgovac diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts index b9af4ea976..0a6f718e14 100644 --- a/src/qt/locale/bitcoin_hu.ts +++ b/src/qt/locale/bitcoin_hu.ts @@ -121,7 +121,7 @@ Enter passphrase - Add meg a jelszót + Írja be a jelszót New passphrase @@ -129,7 +129,11 @@ Repeat new passphrase - Új jelszó újra + Ismét az új jelszó + + + Show passphrase + Jelszó mutatása Encrypt wallet @@ -137,7 +141,7 @@ This operation needs your wallet passphrase to unlock the wallet. - Ehhez a művelethez szükség van a tárcához tartozó kulcsmondathoz, hogy kinyithassa azt. + Ehhez a művelethez szükség van a tárcanyitó jelszóra. Unlock wallet @@ -145,15 +149,15 @@ This operation needs your wallet passphrase to decrypt the wallet. - Ehhez a művelethez szükség van a tárcához tartozó kulcsmondathoz, hogy a titkosítás megszűnjön. + Ehhez a művelethez szükség van a tárcatitkosítást feloldó jelszóra. Decrypt wallet - Tárca dekódolása + Tárcatitkosítás feloldása Change passphrase - Kulcsmondat megváltoztatása + Jelszó megváltoztatása Confirm wallet encryption @@ -171,9 +175,29 @@ Wallet encrypted Tárca titkosítva + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Írja be a tárca új jelszavát. <br/>A jelszó összetétele a következő: <b>tíz vagy annál több véletlenszerű karakter</b>, vagy <b>nyolc vagy annál több szó</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Írja be a tárca régi és új jelszavát. + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Ne feledd, hogy a tárca titkosítása sem nyújt teljes védelmet az adathalász programok fertőzésével szemben. + Ne feledd, hogy a tárca titkosítása nem nyújt teljes védelmet az adathalász programok fertőzésével szemben. + + + Wallet to be encrypted + A titkositandó tárca + + + Your wallet is about to be encrypted. + Tárcatitkosítás megkezdése. + + + Your wallet is now encrypted. + Tárcáját titkosítottuk. IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -181,31 +205,31 @@ Wallet encryption failed - A tárca titkosítása sikertelen. + Nem sikerült a tárca titkosítása Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Tárca titkosítása belső hiba miatt sikertelen. A tárcád nem lett titkosítva. + A tárca titkosítása belső hiba miatt nem sikerült. A tárcád nem lett titkosítva. The supplied passphrases do not match. - A megadott jelszavak nem egyeznek. + A megadott jelszók nem egyeznek. Wallet unlock failed - Tárca megnyitása sikertelen + A tárca felnyitása nem sikerült The passphrase entered for the wallet decryption was incorrect. - A tárca titkosításának feloldásához megadott jelszó helytelen. + A tárcatitkosítás feloldásához megadott jelszó helytelen. Wallet decryption failed - Tárca titkosításának feloldása sikertelen + A tárca titkosításának feloldása nem sikerült Wallet passphrase was successfully changed. - Tárca jelszava sikeresen megváltoztatva. + A tárca jelszavát sikeresen megváltoztatta. Warning: The Caps Lock key is on! @@ -239,7 +263,7 @@ Show general overview of wallet - Tárca általános áttekintése + A tárca általános áttekintése &Transactions @@ -287,7 +311,7 @@ &Backup Wallet... - &Bisztonsági másolat készítése a Tárcáról + &Biztonsági tárcamásolat készítése... &Change Passphrase... @@ -297,6 +321,14 @@ Open &URI... &URI azonosító megnyitása... + + Create Wallet... + Tárca készítése... + + + Create a new wallet + Új tárca készítése + Wallet: Tárca: @@ -335,7 +367,7 @@ Change the passphrase used for wallet encryption - Tárca-titkosító jelszó megváltoztatása + Tárcatitkosító jelszó megváltoztatása &Debug window @@ -471,7 +503,7 @@ Open a wallet - Tárca nyitása + Tárca megnyitása Close Wallet... @@ -582,11 +614,11 @@ Wallet is <b>encrypted</b> and currently <b>unlocked</b> - A tárca <b>titkosítva</b> és jelenleg <b>nyitva</b>. + A tárca <b>titkosítva</b> és jelenleg <b>megnyitva</b>. Wallet is <b>encrypted</b> and currently <b>locked</b> - Tárca <b>kódolva</b> és jelenleg <b>zárva</b>. + A tárca <b>titkosítva</b> és jelenleg <b>bezárva</b>. A fatal error occurred. Bitcoin can no longer continue safely and will quit. @@ -746,9 +778,49 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + <b>%1</b> tárca készítése folyamatban... + + + Create wallet failed + A tárcakészítés nem sikerült + + + Create wallet warning + Tárcakészítési figyelmeztetés + + CreateWalletDialog + + Create Wallet + Tárca készítése + + + Wallet Name + Tárca neve + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + A tárca titkosítása. A tárcát egy Ön által megadott jelszó titkosítja. + + + Encrypt Wallet + Tárca titkosítása + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + A tárcához tartozó privát kulcsok letiltása. Azok a tárcák, melyeknél a privát kulcsok le vannak tiltva, nem tartalmaznak privát kulcsokat és nem tartalmazhatnak HD magot vagy importált privát kulcsokat. Ez azoknál a tárcáknál ideális, melyeket csak megfigyelésre használnak. + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Üres tárca készítése. Az üres tárcák kezdetben nem tartalmaznak privát kulcsokat vagy szkripteket. Később lehetséges a privát kulcsok vagy címek importálása avagy egy HD mag beállítása. + + + Make Blank Wallet + Üres tárca készítése + EditAddressDialog @@ -790,7 +862,7 @@ Could not unlock wallet. - Tárca feloldása sikertelen + Nem sikerült a tárca megnyitása New key generation failed. @@ -857,6 +929,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Ha az OK-ra kattint, %1 megkezdi a teljes %4 blokk lánc letöltését és feldolgozását (%2GB) a legkorábbi tranzakciókkal kezdve %3 -ben, amikor a %4 bevezetésre került. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + A beállítás visszaállításához le kell tölteni a teljes blokkláncot. A teljes lánc letöltése és későbbi nyesése ennél gyorsabb. Bizonyos haladó funkciókat letilt. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Az első szinkronizáció nagyon erőforrás-igényes és felszínre hozhat a számítógépében eddig rejtve maradt hardver problémákat. Minden %1 indításnál a program onnan folytatja a letöltést, ahol legutóbb abbahagyta. @@ -877,6 +953,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Blokkok elhgyása ellenőrzés után, kivéve a legújabb %1 GB-ot (nyesés) + At least %1 GB of data will be stored in this directory, and it will grow over time. Legalább %1 GB adatot fogunk ebben a könyvtárban tárolni és idővel ez egyre több lesz. @@ -891,7 +971,7 @@ The wallet will also be stored in this directory. - Ebben a könyvtárban lesz a pénztárca is. + A tárcát is ebben a könyvtárban tároljuk. Error: Specified data directory "%1" cannot be created. @@ -914,7 +994,7 @@ Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - A legutóbbi tranzakciók még lehet, hogy nem látszanak, ezért előfordulhat, hogy a pénztárca egyenlege nem a valós állapotot mutatja. Ha a pénztárca befejezte a szinkronizációt a bitcoin hálózattal, utána már az aktuális egyenleget fogja mutatni, amint alant részletesen látszik. + A legutóbbi tranzakciók még lehet, hogy nem láthatók, és így előfordulhat, hogy a tárca egyenlege helytelen. A tárca azon nyomban az aktuális egyenleget fogja mutatni, amint befejezte a bitcoin hálózattal történő szinkronizációt, amely alább van részletezve. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -978,13 +1058,21 @@ OpenWalletActivity + + Open wallet failed + Nem sikerült a tárca megnyitása + + + Open wallet warning + Tárca-megnyitási figyelmeztetés + default wallet Alapértelmezett tárca Opening Wallet <b>%1</b>... - Tárca megnyitása <b>%1</b>... + <b>%1</b> tárca megnyitása... @@ -1057,10 +1145,22 @@ &Network &Hálózat + + Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher. + Bizonyos haladó funkciókat letilt, de minden blokkot teljes mértékben érvényesít. A beállítás visszaállításához le kell tölteni a teljes blokkláncot. A tényleges lemezhasználat valamennyire megnövekedhet. + + + Prune &block storage to + Nyesi a &block tárolását ide: + GB GB + + Reverting this setting requires re-downloading the entire blockchain. + A beállítás visszaállításához le kell tölteni a teljes blokkláncot. + MiB MB @@ -1250,7 +1350,7 @@ The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - A kijelzett információ lehet, hogy elavult. A pénztárcája automatikusan szinkronizálja magát a Bitcoin hálózattal miután a kapcsolat létrejön, de ez e folyamat még nem fejeződött be. + A kijelzett információ lehet, hogy elavult. A kapcsolat létrehozatalát követően tárcája automatikusan szinkronba kerül a Bitcoin hálózattal, de ez a folyamat még nem fejeződött be. Watch-only: @@ -1331,6 +1431,10 @@ URI handling URI kezelés + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + A BIP70 széleskörű biztonsági hiányosságai következtében határozottan ajánljuk, hogy hagyjon figyelmen kívül bármiféle kereskedelmi utasítást, amely a tárca váltására készteti. + Invalid payment address %1 Érvénytelen fizetési cím %1 @@ -1373,7 +1477,7 @@ Refund from %1 - Visszatérítés a %1 -tól + Visszatérítés innen: %1 Payment request %1 is too large (%2 bytes, allowed %3 bytes). @@ -1623,6 +1727,10 @@ Memory usage Memóriahasználat + + Wallet: + Tárca: + &Reset &Visszaállítás @@ -1811,6 +1919,14 @@ Network activity disabled Hálózati tevékenység letiltva. + + Executing command without any wallet + Parancs végrehajtása tárca nélkül + + + Executing command using "%1" wallet + Parancs végrehajtása a "%1" tárca használatával + (node id: %1) (csomópont azonosító: %1) @@ -2167,6 +2283,10 @@ Copy change Visszajáró másolása + + from wallet '%1' + A "%1" tárcától + Are you sure you want to send? Biztosan el akarja küldeni? @@ -2237,7 +2357,7 @@ The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? - A cím, amelyet a visszajárónak megadott, nincs ebben a tárcában. Bármennyi vagy minden összeg elküldhető a tárcájából erre a címre. Biztos benne? + A visszajárónak megadott cím nem szerepel ebben a tárcában. Bármilyen - vagy az egész - összeg elküldhető a tárcájából erre a címre. Biztos benne? (no label) @@ -2864,7 +2984,15 @@ Close wallet Tárca bezárása - + + Are you sure you wish to close the wallet <i>%1</i>? + Biztos, hogy bezárja a "%1" tárcát? + + + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. + A tárca hosszantartó bezárása nyesési üzemmódban azt eredményezheti, hogy a teljes láncot újra kell szinkronizálnia. + + WalletFrame @@ -2952,6 +3080,18 @@ Distributed under the MIT software license, see the accompanying file %s or %s MIT szoftver licenc alapján terjesztve, tekintse meg a hozzátartozó fájlt %s or %s + + Prune configured below the minimum of %d MiB. Please use a higher number. + Nyesés megkísérlése a minimális %d MiB alatt. Kérjük, használjon egy magasabb értéket. + + + Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) + Nyesés: az utolsó tárcaszinkronizálás meghaladja a nyesett adatokat. Szükséges a -reindex használata (nyesett csomópont esetében a teljes blokklánc ismételt letöltése). + + + Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. + Nyesett üzemmódban nem lehet megismételni a feltérképezést. Szükséges a -reindex használata, ami a teljes blokklánc letöltését eredményezi. + Error: A fatal internal error occurred, see debug.log for details Hiba: Fatális belső hiba történt, nézze meg a debug.log -ot a részletekért @@ -2972,6 +3112,10 @@ This is a pre-release test build - use at your own risk - do not use for mining or merchant applications Ez egy kiadás előtt álló, teszt verzió - csak saját felelősségre - ne használja bányászatra vagy kereskedéshez. + + Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain + Az adatbázis visszatekerése az elágazás előtti állapotba nem sikerült. Ismételten le kell töltenie a blokkláncot. + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. Figyelem: A hálózat úgy tűnik nem teljesen egyezik! Néhány bányász problémákat tapasztalhat. @@ -3026,7 +3170,7 @@ Failed to rescan the wallet during initialization - A tárca átvizsgálása közben hiba történt. + Inicializálás közben nem sikerült feltérképezni a tárcát Importing... @@ -3048,6 +3192,14 @@ Not enough file descriptors available. Nincs elég fájlleíró. + + Prune cannot be configured with a negative value. + Nyesett üzemmódot nem lehet negatív értékkel kialakítani. + + + Prune mode is incompatible with -txindex. + A -txindex nem használható nyesett üzemmódban. + Replaying blocks... Blokkok újrajátszása... @@ -3076,6 +3228,10 @@ Wallet needed to be rewritten: restart %s to complete A Tárca újraírása szükséges: Indítsa újra a %s-t. + + You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain + Újra kell építeni az adatbázist a -reindex használatával, ami a nyesett üzemmódot megszünteti. Ez a teljes blokklánc ismételt letöltésével jár. + Error reading from database, shutting down. Hiba az adatbázis olvasásakor, leállítás @@ -3084,10 +3240,26 @@ Error upgrading chainstate database Hiba a blokk adatbázis betöltése közben + + Prune mode is incompatible with -blockfilterindex. + A -blockfilterindex nem használható nyesés üzemmódban. + Signing transaction failed Tranzakció aláírása sikertelen + + Specified -walletdir "%s" does not exist + A megadott "%s" -walletdir nem létezik + + + Specified -walletdir "%s" is a relative path + A megadott "%s" -walletdir relatív elérési út + + + Specified -walletdir "%s" is not a directory + A megadott "%s" -walletdir nem könyvtár + This is experimental software. Ez egy kísérleti szoftver. @@ -3104,14 +3276,30 @@ Verifying wallet(s)... Tárcák ellenőrzése... + + Zapping all transactions from wallet... + A tárca összes trancakciójának törlése... + + + Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. + Figyelem: A tárca-fájl megsérült, de az adatokat sikerült megmenteni! Az eredeti %s fájlt mentettük %s név alatt a %s könyvtárban. Amennyiben az egyenleg vagy a trancakciók helytelenek, állítsa vissza tárcáját a biztonsági mentés használatával. + %s is set very high! %s étéke nagyon magas! + + Error loading wallet %s. Duplicate -wallet filename specified. + Hiba történt a %s tárca betöltésekor, mert duplikált tárca-fájlnevet adott meg. + Starting network threads... Hálózati szálak indítása... + + The wallet will avoid paying less than the minimum relay fee. + A tárca nem fog a minimális továbbítási díjnál kevesebbet fizetni. + This is the minimum transaction fee you pay on every transaction. Ez a minimum tranzakciós díj, amelyet tranzakciónként kifizet. @@ -3134,7 +3322,15 @@ Insufficient funds - Nincs elég bitcoinod. + Fedezethiány + + + Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified. + A nem HD-s megosztott tárcát nem lehet bővíteni anélkül, hogy először a megosztás előtti kulcskészlet támogatására bővít. Használja az -upgradewallet=169900 parancsot vagy az -upgradewallet parancsot verzió megadása nélkül. + + + Warning: Private keys detected in wallet {%s} with disabled private keys + Figyelem: Privát kulcsokat észleltünk a {%s} tárcában, melynél a privát kulcsok le vannak tiltva. Loading block index... @@ -3150,7 +3346,7 @@ Rescanning... - Újraszkennelés... + Feltérképezés megismétlése... Done loading diff --git a/src/qt/locale/bitcoin_id.ts b/src/qt/locale/bitcoin_id.ts index 3106a3dac8..777a35303d 100644 --- a/src/qt/locale/bitcoin_id.ts +++ b/src/qt/locale/bitcoin_id.ts @@ -1593,6 +1593,14 @@ &Copy Image &Salin Gambar + + Resulting URI too long, try to reduce the text for label / message. + Pembuatan tautan terlalu lama, coba kurangi teks untuk label / pesan. + + + Error encoding URI into QR Code. + Error saat menyandikan tautan ke dalam kode QR. + Save QR Code Simpan Kode QR @@ -1874,6 +1882,38 @@ For more information on using this console type %1. Untuk informasi lebih gunakan konsol ini dengan ketik %1. + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + PERHATIAN: Para penipu sedang aktif, memberi tahu pengguna untuk mengetik perintah di sini, mencuri isi dompet mereka. Mohon tidak mengunakan konsol ini tanpa sepenuhnya memahami konsekuensi dari suatu perintah. + + + Network activity disabled + Aktivitas jaringan nonaktif + + + Executing command without any wallet + Menjalankan perintah tanpa dompet apa pun + + + (node id: %1) + (id simpul: %1) + + + via %1 + via %1 + + + never + tidak pernah + + + Inbound + masuk + + + Outbound + keluar + Yes Ya @@ -1901,6 +1941,10 @@ &Message: &Pesan: + + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + Pesan opsional untuk dilampirkan ke permintaan pembayaran, yang akan ditampilkan ketika permintaan dibuka. Catatan: Pesan tidak akan dikirim dengan pembayaran melalui jaringan Bitcoin. + An optional label to associate with the new receiving address. Label opsional untuk mengasosiasikan dengan alamat penerima baru. @@ -1921,6 +1965,14 @@ Clear Hapus + + Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. + Alamat segwit asli (alias Bech32 atau BIP-173) akan mengurangi biaya transaksi anda nantinya dan menawarkan perlindungan yang lebih baik terhadap kesalahan pengetikan, tetapi dompet lama tidak mendukungnya. Ketika tidak dicentang, alamat yang kompatibel dengan dompet lama akan dibuat sebagai gantinya. + + + Generate native segwit (Bech32) address + Hasilkan alamat asli segwit (Bech32) + Requested payments history Riwayat pembayaran yang diminta Anda @@ -1941,10 +1993,18 @@ Remove Menghapus + + Copy URI + Salin tautan + Copy label Salin label + + Copy message + Salin pesan + Copy amount Salin Jumlah @@ -1968,6 +2028,18 @@ &Save Image... &Simpan Gambaran... + + Request payment to %1 + Minta pembayaran ke %1 + + + Payment information + Informasi pembayaran + + + URI + Tautan + Address Alamat @@ -1980,6 +2052,10 @@ Label Label + + Message + Pesan + Wallet Dompet @@ -1995,11 +2071,27 @@ Label Label + + Message + Pesan + (no label) (tidak ada label) - + + (no message) + (tidak ada pesan) + + + (no amount requested) + (tidak ada jumlah yang diminta) + + + Requested + Diminta + + SendCoinsDialog @@ -2058,6 +2150,34 @@ Transaction Fee: Biaya Transaksi: + + Choose... + Pilih... + + + Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain. + Menggunakan fallbackfee dapat mengakibatkan pengiriman transaksi yang akan memakan waktu beberapa jam atau hari (atau tidak pernah) untuk dikonfirmasi. Pertimbangkan untuk memilih biaya anda secara manual atau tunggu hingga anda telah megesahkan rantai yang lengkap. + + + Warning: Fee estimation is currently not possible. + Peringatan: Perkiraan biaya saat ini tidak memungkinkan. + + + collapse fee-settings + tutup pengaturan biaya + + + Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. + +Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis. + Tentukan biaya khusus per kB (1.000 byte) dari ukuran transaksi maya. + +Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" untuk ukuran transaksi 500 byte (setengah dari 1 kB) pada akhirnya akan menghasilkan biaya hanya 50 satoshi. + + + per kilobyte + per kilobyte + Hide Sembunyikan @@ -2066,6 +2186,10 @@ Recommended: Disarankan + + Custom: + Khusus + Send to multiple recipients at once Kirim ke beberapa penerima sekaligus @@ -2296,6 +2420,10 @@ Transaction fee Biaya Transaksi + + Message + Pesan + Amount Jumlah diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index 935a75cbd3..cb383befbd 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -173,7 +173,7 @@ Are you sure you wish to encrypt your wallet? - Cifrare veramente il portafoglio? + Sei sicuro di voler cifrare il portafoglio? Wallet encrypted @@ -2903,6 +2903,10 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Output index Indice di output + + (Certificate was not verified) + (Il certificato non è stato verificato) + Merchant Commerciante diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index 06482afa8f..a025973aa8 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. これらは、あなたが知っている支払い送り先の Bitcoin アドレスです。コインを送る前に、必ず金額と送金先アドレスを確認してください。 + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + これらは支払いを受け取るための、あなたの Bitcoin アドレスです。新しいアドレスを作成するには受取タブ内の「新しい受取用アドレスを作成」ボタンを使用します。 + &Copy Address アドレスをコピー(&C) @@ -131,6 +135,10 @@ Repeat new passphrase 新しいパスフレーズをもう一度 + + Show passphrase + パスフレーズを表示 + Encrypt wallet ウォレットを暗号化 @@ -171,6 +179,31 @@ Wallet encrypted ウォレットの暗号化の完了 + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + 新しいウォレットのパスフレーズを入力してください。 +パスフレーズは、ランダムな10文字以上の文字か、8語以上の単語を使用してください。 + + + Enter the old passphrase and new passphrase for the wallet. + ウォレット用の旧パスフレーズと新パスフレーズを入力してください。 + + + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + ウォレットを暗号化しても、コンピュータに感染したマルウェアなどによる Bitcoin の盗難を完全に防ぐことはできないことにご注意ください。 + + + Wallet to be encrypted + 暗号化するウォレット + + + Your wallet is about to be encrypted. + ウォレットは暗号化されようとしています。 + + + Your wallet is now encrypted. + ウォレットは暗号化されました。 + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. 重要: 今までに作成されたウォレット ファイルのバックアップは、暗号化された新しいウォレット ファイルに置き換える必要があります。セキュリティ上の理由により、暗号化された新しいウォレットを使い始めると、暗号化されていないウォレット ファイルのバックアップはすぐに使えなくなります。 @@ -293,6 +326,14 @@ Open &URI... URI を開く(&U)... + + Create Wallet... + ウォレットを作成... + + + Create a new wallet + 新しいウォレットを作成 + Wallet: ウォレット: @@ -521,6 +562,10 @@ Error: %1 エラー: %1 + + Warning: %1 + 警告: %1 + Date: %1 @@ -743,10 +788,58 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + ウォレット <b>%1</b>を作成しています... + + + Create wallet failed + ウォレットの作成に失敗しました + + + Create wallet warning + ウォレットを作成 - 警告 + + CreateWalletDialog - + + Create Wallet + ウォレットを作成する + + + Wallet Name + ウォレット名 + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + ウォレットを暗号化。ウォレットは任意のパスフレーズによって暗号化されます。 + + + Encrypt Wallet + ウォレットを暗号化する + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + このウォレットの秘密鍵を無効にします。秘密鍵が無効になっているウォレットには秘密鍵はなく、HDシードまたはインポートされた秘密鍵を持つこともできません。これはウォッチ限定のウォレットに最適です。 + + + Disable Private Keys + 秘密鍵を無効化 + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + 空ウォレットを作成。空ウォレットには、最初は秘密鍵やスクリプトがありません。後から秘密鍵やアドレスをインポート、またはHDシードを設定できます。 + + + Make Blank Wallet + 空ウォレットを作成 + + + Create + 作成 + + EditAddressDialog @@ -862,6 +955,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. OKをクリックすると、%1 は %4 がリリースされた%3年最初の取引からの完全な %4 ブロックチェーン(%2GB)のダウンロードおよび処理を開始します。 + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + この設定を元に戻すには、ブロックチェーン全体を再ダウンロードする必要があります。先にチェーン全体をダウンロードしてから、剪定する方が高速です。一部の高度な機能を無効にします。 + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. この初回同期には多大なリソースを消費し、あなたのコンピュータでこれまで見つからなかったハードウェア上の問題が発生する場合があります。%1 を実行する度に、中断された時点からダウンロードを再開します。 @@ -882,6 +979,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + 最新の%1 GBを除いて、検証後にブロックを破棄 (剪定する) + At least %1 GB of data will be stored in this directory, and it will grow over time. 最低でも%1 GBのデータをこのディレクトリに保存する必要があります。またこのデータは時間とともに増加していきます。 @@ -914,7 +1015,11 @@ (of %n GB needed) (%n GB必要) - + + (%n GB needed for full chain) + (完全なチェーンには%n GB必要です) + + ModalOverlay @@ -991,6 +1096,14 @@ OpenWalletActivity + + Open wallet failed + ウォレットを開くことに失敗しました + + + Open wallet warning + ウォレットを開く - 警告 + default wallet デフォルトウォレット @@ -1380,6 +1493,10 @@ Cannot process payment request because BIP70 support was not compiled in. BIP70のサポートが組み込まれていないため、支払いリクエストを処理することができません。 + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + このエラーが発生する場合は、販売者にBIP21互換URIの提供を依頼するべきです。 + Invalid payment address %1 支払い先アドレス「 %1 」は無効です @@ -1601,6 +1718,10 @@ Error encoding URI into QR Code. URIをQRコードへ変換している際にエラーが発生しました。 + + QR code support not available. + QRコードは利用できません。 + Save QR Code QRコードの保存 @@ -1959,6 +2080,10 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. リクエストする金額(任意)。特定の金額をリクエストしない場合は、この欄は空白のままかゼロにしてください。 + + &Create new receiving address + 新しい受取用アドレスを作成 + Clear all fields of the form. 全ての入力欄をクリア @@ -2280,6 +2405,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p %1 (%2 blocks) %1 (%2 ブロック) + + from wallet '%1' + ウォレット '%1' から + + + %1 to '%2' + %1 から '%2' + %1 to %2 %1 送金先: %2 @@ -2312,6 +2445,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Total Amount 合計 + + To review recipient list click "Show Details..." + 受信者の一覧を確認するには "詳細を表示..." をクリック + Confirm send coins 送金の確認 @@ -2762,6 +2899,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Output index アウトプット インデックス数 + + (Certificate was not verified) + (証明書は検証されませんでした) + Merchant リクエスト元 @@ -3085,6 +3226,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Close wallet ウォレットを閉じる + + Are you sure you wish to close the wallet <i>%1</i>? + 本当にウォレット<i>%1</i>を閉じますか? + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. ブロックファイル剪定が有効の場合、長期間ウォレットを起動しないと全チェーンを再度同期させる必要があるかもしれません。 @@ -3357,6 +3502,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Initialization sanity check failed. %s is shutting down. 初期化時の健全性検査に失敗しました。%s を終了します。 + + Invalid P2P permission: '%s' + 無効なP2Pアクセス権: '%s' + Invalid amount for -%s=<amount>: '%s' -%s=<amount> オプションに対する不正な amount: '%s' @@ -3389,6 +3538,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Loading P2P addresses... P2Pアドレスの読み込み中... + + Error: Disk space is too low! + エラー: ディスク容量が不足しています! + Loading banlist... banリストの読み込み中... @@ -3497,6 +3650,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Need to specify a port with -whitebind: '%s' -whitebind オプションでポートを指定する必要があります: '%s' + + Prune mode is incompatible with -blockfilterindex. + 剪定モードは -blockfilterindex オプションと互換性がありません。 + Reducing -maxconnections from %d to %d, because of system limitations. システム上の制約から、-maxconnections を %d から %d に削減しました。 @@ -3555,6 +3712,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Unable to generate initial keys イニシャル鍵を生成できません + + Unknown -blockfilterindex value %s. + 不明な -blockfilterindex の値 %s。 + Verifying wallet(s)... ウォレットの確認中... diff --git a/src/qt/locale/bitcoin_ko.ts b/src/qt/locale/bitcoin_ko.ts index 46bb9c6cc7..f9ac10a881 100644 --- a/src/qt/locale/bitcoin_ko.ts +++ b/src/qt/locale/bitcoin_ko.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. 비트코인을 보내는 계좌 주소입니다. 코인을 보내기 전에 금액과 받는 주소를 항상 확인하세요. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + 지불 수신용 비트코인주소. 신규 주소를 만들려면 'Create new receiving address' 버튼을 사용하세요. + &Copy Address 주소 복사(&C) @@ -131,6 +135,10 @@ Repeat new passphrase 새로운 암호 재입력 + + Show passphrase + 암호 보기 + Encrypt wallet 지갑 암호화 @@ -171,6 +179,14 @@ Wallet encrypted 지갑 암호화 완료 + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + 새로운 지갑 비밀번호를 입력하세요. 암호는 10개 이상의 문자 또는 8개 이상의 단어로 입력하세요. + + + Enter the old passphrase and new passphrase for the wallet. + 지갑의 이전 비밀번호와 새로운 비밀번호를 입력하세요. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. 중요: 본인 지갑 파일에서 만든 예전 백업들은 새로 생성한 암호화된 지갑 파일로 교체해야 합니다. 보안상 이유로, 새 암호화된 지갑을 사용하게 되면 이전에 암호화하지 않은 지갑 파일의 백업은 사용할 수 없게 됩니다. diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index a13dd82156..748da9b800 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -818,10 +818,19 @@ Encrypt Wallet Versleutel portemonnee + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Schakel privésleutels uit voor deze portemonnee. Portommonees met privésleutels uitgeschakeld hebben deze niet en kunnen geen HD seed of geimporteerde privésleutels bevatten. +Dit is ideaal voor alleen-lezen portommonees. + Disable Private Keys Schakel privésleutels uit + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Maak een blanco portemonnee. Blanco portemonnees hebben initieel geen privésleutel of scripts. Privésleutels en adressen kunnen later worden geimporteerd of een HD seed kan later ingesteld worden. + Make Blank Wallet Maak een lege portemonnee @@ -946,6 +955,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Als u op OK klikt, dan zal %1 beginnen met downloaden en verwerken van de volledige %4 blokketen (%2GB) startend met de eerste transacties in %3 toen %4 initeel werd gestart. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Om deze instelling weer ongedaan te maken moet de volledige blockchain opnieuw gedownload worden. Het is sneller om eerst de volledige blockchain te downloaden en deze later te prunen. Schakelt een aantal geavanceerde functies uit. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Deze initiële synchronisatie is heel veeleisend, en kan hardware problemen met uw computer blootleggen die voorheen onopgemerkt bleven. Elke keer dat %1 gebruikt word, zal verdergegaan worden waar gebleven is. @@ -966,6 +979,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Verwijder blokken na verificatie, uitgezonderd de meest recente %1 GB (prune) + At least %1 GB of data will be stored in this directory, and it will grow over time. Tenminste %1 GB aan data zal worden opgeslagen in deze map, en dit zal naarmate de tijd voortschrijdt groeien. @@ -1011,7 +1028,7 @@ Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Recente transacties zijn mogelijk nog niet zichtbaar. De balans van de portemonnee is daarom mogelijk niet correct. Deze informatie is correct van zodra de synchronisatie met het Bitcoin-netwerk werd voltooid, zoals onderaan beschreven. + Recente transacties zijn mogelijk nog niet zichtbaar. De balans van de portemonnee is daarom mogelijk niet correct. Deze informatie is correct zodra de synchronisatie met het Bitcoin-netwerk is voltooid, zoals onderaan beschreven. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -1043,7 +1060,7 @@ Estimated time left until synced - Geschatte tijd tot volledig synchroon + Geschatte tijd tot synchronisatie voltooid Hide @@ -1051,7 +1068,7 @@ Unknown. Syncing Headers (%1, %2%)... - Onbekend. Kopteksten synchroniseren (%1, %2%)... + Onbekend. Blockheaders synchroniseren (%1, %2%)... @@ -1476,6 +1493,14 @@ Cannot process payment request because BIP70 support was not compiled in. Kan het betalingsverzoek niet verwerken omdat BIP70 ondersteuning niet werd gecompileerd. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Gezien de wijdverspreide beveiligingsproblemen in BIP70 is het sterk aanbevolen dat iedere instructie om van portemonnee te wisselen wordt genegeerd. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Als je deze fout krijgt, verzoek dan de verkoper om een BIP21 compatible URI. + Invalid payment address %1 Ongeldig betalingsadres %1 @@ -2424,6 +2449,10 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Total Amount Totaalbedrag + + To review recipient list click "Show Details..." + Om de lijst van ontvangers te vernieuwe klik "Bekijk details..." + Confirm send coins Bevestig versturen munten @@ -2874,6 +2903,10 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Output index Output index + + (Certificate was not verified) + (Certificaat kon niet worden geverifieerd) + Merchant Handelaar @@ -3197,6 +3230,10 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Close wallet Portemonnee Sluiten + + Are you sure you wish to close the wallet <i>%1</i>? + Weet je zeker dat je portemonnee <i>%1</i> wil sluiten? + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. De portemonee te lang gesloten houden kan leiden tot het moeten hersynchroniseren van de hele keten als snoeien aktief is. @@ -3617,6 +3654,10 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Need to specify a port with -whitebind: '%s' Verplicht een poort met -whitebind op te geven: '%s' + + Prune mode is incompatible with -blockfilterindex. + Prune-modus is niet compatible met -blockfilterindex. + Reducing -maxconnections from %d to %d, because of system limitations. Verminder -maxconnections van %d naar %d, vanwege systeembeperkingen. diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts index 37ef483934..75f94e02e1 100644 --- a/src/qt/locale/bitcoin_pl.ts +++ b/src/qt/locale/bitcoin_pl.ts @@ -2904,6 +2904,10 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw Output index Indeks wyjściowy + + (Certificate was not verified) + (Certyfikat nie został zweryfikowany) + Merchant Kupiec diff --git a/src/qt/locale/bitcoin_pt.ts b/src/qt/locale/bitcoin_pt.ts index 424038dc46..c4a85f6503 100644 --- a/src/qt/locale/bitcoin_pt.ts +++ b/src/qt/locale/bitcoin_pt.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Estes são os seus endereços Bitcoin para enviar pagamentos. Verifique sempre o valor e o endereço de receção antes de enviar moedas. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Estes são os endereços Bitcoin para receiver pagamentos. Use o botão "Criar novo endereço para receiver" para crier novo endereço. + &Copy Address &Copiar Endereço @@ -131,6 +135,10 @@ Repeat new passphrase Repita a nova frase de frase de segurança + + Show passphrase + Mostrar Password + Encrypt wallet Encriptar carteira @@ -171,6 +179,30 @@ Wallet encrypted Carteira encriptada + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Insira nova password para a carteira.<br/>Por favor use uma password de <b>dez ou mais caracteres</b>, ou <b>oito ou mais palavras</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Insira a password antiga e a nova para a carteira. + + + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Lembra se que encrostar a sua carteira não o pode defender na totalidade os seus bitcoins de serem roubados por um malware que possa infectar o seu computador. + + + Wallet to be encrypted + Carteira a ser encriptada + + + Your wallet is about to be encrypted. + A sua carteira vai agora ser encriptada. + + + Your wallet is now encrypted. + A sua carteira está agora encriptada + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. IMPORTANTE: qualquer cópia de segurança da carteira anterior deverá ser substituída com o novo ficheiro de carteira, agora encriptado. Por razões de segurança, as cópias de segurança não encriptadas tornar-se-ão inúteis assim que começar a usar a nova carteira encriptada. @@ -293,6 +325,14 @@ Open &URI... Abrir &URI... + + Create Wallet... + Criar Carteira... + + + Create a new wallet + Criar novo carteira + Wallet: Carteira: @@ -521,6 +561,10 @@ Error: %1 Erro: %1 + + Warning: %1 + Aviso: %1 + Date: %1 @@ -743,10 +787,58 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + A criar carteira <b>%1</b>... + + + Create wallet failed + Falha a criar carteira + + + Create wallet warning + Aviso ao criar carteira + + CreateWalletDialog - + + Create Wallet + Criar Carteira + + + Wallet Name + Nome da Carteira + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Encriptar carteira. A carteira vai ser encriptada com uma password de sua escolha. + + + Encrypt Wallet + Encriptar Carteira + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Desative chaves privadas para esta carteira. As carteiras com chaves privadas desativadas não terão chaves privadas e não poderão ter uma semente em HD ou chaves privadas importadas. Isso é ideal para carteiras sem movimentos. + + + Disable Private Keys + Desactivar Chaves Privadas + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Faça uma carteira em branco. As carteiras em branco não possuem inicialmente chaves ou scripts privados. Chaves e endereços privados podem ser importados ou uma semente HD pode ser configurada posteriormente. + + + Make Blank Wallet + Fazer Carteira em Branco + + + Create + Criar + + EditAddressDialog @@ -862,6 +954,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Quando clicar OK, %1 vai começar a descarregar e processar a cadeia de blocos %4 completa (%2GB) começando com as transações mais antigas em %3 quando a %4 foi inicialmente lançada. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Para reverter essa configuração, é necessário o download de todo o blockchain novamente. É mais rápido fazer o download da blockchain completa primeiro e removê-la mais tarde. Desativa alguns recursos avançados. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Esta sincronização inicial é muito exigente, e pode expor problemas com o seu computador que previamente podem ter passado despercebidos. Cada vez que corre %1, este vai continuar a descarregar de onde deixou. @@ -882,6 +978,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Descartar blocos após a verificação, excepto os mais recentes %1 GB (apagar) + At least %1 GB of data will be stored in this directory, and it will grow over time. No mínimo %1 GB de dados irão ser armazenados nesta pasta. @@ -914,7 +1014,11 @@ (of %n GB needed) (de %n GB necessários)(de %n GB necessário) - + + (%n GB needed for full chain) + (%n GB precisos para a cadeia completa)(%n GB precisos para a cadeia completa) + + ModalOverlay @@ -991,6 +1095,14 @@ OpenWalletActivity + + Open wallet failed + Falha ao abrir a carteira + + + Open wallet warning + Aviso abertura carteira + default wallet carteira predefinida @@ -1381,6 +1493,14 @@ Cannot process payment request because BIP70 support was not compiled in. O pagamento não pode ser processado porque o suporte ao BIP70 foi desativado. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Devido a falhas de segurança generalizadas no BIP70, é altamente recomendável que todas as instruções do comerciante para trocar carteiras sejam ignoradas. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Se está a receber este erro, deve pedir ao comerciante que lhe de um ULR compatível com BIP21. + Invalid payment address %1 Endereço de pagamento inválido %1 @@ -1602,6 +1722,10 @@ Error encoding URI into QR Code. Erro ao codificar URI em Código QR. + + QR code support not available. + Suporte códigos QR não disponível + Save QR Code Guardar o código QR @@ -1960,6 +2084,10 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. Uma quantia opcional a solicitar. Deixe em branco ou zero para não solicitar uma quantidade específica. + + &Create new receiving address + &Criar novo endereço para receber + Clear all fields of the form. Limpar todos os campos do formulário. @@ -2281,6 +2409,14 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u %1 (%2 blocks) %1 (%2 blocos) + + from wallet '%1' + da carteira '%1' + + + %1 to '%2' + %1 a '%2' + %1 to %2 %1 para %2 @@ -2313,6 +2449,10 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Total Amount Valor Total + + To review recipient list click "Show Details..." + Para rever a lista de destinatários clique "Mostrar Detalhes..." + Confirm send coins Confirme envio de moedas @@ -2764,6 +2904,10 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Output index Índex de saída + + (Certificate was not verified) + (O certificado não foi verificado) + Merchant Comerciante @@ -3087,6 +3231,10 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Close wallet Fechar a carteira + + Are you sure you wish to close the wallet <i>%1</i>? + Tem a certeza que deseja fechar esta carteira <i>%1</i>? + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. Fechar a carteira durante demasiado tempo pode resultar em ter de resincronizar a cadeia inteira se pruning estiver ativado. @@ -3359,6 +3507,10 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Initialization sanity check failed. %s is shutting down. Verificação de integridade inicial falhou. O %s está a desligar-se. + + Invalid P2P permission: '%s' + Permissões P2P inválidas : '%s' + Invalid amount for -%s=<amount>: '%s' Valor inválido para -%s=<amount>: '%s' @@ -3376,6 +3528,14 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u A pasta de blocos especificados "%s" não existe. + + Unknown address type '%s' + Tipo de endereço desconhecido '%s' + + + Unknown change type '%s' + Tipo de mudança desconhecido '%s' + Upgrading txindex database A atualizar a base de dados txindex @@ -3384,6 +3544,10 @@ A pasta de blocos especificados "%s" não existe. Loading P2P addresses... A carregar endereços de P2P... + + Error: Disk space is too low! + Erro: O espaço disponível no disco é demasiado pequeno! + Loading banlist... A carregar a lista de banir... @@ -3492,6 +3656,10 @@ A pasta de blocos especificados "%s" não existe. Need to specify a port with -whitebind: '%s' Necessário especificar uma porta com -whitebind: '%s' + + Prune mode is incompatible with -blockfilterindex. + O modo de remoção é incompatível com -blockfilterindex. + Reducing -maxconnections from %d to %d, because of system limitations. Reduzindo -maxconnections de %d para %d, devido a limitações no sistema. @@ -3550,6 +3718,10 @@ A pasta de blocos especificados "%s" não existe. Unable to generate initial keys Incapaz de gerar as chaves iniciais + + Unknown -blockfilterindex value %s. + Desconhecido -blockfilterindex valor %s. + Verifying wallet(s)... A verificar a(s) carteira(s)... diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index ca16bcfe22..4ceb834b60 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -2902,6 +2902,10 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Output index Index da saída + + (Certificate was not verified) + (O certificado não foi verificado) + Merchant Mercador diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index 7dfd35dc0b..e3f4cfc58c 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -67,7 +67,11 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Это ваши адреса Bitcoin для отправки платежей. Всегда проверяйте количество и адрес получателя перед отправкой перевода. + Это ваши Биткойн-адреса для отправки платежей. Всегда проверяйте количество и адрес получателя перед отправкой перевода. + + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Это ваши Биткойн-адреса для приёма платежей. Используйте кнопку «Создать новый адрес для получения» на вкладке Получить, чтобы создать новые адреса. &Copy Address @@ -131,6 +135,10 @@ Repeat new passphrase Повторите новый пароль + + Show passphrase + Показать пароль + Encrypt wallet Зашифровать электронный кошелёк @@ -141,15 +149,15 @@ Unlock wallet - Разблокировать бумажник + Разблокировать кошелёк This operation needs your wallet passphrase to decrypt the wallet. - Данная операция требует введения пароля для расшифровки вашего бумажника. + Данная операция требует введения пароля для расшифровки вашего кошелька. Decrypt wallet - Расшифровать бумажник + Расшифровать кошелёк Change passphrase @@ -161,7 +169,7 @@ Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Предупреждение: если вы зашифруете бумажник и потеряете пароль, вы <b>ПОТЕРЯЕТЕ ВСЕ ВАШИ БИТКОИНЫ</b>! + Предупреждение: Если вы зашифруете кошелёк и потеряете пароль, вы <b>ПОТЕРЯЕТЕ ВСЕ ВАШИ БИТКОЙНЫ</b>! Are you sure you wish to encrypt your wallet? @@ -171,9 +179,29 @@ Wallet encrypted Кошелёк зашифрован + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Введите новый пароль для кошелька.<br/>Используйте пароль, состоящий из <b>десяти или более случайных символов</b>, или <b>восьми или более слов</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Введите старый и новый пароль для кошелька. + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Помните, что шифрование вашего бумажника не может полностью защитить ваши биткоины от кражи вредоносными программами, заражающими компьютер. + Помните, что шифрование вашего кошелька не может полностью защитить ваши биткойны от кражи вредоносными программами, заражающими ваш компьютер. + + + Wallet to be encrypted + Кошелёк зашифрован + + + Your wallet is about to be encrypted. + Ваш кошелёк будет зашифрован. + + + Your wallet is now encrypted. + Ваш кошелёк теперь зашифрован. IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -181,7 +209,7 @@ Wallet encryption failed - Не удалось зашифровать бумажник + Не удалось зашифровать кошелёк Wallet encryption failed due to an internal error. Your wallet was not encrypted. @@ -193,7 +221,7 @@ Wallet unlock failed - Разблокировка бумажника не удалась + Не удалось разблокировать кошелёк The passphrase entered for the wallet decryption was incorrect. @@ -205,7 +233,7 @@ Wallet passphrase was successfully changed. - Пароль бумажника успешно изменён. + Пароль кошелька успешно изменён. Warning: The Caps Lock key is on! @@ -259,7 +287,7 @@ &About %1 - &Около %1 + &О %1 Show information about %1 @@ -287,7 +315,7 @@ &Backup Wallet... - &Сделать резервную копию бумажника... + &Резервная копия кошелька... &Change Passphrase... @@ -297,9 +325,17 @@ Open &URI... Открыть &URI... + + Create Wallet... + Создать кошелёк... + + + Create a new wallet + Создать новый кошелёк + Wallet: - Кошелёк + Кошелёк: Click to disable network activity. @@ -327,7 +363,7 @@ Send coins to a Bitcoin address - Послать средства на биткойн адрес + Послать средства на Биткойн-адрес Backup wallet to another location @@ -371,11 +407,11 @@ Sign messages with your Bitcoin addresses to prove you own them - Подписывайте сообщения Bitcoin адресами чтобы подтвердить что это написали именно Вы + Подписывайте сообщения Биткойн-адресами чтобы подтвердить что это написали именно Вы Verify messages to ensure they were signed with specified Bitcoin addresses - Проверяйте сообщения чтобы убедиться что они подписаны конкретными Bitcoin адресами + Проверяйте сообщения чтобы убедиться что они подписаны конкретными Биткойн-адресами &File @@ -415,7 +451,7 @@ %n active connection(s) to Bitcoin network - %n активное подключение к сети Bitcoin%n активных подключения к сети Bitcoin%n активных подключений к сети Bitcoin%n активных подключений к сети Bitcoin + %n активное подключение к сети Bitcoin%n активных подключения к сети Bitcoin%n активных подключений к сети Bitcoin%n активных подключений к сети Биткойн Indexing blocks on disk... @@ -467,19 +503,19 @@ Open Wallet - Открыть Кошелек + Открыть Кошелёк Open a wallet - Открыть кошелек + Открыть кошелёк Close Wallet... - Закрыть Кошелек... + Закрыть Кошелёк... Close wallet - Закрыть кошелек + Закрыть кошелёк Show the %1 help message to get a list with possible Bitcoin command-line options @@ -487,7 +523,7 @@ default wallet - Кошелек по умолчанию + Кошелёк по умолчанию No wallets available @@ -499,7 +535,7 @@ Minimize - Сворачивать + Свернуть Zoom @@ -544,7 +580,7 @@ Wallet: %1 - Кошелек: %1 + Кошелёк: %1 @@ -587,15 +623,15 @@ Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Кошелек <b>зашифрован</b> и сейчас <b>разблокирован</b> + Кошелёк <b>зашифрован</b> и сейчас <b>разблокирован</b> Wallet is <b>encrypted</b> and currently <b>locked</b> - Кошелек <b>зашифрован</b> и сейчас <b>заблокирован</b> + Кошелёк <b>зашифрован</b> и сейчас <b>заблокирован</b> A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Произошла критическая ошибка. Bitcoin больше не может продолжать безопасную работу и будет закрыт. + Произошла критическая ошибка. Биткойн больше не может продолжать безопасную работу и будет закрыт. @@ -751,10 +787,58 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + Создание кошелька <b>%1</b>... + + + Create wallet failed + Не удалось создать кошелёк + + + Create wallet warning + Кошелёк создан + + CreateWalletDialog - + + Create Wallet + Создать кошелёк + + + Wallet Name + Название кошелька + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Зашифровать кошелёк. Кошелёк будет зашифрован паролем на ваш выбор. + + + Encrypt Wallet + Зашифровать кошелёк + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Отключить приватные ключи для этого кошелька. Кошельки с отключенными приватными ключами не будут иметь приватных ключей и HD мастер-ключ или импортированные приватные ключи. Это подходит только кошелькам для часов. + + + Disable Private Keys + Отключить приватные ключи + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Сделать пустой кошелёк. Чистые кошельки изначально не имеют приватных ключей или скриптов. Позже можно импортировать приватные ключи и адреса, или установить HD мастер-ключ. + + + Make Blank Wallet + Создать пустой кошелёк + + + Create + Создать + + EditAddressDialog @@ -791,7 +875,7 @@ The entered address "%1" is not a valid Bitcoin address. - Введенный адрес "%1" не является действительным адресом Bitcoin. + Введенный адрес "%1" не является действительным Биткойн-адресом. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -803,7 +887,7 @@ Could not unlock wallet. - Невозможно разблокировать кошелек. + Невозможно разблокировать кошелёк. New key generation failed. @@ -845,7 +929,7 @@ About %1 - Около %1 + О %1 Command-line options @@ -870,6 +954,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Когда вы нажмете ОК, %1 начнет загружать и обрабатывать полную цепочку блоков %4 (%2ГБ), начиная с самых ранних транзакций в %3, когда %4 был первоначально запущен. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Восстановление этого параметра в последствии требует повторной загрузки всей цепочки блоков. Быстрее будет сначала скачать полную цепочку, а потом - обрезать. Это также отключает некоторые расширенные функции. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Первоначальная синхронизация очень сложна и может выявить проблемы с оборудованием вашего компьютера, которые ранее оставались незамеченными. Каждый раз, когда вы запускаете %1, будет продолжена загрузка с того места, где остановился. @@ -890,6 +978,10 @@ Bitcoin Bitcoin Core + + Discard blocks after verification, except most recent %1 GB (prune) + Отменить блоки после проверки, кроме самых последних %1 ГБ (обрезать) + At least %1 GB of data will be stored in this directory, and it will grow over time. Как минимум %1 ГБ данных будет сохранен в эту директорию. Со временем размер будет увеличиваться. @@ -904,7 +996,7 @@ The wallet will also be stored in this directory. - Кошелек также будет сохранен в эту директорию. + Кошелёк также будет сохранен в эту директорию. Error: Specified data directory "%1" cannot be created. @@ -999,13 +1091,21 @@ OpenWalletActivity + + Open wallet failed + Не удалось открыть кошелёк + + + Open wallet warning + Кошелёк открыт + default wallet - Кошелек по умолчанию + Кошелёк по умолчанию Opening Wallet <b>%1</b>... - Кошелек открывается <b>%1</b>... + Кошелёк открывается <b>%1</b>... @@ -1036,15 +1136,15 @@ IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - IP-адрес прокси-сервера (к примеру, IPv4: 127.0.0.1 / IPv6: ::1) + IP-адрес прокси (к примеру, IPv4: 127.0.0.1 / IPv6: ::1) Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type. - Показывает, используется ли прокси-сервер SOCKS5 по умолчанию, для доступа к узлам через этот тип сети. + Показывает, используется ли прокси SOCKS5 по умолчанию, для доступа к узлам через этот тип сети. Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - Использовать отдельные SOCKS&5 прокси для подключения к пирам через Tor hidden services: + Использовать отдельные прокси SOCKS&5 для подключения к узлам через скрытые сервисы Tor: Hide the icon from the system tray. @@ -1052,7 +1152,7 @@ &Hide tray icon - &Спрятать иконку в трее + &Скрыть иконку из трея Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu. @@ -1128,7 +1228,7 @@ Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Автоматически открыть порт для Bitcoin-клиента на маршрутизаторе. Работает только если Ваш маршрутизатор поддерживает UPnP, и данная функция включена. + Автоматически открыть порт для Биткойн-клиента на маршрутизаторе. Работает только если Ваш маршрутизатор поддерживает UPnP, и данная функция включена. Map port using &UPnP @@ -1144,11 +1244,11 @@ Connect to the Bitcoin network through a SOCKS5 proxy. - Подключится к сети Bitcoin через SOCKS5 прокси. + Подключится к сети Биткойн через прокси SOCKS5. &Connect through SOCKS5 proxy (default proxy): - &Выполнить подключение через прокси-сервер SOCKS5 (прокси-сервер по умолчанию): + &Выполнить подключение через прокси SOCKS5 (прокси по умолчанию): Proxy &IP: @@ -1180,7 +1280,7 @@ Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Соединяться к Биткоин-сети через отдельные SOCKS5 прокси через Tor hidden services: + Подключатся к Биткойн-сети через отдельный прокси SOCKS5 для скрытых сервисов Tor. &Window @@ -1196,7 +1296,7 @@ M&inimize on close - З&акрыть при сворачивании + С&вернуть при закрытии &Display @@ -1280,7 +1380,7 @@ The supplied proxy address is invalid. - Введенный адрес прокси-сервера недействителен. + Указанный прокси-адрес недействителен. @@ -1291,7 +1391,7 @@ The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Отображаемая информация может быть устаревшей. Ваш бумажник автоматически синхронизируется с сетью Bitcoin после подключения, но этот процесс пока не завершён. + Отображаемая информация может быть устаревшей. Ваш кошелёк автоматически синхронизируется с сетью Биткойн после подключения, но этот процесс пока не завершён. Watch-only: @@ -1366,7 +1466,7 @@ Cannot start bitcoin: click-to-pay handler - Не удаётся запустить bitcoin: обработчик click-to-pay + Не удаётся запустить биткойн: обработчик click-to-pay URI handling @@ -1388,13 +1488,21 @@ Cannot process payment request because BIP70 support was not compiled in. Не удалось обработать запрос на оплату, так как поддержка BIP70 не была имплементирована. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Из-за широко распространенных недостатков безопасности в BIP70 настоятельно рекомендуется игнорировать любые торговые инструкции по переключению кошельков. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Если вы получили эту ошибку, вам следует запросить у продавца BIP21 совместимый URI. + Invalid payment address %1 Неверный адрес %1 URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - Не удалось обработать идентификатор! Это может быть связано с неверным Bitcoin-адресом или неправильными параметрами идентификатора. + Не удалось обработать идентификатор! Это может быть связано с неверным Биткойн-адресом или неправильными параметрами идентификатора. Payment request file handling @@ -1496,7 +1604,7 @@ Enter a Bitcoin address (e.g. %1) - Введите биткоин-адрес (напр. %1) + Введите биткойн-адрес (напр. %1) %1 d @@ -1702,7 +1810,7 @@ Wallet: - Кошелек: + Кошелёк: (none) @@ -1894,7 +2002,7 @@ WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - ВНИМАНИЕ: Мошенники предлагали пользователям вводить сюда команды, похищая таким образом содержимое их бумажников. Не используйте эту консоль без полного понимания смысла команд. + ВНИМАНИЕ: Мошенники предлагали пользователям вводить сюда команды, похищая таким образом содержимое их кошельков. Не используйте эту консоль без полного понимания смысла команд. Network activity disabled @@ -1957,7 +2065,7 @@ An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Необязательное сообщение для запроса платежа, которое будет показано при открытии запроса. Заметьте: сообщение не будет отправлено вместе с платежом через сеть Bitcoin. + Необязательное сообщение для запроса платежа, которое будет показано при открытии запроса. Заметьте: сообщение не будет отправлено вместе с платежом через сеть Биткойн. An optional label to associate with the new receiving address. @@ -2300,6 +2408,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p from wallet '%1' с кошелька '%1' + + %1 to '%2' + %1 на '%2' + %1 to %2 С %1 на %2 @@ -2332,6 +2444,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Total Amount Общая сумма + + To review recipient list click "Show Details..." + Чтобы просмотреть список получателей, нажмите «Показать подробно...» + Confirm send coins Подтвердить отправку монет @@ -2378,7 +2494,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Warning: Invalid Bitcoin address - Предупреждение: Неверный Bitcoin адрес + Предупреждение: Неверный Биткойн-адрес Warning: Unknown change address @@ -2421,7 +2537,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p The Bitcoin address to send the payment to - Bitcoin-адрес, на который отправить платёж + Биткойн-адрес, на который отправить платёж Alt+A @@ -2441,7 +2557,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - С отправляемой суммы будет удержана комиссия. Получателю придёт меньше биткоинов, чем вы вводите в поле количества. Если выбрано несколько получателей, комиссия распределяется поровну. + С отправляемой суммы будет удержана комиссия. Получателю придёт меньше биткойнов, чем вы вводите в поле количества. Если выбрано несколько получателей, комиссия распределяется поровну. S&ubtract fee from amount @@ -2469,7 +2585,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Сообщение прикрепленное к bitcoin идентификатору будет сохранено вместе с транзакцией для вашего сведения. Заметьте: сообщение не будет отправлено через сеть Bitcoin. + Сообщение прикрепленное к биткойн идентификатору будет сохранено вместе с транзакцией для вашего сведения. Заметьте: Сообщение не будет отправлено через сеть Биткойн. Pay To: @@ -2514,11 +2630,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Вы можете подписывать сообщения/соглашения своими адресами, чтобы доказать свою возможность получать биткоины на них. Будьте осторожны, не подписывайте что-то неопределённое или случайное, так как фишинговые атаки могут обманным путём заставить вас подписать нежелательные сообщения. Подписывайте только те сообщения, с которыми вы согласны вплоть до мелочей. + Вы можете подписывать сообщения/соглашения своими адресами, чтобы доказать свою возможность получать биткойны на них. Будьте осторожны, не подписывайте что-то неопределённое или случайное, так как фишинговые атаки могут обманным путём заставить вас подписать нежелательные сообщения. Подписывайте только те сообщения, с которыми вы согласны вплоть до мелочей. The Bitcoin address to sign the message with - Bitcoin-адрес, которым подписать сообщение + Биткойн-адрес, которым подписать сообщение Choose previously used address @@ -2550,7 +2666,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Sign the message to prove you own this Bitcoin address - Подписать сообщение, чтобы доказать владение Bitcoin-адресом + Подписать сообщение, чтобы доказать владение Биткойн-адресом Sign &Message @@ -2574,11 +2690,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p The Bitcoin address the message was signed with - Bitcoin-адрес, которым было подписано сообщение + Биткойн-адрес, которым было подписано сообщение Verify the message to ensure it was signed with the specified Bitcoin address - Проверить сообщение, чтобы убедиться, что оно было подписано указанным Bitcoin-адресом + Проверить сообщение, чтобы убедиться, что оно было подписано указанным Биткойн-адресом Verify &Message @@ -2782,6 +2898,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Output index Индекс выхода + + (Certificate was not verified) + (Сертификат не был проверен) + Merchant Мерчант @@ -3103,7 +3223,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p WalletController Close wallet - Закрыть кошелек + Закрыть кошелёк + + + Are you sure you wish to close the wallet <i>%1</i>? + Вы уверены, что хотите закрыть кошелёк <i>%1</i>? Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. @@ -3161,7 +3285,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p default wallet - Кошелек по умолчанию + Кошелёк по умолчанию @@ -3343,11 +3467,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Error loading %s: Wallet corrupted - Ошибка загрузки %s: кошелек поврежден + Ошибка загрузки %s: кошелёк поврежден Error loading %s: Wallet requires newer version of %s - Ошибка загрузки %s: кошелек требует более поздней версии %s + Ошибка загрузки %s: кошелёк требует более поздней версии %s Error loading block database @@ -3363,7 +3487,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Failed to rescan the wallet during initialization - Не удалось повторно сканировать кошелек во время инициализации + Не удалось повторно сканировать кошелёк во время инициализации Importing... @@ -3475,7 +3599,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Wallet needed to be rewritten: restart %s to complete - Необходимо перезаписать бумажник, перезапустите %s для завершения операции. + Необходимо перезаписать кошелёк, перезапустите %s для завершения операции. Error: Listening for incoming connections failed (listen returned error %s) @@ -3621,7 +3745,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup. - Внимание: Файл бумажника поврежден, данные восстановлены! Оригинальный %s сохранен как %s в %s; Если баланс или транзакции некорректны, вы должны восстановить файл из резервной копии. + Внимание: Файл кошелька поврежден, данные восстановлены! Оригинальный %s сохранен как %s в %s; Если баланс или транзакции некорректны, вы должны восстановить файл из резервной копии. %s is set very high! @@ -3669,7 +3793,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified. - Невозможно обновить не разделенный HD кошелек без обновления для поддержки предварительно разделенного пула ключей. Пожалуйста, используйте -upgradewallet=169900 или -upgradeallet без указания версии. + Невозможно обновить не разделенный HD кошелёк без обновления для поддержки предварительно разделенного пула ключей. Пожалуйста, используйте -upgradewallet=169900 или -upgradeallet без указания версии. Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee. diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts index ffba4caaca..9f84850cab 100644 --- a/src/qt/locale/bitcoin_sk.ts +++ b/src/qt/locale/bitcoin_sk.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Toto sú Vaše Bitcoin adresy pre posielanie platieb. Vždy skontrolujte sumu a prijímaciu adresu pred poslaním mincí. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Toto sú vaše Bitcoin adresy pre prijímanie platieb. Pre vytvorenie nových adries použite tlačidlo 'Vytvoriť novú prijímajúcu adresu' na karte Prijať. + &Copy Address &Kopírovať adresu @@ -131,6 +135,10 @@ Repeat new passphrase Zopakujte nové heslo + + Show passphrase + Zobraziť frázu + Encrypt wallet Zašifrovať peňaženku @@ -171,6 +179,30 @@ Wallet encrypted Peňaženka zašifrovaná + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Zadajte novú prístupovú frázu pre peňaženku.<br/>Prosím použite frázu dlhú <b>desať či viac náhodných znakov</b>, alebo <b>osem či viac slov</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Zadajte starú a novú frázu pre túto peňaženku. + + + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Pamätajte, že zašifrovanie peňaženky neochráni úplne vaše bitcoiny pred ukradnutím škodlivými programami vo vašom počítači. + + + Wallet to be encrypted + Peňaženka na zašifrovanie + + + Your wallet is about to be encrypted. + Vaša peňaženka bude zašifrovaná. + + + Your wallet is now encrypted. + Vaša peňaženka je zašifrovaná. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. DÔLEŽITÉ: Všetky predchádzajúce zálohy vašej peňaženky, ktoré ste vykonali by mali byť nahradené novo vytvorenou, zašifrovanou peňaženkou. Z bezpečnostných dôvodov bude predchádzajúca záloha nezašifrovanej peňaženky k ničomu, akonáhle začnete používať novú, zašifrovanú peňaženku. @@ -279,7 +311,7 @@ &Encrypt Wallet... - &Zašifrovať Peňaženku... + &Zašifrovať peňaženku... &Backup Wallet... @@ -287,12 +319,20 @@ &Change Passphrase... - &Zmena Hesla... + &Zmeniť heslo... Open &URI... Otvoriť &URI... + + Create Wallet... + Vytvoriť peňaženku... + + + Create a new wallet + Vytvoriť novú peňaženku + Wallet: Peňaženka: @@ -447,7 +487,7 @@ Information - Informácia + Informácie Up to date @@ -738,7 +778,7 @@ change from %1 (%2) - zmena od %1 (%2) + zmeniť z %1 (%2) (change) @@ -747,10 +787,58 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + Vytvára sa peňaženka <b>%1</b>... + + + Create wallet failed + Vytvorenie peňaženky zlyhalo + + + Create wallet warning + Varovanie vytvárania peňaženky + + CreateWalletDialog - + + Create Wallet + Vytvoriť peňaženku + + + Wallet Name + Názov peňaženky + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Zašifrovať peňaženku. Peňaženka bude zašifrovaná frázou, ktoré si zvolíte. + + + Encrypt Wallet + Zašifrovať peňaženku + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Vypnúť súkromné kľúče pre túto peňaženku. Peňaženky s vypnutými súkromnými kľúčmi nebudú mať súkromné kľúče a nemôžu mať HD inicializáciu ani importované súkromné kľúče. Toto je ideálne pre peňaženky iba na sledovanie. + + + Disable Private Keys + Vypnúť súkromné kľúče + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Vytvoriť prázdnu peňaženku. Prázdne peňaženky na začiatku nemajú žiadne súkromné kľúče ani skripty. Neskôr môžu byť importované súkromné kľúče a adresy alebo nastavená HD inicializácia. + + + Make Blank Wallet + Vytvoriť prázdnu peňaženku + + + Create + Vytvoriť + + EditAddressDialog @@ -866,6 +954,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Hneď po stlačení OK, začne %1 stťahovať a spracovávať celý %4 reťazec blokov (%2 GB), začínajúc nejstaršími transakcemi z roku %3, kdey bol %4 spustený. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Zvrátenie tohto nastavenia vyžaduje opätovné stiahnutie celého reťazca blokov. Je rýchlejšie najprv stiahnuť celý reťazec blokov a potom ho redukovať neskôr. Vypne niektoré pokročilé funkcie. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Prvá synchronizácia je veľmi náročná a môžu sa tak vďaka nej začat na Vašom počítači projavovať doteraz skryté hárdwarové problémy. Vždy, keď spustíte %1, bude sťahovanie pokračovať tam, kde skončilo. @@ -886,6 +978,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Zahodiť bloky po ich overení, okrem posledných %1 GB (redukovanie) + At least %1 GB of data will be stored in this directory, and it will grow over time. V tejto zložke bude uložených aspoň %1 GB dát a postupom času sa bude zväčšovať. @@ -918,7 +1014,11 @@ (of %n GB needed) (z %n GB potrebného)(z %n GB potrebných)(z %n GB potrebných)(z %n GB potrebných) - + + (%n GB needed for full chain) + (%n GB potrebný pre plný reťazec)(%n GB potrebné pre plný reťazec)(%n GB potrebných pre plný reťazec)(%n GB potrebných pre plný reťazec) + + ModalOverlay @@ -995,6 +1095,14 @@ OpenWalletActivity + + Open wallet failed + Otvorenie peňaženky zlyhalo + + + Open wallet warning + Varovanie otvárania peňaženky + default wallet predvolená peňaženka @@ -1080,7 +1188,7 @@ Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher. - Zakáže niektoré pokročilé funkcie, ale všetky bloky budú stále plne overené. Obnovenie tohto nastavenia vyžaduje opätovné prevzatie celého blockchainu. Skutočné využitie disku môže byť o niečo vyššie. + Zakáže niektoré pokročilé funkcie, ale všetky bloky budú stále plne overené. Obnovenie tohto nastavenia vyžaduje opätovné prevzatie celého reťazca blokov. Skutočné využitie disku môže byť o niečo vyššie. Prune &block storage to @@ -1092,7 +1200,7 @@ Reverting this setting requires re-downloading the entire blockchain. - Obnovenie tohto nastavenia vyžaduje opätovné prevzatie celého blockchainu. + Obnovenie tohto nastavenia vyžaduje opätovné stiahnutie celého reťazca blokov. MiB @@ -1112,7 +1220,7 @@ Enable coin &control features - Povoliť možnosti &kontroly minci + Povoliť možnosti &kontroly mincí If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed. @@ -1216,7 +1324,7 @@ Whether to show coin control features or not. - Či zobrazovať možnosti kontroly minci alebo nie. + Či zobrazovať možnosti kontroly mincí alebo nie. &Third party transaction URLs @@ -1384,6 +1492,14 @@ Cannot process payment request because BIP70 support was not compiled in. Nemožno spracovať žiadosť o platbu, pretože podpora pre BIP70 nebola zahrnutá. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Kvôli mnohým bezpečnostným chybám v BIP70 sa dôrazne odporúča ignorovať inštrukcie na prepínanie peňaženiek od akýchkoľvek obchodníkov. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Ak dostávate túto chybu mali by ste od obchodníka vyžiadať URI adresu kompatibilnú s BIP21. + Invalid payment address %1 Neplatná adresa platby %1 @@ -1605,6 +1721,10 @@ Error encoding URI into QR Code. Chyba kódovania URI do QR Code. + + QR code support not available. + Nie je dostupná podpora QR kódov. + Save QR Code Uložiť QR Code @@ -1626,7 +1746,7 @@ &Information - &Informácia + &Informácie Debug window @@ -1650,7 +1770,7 @@ Blocksdir - Blocksdir + Priečinok s blokmi To specify a non-default location of the blocks directory use the '%1' option. @@ -1887,7 +2007,7 @@ WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - UPOZORNENIE: Podvodníci sú aktívni a hovoria používateľom, aby sem zadávali príkazy, ktorými im ale následne vykradnú ich peňaženky. Nepoužívajte túto konzolu, ak plne nepoynáte dôsledky jednotlivých príkazov. + UPOZORNENIE: Podvodníci sú aktívni a hovoria používateľom, aby sem zadávali príkazy, ktorými im ale následne vykradnú ich peňaženky. Nepoužívajte túto konzolu, ak plne nepoznáte dôsledky jednotlivých príkazov. Network activity disabled @@ -1964,6 +2084,10 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. Voliteľná požadovaná suma. Nechajte prázdne alebo nulu ak nepožadujete určitú sumu. + + &Create new receiving address + Vytvoriť novú adresu pre prijímanie + Clear all fields of the form. Vyčistiť všetky polia formulára. @@ -2107,7 +2231,7 @@ Coin Control Features - Možnosti kontroly minci + Možnosti kontroly mincí Inputs... @@ -2285,6 +2409,10 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato %1 (%2 blocks) %1 (%2 blokov) + + from wallet '%1' + z peňaženky '%1' + %1 to '%2' %1 do '%2' @@ -2321,6 +2449,10 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Total Amount Celková suma + + To review recipient list click "Show Details..." + Pre prezretie zoznamu príjemcov kliknite "Zobraziť detaily..." + Confirm send coins Potvrďte odoslanie mincí @@ -2771,6 +2903,10 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Output index Index výstupu + + (Certificate was not verified) + (Certifikát nebol overený) + Merchant Kupec @@ -3094,9 +3230,13 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Close wallet Zatvoriť peňaženku + + Are you sure you wish to close the wallet <i>%1</i>? + Naozaj chcete zavrieť peňaženku <i>%1</i>? + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. - Zatvorenie peňaženky na príliš dlhú dobu môže mať za následok potrebu znova synchronizovať celý blockchain v prípade, že je aktivované redukovanie blockchainu. + Zatvorenie peňaženky na príliš dlhú dobu môže mať za následok potrebu znova synchronizovať celý reťazec blokov (blockchain) v prípade, že je aktivované redukovanie blokov. @@ -3196,7 +3336,7 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato bitcoin-core Distributed under the MIT software license, see the accompanying file %s or %s - Distribuované pod softvérovou licenciou MIT, viď sprievodný súbor %s alebo %s + Distribuované pod softvérovou licenciou MIT, pozri sprievodný súbor %s alebo %s Prune configured below the minimum of %d MiB. Please use a higher number. @@ -3204,11 +3344,11 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) - Prerezávanie: posledná synchronizácia peňaženky prebehla pred už prerezanými dátami. Je treba previesť -reindex (v prípade prerezávacieho režimu stiahne znovu celý reťazec blokov) + Redukovanie: posledná synchronizácia peňaženky prebehla pred časmi blokov v redukovaných dátach. Je potrebné vykonať -reindex (v prípade redukovaného režimu stiahne znovu celý reťazec blokov) Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. - V prerezávaciom režime nie je možné reťazec blokov preskenovať. Musíte vykonať -reindex, čo znova stiahne celý reťaec blokov. + V redukovanom režime nie je možné reťazec blokov preskenovať. Musíte vykonať -reindex, čo znova stiahne celý reťaec blokov. Error: A fatal internal error occurred, see debug.log for details @@ -3280,7 +3420,7 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato %d of last 100 blocks have unexpected version - %d z poslednźých 100 blokov má neočakávanú verziu + %d z posledných 100 blokov má neočakávanú verziu %s corrupt, salvage failed @@ -3366,6 +3506,10 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Initialization sanity check failed. %s is shutting down. Kontrola čistoty pri inicializácií zlyhala. %s sa vypína. + + Invalid P2P permission: '%s' + Neplatné oprávnenie P2P: '%s' + Invalid amount for -%s=<amount>: '%s' Neplatná suma pre -%s=<amount>: '%s' @@ -3382,6 +3526,14 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Specified blocks directory "%s" does not exist. Zadaný adresár blokov "%s" neexistuje. + + Unknown address type '%s' + Neznámy typ adresy '%s' + + + Unknown change type '%s' + Neznámy typ zmeny '%s' + Upgrading txindex database Inovuje sa txindex databáza @@ -3390,6 +3542,10 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Loading P2P addresses... Načítavam P2P adresy… + + Error: Disk space is too low! + Chyba: Príliš málo miesta na disku! + Loading banlist... Načítavam banlist... @@ -3464,7 +3620,7 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain - K návratu k neprerezávaciemu režimu je treba prestavať databázu použitím -reindex. Tiež sa znova stiahne celý reťazec blokov + K návratu k neredukovanému režimu je potrebné prestavať databázu použitím -reindex. Tiež sa znova stiahne celý reťazec blokov Error reading from database, shutting down. @@ -3498,6 +3654,10 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Need to specify a port with -whitebind: '%s' Je potrebné zadať port s -whitebind: '%s' + + Prune mode is incompatible with -blockfilterindex. + Režim redukovania je nekompatibilný s -blockfilterindex. + Reducing -maxconnections from %d to %d, because of system limitations. Obmedzuje sa -maxconnections z %d na %d kvôli systémovým obmedzeniam. @@ -3582,7 +3742,7 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Tento produkt zahrňuje programy vyvinuté projektom OpenSSL pre použití v OpenSSL Toolkite %s a kryptografický program od Erika Younga a program UPnP od Thomasa Bernarda. + Tento produkt zahŕňa programy vyvinuté projektom OpenSSL pre použitie v OpenSSL Toolkite %s a kryptografický program od Erika Younga a program UPnP od Thomasa Bernarda. Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. diff --git a/src/qt/locale/bitcoin_sl.ts b/src/qt/locale/bitcoin_sl.ts index 29fd6ada06..4d7744a443 100644 --- a/src/qt/locale/bitcoin_sl.ts +++ b/src/qt/locale/bitcoin_sl.ts @@ -2901,6 +2901,10 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Output index Indeks izhoda + + (Certificate was not verified) + (Certifikat ni bil overjen) + Merchant Trgovec diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts index 323bcaf714..7856d3fc69 100644 --- a/src/qt/locale/bitcoin_sv.ts +++ b/src/qt/locale/bitcoin_sv.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Detta är dina Bitcoin-adresser för att skicka betalningar. Kontrollera alltid belopp och mottagaradress innan du skickar bitcoin. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Detta är dina Bitcoinadresser för att ta emot betalningar. Använd knappen 'Skapa ny mottagaradress' på fliken ta emot för att skapa nya adresser . + &Copy Address &Kopiera adress @@ -132,6 +136,10 @@ Försök igen. Repeat new passphrase Upprepa ny lösenfras + + Show passphrase + Visa lösenfras + Encrypt wallet Kryptera plånbok @@ -172,10 +180,30 @@ Försök igen. Wallet encrypted Plånbok krypterad + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Ange den nya lösenfrasen för plånboken. <br/> Använd en lösenfras på <b>tio eller fler slumpmässiga tecken</b>, eller <b>åtta eller fler ord</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Ange den gamla lösenfrasen och den nya lösenfrasen för plånboken. + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. Kom ihåg att kryptering av din plånbok inte helt kan skydda dig från stöld av dina bitcoins om skadlig kod infekterat din dator. + + Wallet to be encrypted + Plånbok som ska krypteras + + + Your wallet is about to be encrypted. + Din plånbok kommer att krypteras. + + + Your wallet is now encrypted. + Din plånbok är nu krypterad. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. VIKTIGT: Alla tidigare säkerhetskopior du har skapat av plånboksfilen ska ersättas med den nyss skapade, krypterade plånboksfilen. Av säkerhetsskäl kommer tidigare säkerhetskopior av den okrypterade plånboksfilen att bli oanvändbara när du börjar använda den nya, krypterade plånboken. @@ -298,6 +326,14 @@ Försök igen. Open &URI... Öppna &URI... + + Create Wallet... + Skapa plånbok... + + + Create a new wallet + Skapa ny plånbok + Wallet: Plånbok: @@ -526,6 +562,10 @@ Försök igen. Error: %1 Fel: %1 + + Warning: %1 + Varning: %1 + Date: %1 @@ -748,10 +788,38 @@ Försök igen. CreateWalletActivity + + Creating Wallet <b>%1</b>... + Skapar plånboken <b>%1</b>... + + + Create wallet failed + Plånboken kunde inte skapas + CreateWalletDialog - + + Create Wallet + Skapa plånbok + + + Wallet Name + Namn på plånboken + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Kryptera plånboken. Plånboken krypteras med en lösenfras som du själv väljer. + + + Encrypt Wallet + Kryptera plånbok + + + Create + Skapa + + EditAddressDialog @@ -913,13 +981,17 @@ Försök igen. %n GB of free space available - %n GB fritt utrymme kvar%n GB fritt utrymme kvar + %n GB fritt utrymme kvar%n GB ledigt utrymme kvar (of %n GB needed) - (av %n GB behövs)(av %n GB behövs) + (av %n GB behövs)(av de %n GB som behövs) - + + (%n GB needed for full chain) + (%n GB behövs för hela kedjan)(%n GB behövs för hela kedjan) + + ModalOverlay @@ -996,6 +1068,10 @@ Försök igen. OpenWalletActivity + + Open wallet failed + Det gick inte att öppna plånboken + default wallet Standardplånbok @@ -1964,6 +2040,10 @@ Försök igen. An optional amount to request. Leave this empty or zero to not request a specific amount. Ett valfritt belopp att begära. Lämna tomt eller ange noll för att inte begära ett specifikt belopp. + + &Create new receiving address + S&kapa ny mottagaradress + Clear all fields of the form. Rensa alla formulärfälten @@ -2285,6 +2365,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f %1 (%2 blocks) %1 (%2 block) + + from wallet '%1' + från plånbok: '%1' + %1 to %2 %1 till %2 @@ -3386,6 +3470,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Loading P2P addresses... Läser in P2P-adresser... + + Error: Disk space is too low! + Fel: Diskutrymmet är för lågt! + Loading banlist... Läser in listan över bannlysningar … @@ -3494,6 +3582,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Need to specify a port with -whitebind: '%s' Port måste anges med -whitelist: '%s' + + Prune mode is incompatible with -blockfilterindex. + Gallringsläge är inkompatibelt med -blockfilterindex. + Reducing -maxconnections from %d to %d, because of system limitations. Minskar -maxconnections från %d till %d, på grund av systembegränsningar. @@ -3662,7 +3754,7 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Done loading - Klar med laddning + Inläsning klar \ No newline at end of file diff --git a/src/qt/locale/bitcoin_ta.ts b/src/qt/locale/bitcoin_ta.ts index caf281158a..2eceb0842a 100644 --- a/src/qt/locale/bitcoin_ta.ts +++ b/src/qt/locale/bitcoin_ta.ts @@ -7,15 +7,15 @@ Create a new address - புதிய முகவரியை உருவாக்கவும் + புதிய முகவரியை உருவாக்கு &New - &புதிய + &புதியது Copy the currently selected address to the system clipboard - தற்போது தேர்ந்தெடுக்கப்பட்ட முகவரியை கணினி கிளிப்போர்டுக்கு நகலெடுக்கவும். + தற்போது தேர்ந்தெடுக்கப்பட்ட முகவரியை கணினி கிளிப்போர்டுக்கு காபி செய்யவும். &Copy @@ -39,7 +39,7 @@ &Export - &ஏற்றுமதி + &எக்ஸ்போர்ட் &Delete @@ -47,12 +47,16 @@ Choose the address to send coins to - நாணயங்களை அனுப்புவதற்கு முகவரியைத் தேர்வு செய்க + பிட்காயினை அனுப்புவதற்கு முகவரியைத் தேர்வு செய்க Choose the address to receive coins with நாணயங்களைப் பெற முகவரியைத் தேர்வுசெய்யவும் + + C&hoose + தே&ர்வுசெய் + Sending addresses முகவரிகள் அனுப்பப்படுகின்றன @@ -179,6 +183,26 @@ Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. வாலட்டை பாதுகாக்க புதிய கடவுச்சொல்லை உல்லிடவும். பத்து அல்லது அதற்கு மேற்பட்ட எழுத்துகள் அல்லது எட்டு அல்லது அதற்கு மேற்பட்ட எழுத்துக்களை கடவுச்சொல்லாக பயன்படுத்தவும். + + Enter the old passphrase and new passphrase for the wallet. + பழைய கடவுச்சொல் மற்றும் புதிய கடுவுசொல்லை உள்ளிடுக. + + + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + வாலட்டை குறியாக்கம் செய்தால் மட்டும் உங்கள் பிட்காயினை வைரஸிடம் இருந்து பாதுகாக்க இயலாது. + + + Wallet to be encrypted + குறியாக்கம் செய்யப்பட வேண்டிய வால்லட் + + + Your wallet is about to be encrypted. + உங்கள் வால்லட் குறியாக்கம் செய்யப்பட உள்ளது. + + + Your wallet is now encrypted. + வால்லட் இப்போது குறியாக்கம் செய்யப்பட்டது. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. முக்கியமானது: உங்கள் பணப்பரிமாற்றத்தை நீங்கள் உருவாக்கிய முந்தைய காப்புப்பிரதி புதிதாக உருவாக்கப்பட்ட, மறைகுறியாக்கப்பட்ட பணப்பரிமாற்றத்துடன் மாற்றப்பட வேண்டும். பாதுகாப்பு காரணங்களுக்காக, நீங்கள் புதிய, மறைகுறியாக்கப்பட்ட பணப்பையைப் பயன்படுத்த ஆரம்பித்தவுடன், மறைகுறியாக்கப்பட்ட பணப்பல் கோப்பின் முந்தைய காப்புப்பிரதிகள் பயனற்றதாகிவிடும். @@ -301,6 +325,14 @@ Open &URI... &URI-ஐ திற + + Create Wallet... + வாலட்டை உருவாக்கு... + + + Create a new wallet + புதிய வாலட்டை உருவாக்கு + Wallet: கைப்பை: @@ -425,6 +457,10 @@ Processing blocks on disk... வட்டில் தொகுதிகள் செயலாக்கப்படுகின்றன ... + + Processed %n block(s) of transaction history. + பரிவர்த்தனை வரலாற்றில் %n ப்லாக் செயலாக்கப்பட்டது.பரிவர்த்தனை வரலாற்றில் %n ப்லாக்ககள் செயலாக்கப்பட்டன. + %1 behind %1 பின்னால் @@ -461,10 +497,34 @@ &Receiving addresses முகவரிகள் பெறுதல் + + Open Wallet + வாலட்டை திற + + + Open a wallet + வாலட்டை திற + + + Close Wallet... + வாலட்டை மூடு... + + + Close wallet + வாலட்டை மூடு + Show the %1 help message to get a list with possible Bitcoin command-line options சாத்தியமான Bitcoin கட்டளை-வரி விருப்பங்களைக் கொண்ட பட்டியலைப் பெற %1 உதவிச் செய்தியைக் காட்டு + + default wallet + அடிப்படை வாலட் + + + No wallets available + வாலட் எதுவும் இல்லை + &Window &சாளரம் @@ -497,6 +557,10 @@ Error: %1 பிழை: %1 + + Warning: %1 + எச்சரிக்கை: %1 + Date: %1 @@ -507,12 +571,24 @@ Amount: %1 தொகை: %1 + + + + Wallet: %1 + + வாலட்: %1 Type: %1 வகை: %1 + + + + Label: %1 + + லேபிள்: %1 @@ -707,10 +783,58 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + வாலட் உருவாக்கம்<b>%1</b>... + + + Create wallet failed + வாலட் உருவாக்கம் தோல்வி அடைந்தது + + + Create wallet warning + வாலட் உருவாக்கம் எச்சரிக்கை + + CreateWalletDialog - + + Create Wallet + வாலட்டை உருவாக்கு + + + Wallet Name + வாலட் பெயர் + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + வாலட்டை குறியாக்கம் செய்யவும். உங்கள் விருப்பப்படி கடவுச்சொல்லுடன் வாலட் குறியாக்கம் செய்யப்படும். + + + Encrypt Wallet + வாலட்டை குறியாக்குக + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + இந்த வாலட்டிற்கு ப்ரைவேட் கீஸை முடக்கு. முடக்கப்பட்ட ப்ரைவேட் கீஸ் கொண்ட வாலட்டிற்கு ப்ரைவேட் கீஸ் இருக்காது மற்றும் எச்டி ஸீட் அல்லது இம்போர்ட் செய்யப்பட்ட ப்ரைவேட் கீஸ் இருக்கக்கூடாது. பார்க்க-மட்டும் உதவும் வாலட்டிற்கு இது ஏற்றது. + + + Disable Private Keys + ப்ரைவேட் கீஸ் ஐ முடக்கு + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + காலியான வாலட்டை உருவாக்கு. காலியான வாலட்டிற்கு ஆரம்பத்தில் ப்ரைவேட் கீஸ் மற்றும் ஸ்கிரிப்ட் இருக்காது. ப்ரைவேட் கீஸ் மற்றும் முகவரிகளை இம்போர்ட் செய்து கொள்ளலாம், அல்லது எச்டி ஸீடை பின்னர், அமைத்து கொள்ளலாம். + + + Make Blank Wallet + காலியான வாலட்டை உருவாக்கு + + + Create + உருவாக்கு + + EditAddressDialog @@ -826,6 +950,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. நீங்கள் சரி என்பதைக் கிளிக் செய்தால் %1 ஆரம்பத்தில் %4 இல் ஆரம்பிக்கப்பட்ட %3 இன் ஆரம்ப பரிவர்த்தனைகளைத் தொடங்கும் போது முழு %4 தொகுதி சங்கிலி (%2GB) பதிவிறக்க மற்றும் செயலாக்கத் தொடங்கும். + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + இந்த அமைப்பை மாற்றியமைக்க முழு பிளாக்செயினையும் மீண்டும் டவுன்லோட் செய்ய வேண்டும். முதலில் முழு செயினையும் டவுன்லோட் செய்த பின்னர் ப்ரூன் செய்வது வேகமான செயல் ஆகும். சில மேம்பட்ட அம்சங்களை முடக்கும். + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. இந்த ஆரம்ப ஒத்திசைவு மிகவும் கோரி வருகிறது, முன்பு கவனிக்கப்படாத உங்கள் கணினியுடன் வன்பொருள் சிக்கல்களை அம்பலப்படுத்தலாம். ஒவ்வொரு முறையும் நீங்கள் %1 ரன் இயங்கும் போது, ​​அது எங்கிருந்து வெளியேறும் என்பதைத் தொடர்ந்து பதிவிறக்கும். @@ -846,6 +974,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + சமீபத்திய %1 ஜிபி ப்லாக்கை தவிர (ப்ரூன்), சரிபார்ப்புக்குப் பிறகு மற்ற ப்லாக்கை நிராகரிக்கவும் + At least %1 GB of data will be stored in this directory, and it will grow over time. குறைந்தது %1 ஜிபி தரவு இந்த அடைவில் சேமிக்கப்படும், மேலும் காலப்போக்கில் அது வளரும். @@ -947,7 +1079,23 @@ OpenWalletActivity - + + Open wallet failed + வாலட் திறத்தல் தோல்வியுற்றது + + + Open wallet warning + வாலட் திறத்தல் எச்சரிக்கை + + + default wallet + அடிப்படை வாலட் + + + Opening Wallet <b>%1</b>... + வாலட் திறத்தல் <b>%1</b>... + + OptionsDialog @@ -1328,6 +1476,14 @@ Cannot process payment request because BIP70 support was not compiled in. கட்டண கோரிக்கையை செயல்படுத்த முடியவில்லை, ஏனெனில் BIP70 ஆதரவு தொகுக்கப்படவில்லை. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + பிப்70 இல் உள்ள பரவலான பாதுகாப்பு குறைபாடுகள் காரணமாக, வாலட்டை மாற்றுவதற்கான எந்தவொரு வணிக அறிவுறுத்தல்களும் புறக்கணிக்கப்பட வேண்டும் என்று கடுமையாக பரிந்துரைக்கப்படுகிறது. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + இந்த பிழையை நீங்கள் பெறுகிறீர்கள் என்றால், வணிகரிடம் பிப்21 இணக்கமான யுஆர்எல் லை வழங்குமாறு கேட்க வேண்டும். + Invalid payment address %1 தவறான கட்டண முகவரி %1 @@ -1525,6 +1681,10 @@ Error encoding URI into QR Code. QR குறியீட்டில் யு.ஆர்.ஐ குறியாக்கப் பிழை. + + QR code support not available. + க்யு ஆர் கோட் சப்போர்ட் இல்லை + Save QR Code QR குறியீடு சேமிக்கவும் @@ -1883,6 +2043,10 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. கோரிக்கைக்கு விருப்பமான தொகை. ஒரு குறிப்பிட்ட தொகையை கோர வேண்டாம் இந்த வெற்று அல்லது பூஜ்ஜியத்தை விடு. + + &Create new receiving address + &புதிய பிட்காயின் பெறும் முகவரியை உருவாக்கு + Clear all fields of the form. படிவத்தின் அனைத்து துறையையும் அழி. @@ -2144,10 +2308,30 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p A too low fee might result in a never confirming transaction (read the tooltip) ஒரு மிக குறைந்த கட்டணம் ஒரு உறுதி பரிவர்த்தனை விளைவாக (உதவிக்குறிப்பு வாசிக்க) + + Confirmation time target: + உறுதிப்படுத்தும் நேர இலக்கு: + + + Enable Replace-By-Fee + மாற்று-கட்டணத்தை இயக்கு + + + With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk. + மாற்று-கட்டணத்தின் (பிப்-125) மூலம், ஒரு பரிவர்த்தனையின் கட்டணத்தை அனுப்பிய பின் அதை அதிகரிக்கலாம். இது இல்லை என்றால், பரிவர்த்தனையின் தாமத அபாயத்தை ஈடுசெய்ய அதிக கட்டணம் பரிந்துரைக்கப்படலாம். + + + Clear &All + அழி &அனைத்து + Balance: இருப்பு: + + Confirm the send action + அனுப்பும் செயலை உறுதிப்படுத்து + S&end &அனுப்பு @@ -2180,10 +2364,106 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Copy change மாற்றத்தை நகலெடுக்கவும் + + %1 (%2 blocks) + %1 (%2 ப்ளாக்ஸ்) + + + from wallet '%1' + வாலட்டில் இருந்து '%1' + + + %1 to '%2' + %1 இருந்து '%2' + + + %1 to %2 + %1 இருந்து %2 + + + Are you sure you want to send? + நீங்கள் நிச்சயமாக அனுப்ப விரும்புகிறீர்களா? + + + or + அல்லது + + + You can increase the fee later (signals Replace-By-Fee, BIP-125). + நீங்கள் கட்டணத்தை பின்னர் அதிகரிக்கலாம் (என்கிறது மாற்று கட்டணம், பிப்-125). + + + Please, review your transaction. + தயவு செய்து, உங்கள் பரிவர்த்தனையை சரிபார்க்கவும். + + + Transaction fee + பரிமாற்ற கட்டணம் + + + Not signalling Replace-By-Fee, BIP-125. + சிக்னல் செய்யவில்லை மாற்று-கட்டணம், பிப்-125. + + + Total Amount + முழு தொகை + + + To review recipient list click "Show Details..." + பெறுநரின் பட்டியலை சரிபார்க்க "விவரங்களைக் காண்பி ..." என்பதைக் கிளிக் செய்யவும் + + + Confirm send coins + அனுப்பும் பிட்காயின்களை உறுதிப்படுத்தவும் + + + The recipient address is not valid. Please recheck. + பெறுநரின் முகவரி தவறானது. மீண்டும் சரிபார்க்கவும். + + + The amount to pay must be larger than 0. + அனுப்ப வேண்டிய தொகை 0வை விட பெரியதாக இருக்க வேண்டும். + + + The amount exceeds your balance. + தொகை உங்கள் இருப்பையைவிட அதிகமாக உள்ளது. + + + Duplicate address found: addresses should only be used once each. + நகல் முகவரி காணப்பட்டது: முகவரிகள் ஒவ்வொன்றும் ஒரு முறை மட்டுமே பயன்படுத்தப்பட வேண்டும். + + + Transaction creation failed! + பரிவர்த்தனை உருவாக்கம் தோல்வியடைந்தது! + + + The transaction was rejected with the following reason: %1 + பரிவர்த்தனை பின்வரும் காரணத்தால் நிராகரிக்கப்பட்டது: %1 + Payment request expired. கட்டணம் கோரிக்கை காலாவதியானது. + + Estimated to begin confirmation within %n block(s). + %n பிளாக்குள் உறுதிப்படுத்தலைத் தொடங்க மதிப்பிடப்பட்டுள்ளது.%n பிளாக்குள் உறுதிப்படுத்தலைத் தொடங்க மதிப்பிடப்பட்டுள்ளது. + + + Warning: Invalid Bitcoin address + எச்சரிக்கை: தவறான பிட்காயின் முகவரி + + + Warning: Unknown change address + எச்சரிக்கை: தெரியாத மாற்று முகவரி + + + Confirm custom change address + தனிப்பயன் மாற்று முகவரியை உறுதிப்படுத்து + + + The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? + மாற்றத்திற்காக நீங்கள் தேர்ந்தெடுத்த முகவரி இந்த வாலட்டிற்கு சொந்தமானது இல்லை. உங்கள் வாலாட்டில் உள்ள ஏதேனும் அல்லது அனைத்து தொகையையும் இந்த முகவரிக்கு அனுப்பப்படலாம். நீ சொல்வது உறுதியா? + (no label) (லேபிள் இல்லை) @@ -2195,23 +2475,87 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p A&mount: &தொகை: + + Pay &To: + செலுத்து &கொடு: + &Label: &சிட்டை: + + Choose previously used address + முன்பு பயன்படுத்திய முகவரியைத் தேர்வுசெய் + + + This is a normal payment. + இது சாதாரண கட்டணம். + + + The Bitcoin address to send the payment to + கட்டணத்தை அனுப்ப பிட்காயின் முகவரி + Alt+A Alt+A + + Paste address from clipboard + கிளிப்போர்டிலிருந்து முகவரியை பேஸ்ட் செய்யவும் + Alt+P Alt+P + + Remove this entry + இந்த உள்ளீட்டை அகற்று + + + The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + அனுப்பப்படும் தொகையிலிருந்து கட்டணம் கழிக்கப்படும். நீங்கள் உள்ளிடும் தொகையை விட பெறுநர் குறைவான பிட்காயின்களைப் பெறுவார். பல பெறுநர்கள் தேர்ந்தெடுக்கப்பட்டால், கட்டணம் சமமாக பிரிக்கப்படும். + + + S&ubtract fee from amount + கட்டணத்தை தொகையிலிருந்து வி&லக்கு + + + Use available balance + மீதம் உள்ள தொகையை பயன்படுத்தவும் + Message: செய்தி: - + + This is an unauthenticated payment request. + இது ஒரு அங்கீகரிக்கப்படாத கட்டண கோரிக்கை. + + + This is an authenticated payment request. + இது ஒரு அங்கீகரிக்கப்பட்ட கட்டண கோரிக்கை. + + + Enter a label for this address to add it to the list of used addresses + இந்த முகவரியை பயன்படுத்தப்பட்ட முகவரிகளின் பட்டியலில் சேர்க்க ஒரு லேபிளை உள்ளிடவும். + + + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + பிட்காயினுடன் இணைக்கப்பட்ட செய்தி: உங்கள் எதிர்கால குறிப்புக்காக பரிவர்த்தனையுடன் யூஆர்ஐ சேமிக்கப்படும். குறிப்பு: இந்த செய்தி பிட்காயின் வலையமைப்பிற்கு அனுப்பப்படாது. + + + Pay To: + பணம் செலுத்து: + + + Memo: + குறிப்பாணை: + + + Enter a label for this address to add it to your address book + இந்த முகவரியை உங்கள் முகவரி புத்தகத்தில் சேர்க்க ஒரு லேபிளை உள்ளிடவும் + + SendConfirmationDialog @@ -2221,129 +2565,653 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p ShutdownWindow - + + %1 is shutting down... + %1 ஷட் டவுன் செய்யப்படுகிறது... + + + Do not shut down the computer until this window disappears. + இந்த விண்டோ மறைந்து போகும் வரை கணினியை ஷட் டவுன் வேண்டாம். + + SignVerifyMessageDialog + + Signatures - Sign / Verify a Message + கையொப்பங்கள் - ஒரு செய்தியை கையொப்பமிடுதல் / சரிபார்த்தல் + + + &Sign Message + &செய்தியை கையொப்பமிடுங்கள் + + + You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + மற்றவர்களுக்கு அனுப்பப்பட்ட பிட்காயின்களைப் நீங்கள் பெறலாம் என்பதை நிரூபிக்க உங்கள் முகவரிகளுடன் செய்திகள் / ஒப்பந்தங்களில் கையொப்பமிடலாம். தெளிவற்ற அல்லது சீரற்ற எதையும் கையொப்பமிடாமல் கவனமாக இருங்கள், ஏனெனில் ஃபிஷிங் தாக்குதல்கள் உங்கள் அடையாளத்தை அவர்களிடம் கையொப்பமிட்டு ஏமாற்ற முயற்சிக்கும். நீங்கள் ஒப்புக்கொள்ளும் முழுமையான மற்றும் விரிவான அறிக்கைகளில் மட்டுமே கையொப்பமிடுங்கள். + + + The Bitcoin address to sign the message with + செய்தியை கையொப்பமிட பிட்காயின் முகவரி + + + Choose previously used address + முன்பு பயன்படுத்திய முகவரியைத் தேர்வுசெய் + Alt+A Alt+A + + Paste address from clipboard + கிளிப்போர்டிலிருந்து முகவரியை பேஸ்ட் செய்யவும் + Alt+P Alt+P + + Enter the message you want to sign here + நீங்கள் கையொப்பமிட வேண்டிய செய்தியை இங்கே உள்ளிடவும் + Signature கையொப்பம் - - - TrafficGraphWidget - KB/s - KB/s + Copy the current signature to the system clipboard + தற்போதைய கையொப்பத்தை கிளிப்போர்டுக்கு காபி செய் - - - TransactionDesc - Date - தேதி + Sign the message to prove you own this Bitcoin address + இந்த பிட்காயின் முகவரி உங்களுக்கு சொந்தமானது என்பதை நிரூபிக்க செய்தியை கையொப்பமிடுங்கள் - unknown - தெரியாத + Sign &Message + கையொப்பம் &செய்தி - Message - செய்தி + Reset all sign message fields + எல்லா கையொப்ப செய்தி உள்ளீடுகளை ரீசெட் செய்யவும் - Amount - தொகை + Clear &All + அழி &அனைத்து - - - TransactionDescDialog - - - TransactionTableModel - Date - தேதி + &Verify Message + &செய்தியைச் சரிபார்க்கவும் - Label - லேபிள் + The Bitcoin address the message was signed with + செய்தி கையொப்பமிடப்பட்ட பிட்காயின் முகவரி - (no label) - (லேபிள் இல்லை) + Verify the message to ensure it was signed with the specified Bitcoin address + குறிப்பிட்ட பிட்காயின் முகவரியுடன் கையொப்பமிடப்பட்டதா என்பதை உறுதிப்படுத்த இந்த செய்தியைச் சரிபார்க்கவும் - - - TransactionView - Today - இன்று + Verify &Message + சரிபார்க்கவும் &செய்தி - Copy address - முகவரி முகவரியை நகலெடுக்கவும் + Reset all verify message fields + எல்லா செய்தியை சரிபார்க்கும் உள்ளீடுகளை ரீசெட் செய்யவும் - Copy label - லேபிளை நகலெடு + Click "Sign Message" to generate signature + கையொப்பத்தை உருவாக்க "செய்தியை கையொப்பமிடு" என்பதை கிளிக் செய்யவும் - Copy amount - நகல் நகல் + The entered address is invalid. + உள்ளிட்ட முகவரி தவறானது. - Copy transaction ID - பரிவர்த்தனை ஐடியை நகலெடு + Please check the address and try again. + முகவரியைச் சரிபார்த்து மீண்டும் முயற்சிக்கவும். - Comma separated file (*.csv) - கமா பிரிக்கப்பட்ட கோப்பு + The entered address does not refer to a key. + உள்ளிட்ட முகவரி எந்த ஒரு கீயை குறிக்கவில்லை. - Confirmed - உறுதியாக + Wallet unlock was cancelled. + வாலட் திறத்தல் ரத்து செய்யப்பட்டது. - Date - தேதி + Private key for the entered address is not available. + உள்ளிட்ட முகவரிக்கான ப்ரைவேட் கீ கிடைக்கவில்லை. - Label - லேபிள் + Message signing failed. + செய்தியை கையொப்பமிடுதல் தோல்வியுற்றது. - Address - முகவரி + Message signed. + செய்தி கையொப்பமிடப்பட்டது. - Exporting Failed - ஏற்றுமதி தோல்வியடைந்தது + The signature could not be decoded. + கையொப்பத்தை டிகோட் செய்ய இயலவில்லை. + + + Please check the signature and try again. + கையொப்பத்தை சரிபார்த்து மீண்டும் முயற்சிக்கவும். + + + The signature did not match the message digest. + கையொப்பம் செய்தியுடன் பொருந்தவில்லை. + + + Message verification failed. + செய்தி சரிபார்ப்பு தோல்வியுற்றது. + + + Message verified. + செய்தி சரிபார்க்கப்பட்டது. + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open for %n more block(s) + மேலும் %n பிளாக்க்கிற்கு திறந்துவைக்கப்பட்டுள்ளதுமேலும் %n பிளாக்குகளில் திறந்துவைக்கப்பட்டுள்ளது + + + conflicted with a transaction with %1 confirmations + %1 உறுதிப்படுத்தல்களுடன் ஒரு பரிவர்த்தனை முரண்பட்டது + + + 0/unconfirmed, %1 + 0/உறுதிப்படுத்தப்படாதது, %1 + + + in memory pool + மெமரி பூலில் உள்ளது + + + not in memory pool + மெமரி பூலில் இல்லை + + + abandoned + கைவிடப்பட்டது + + + %1/unconfirmed + %1/உறுதிப்படுத்தப்படாதது + + + %1 confirmations + %1 உறுதிப்படுத்தல் + + + Status + தற்போதைய நிலை + + + Date + தேதி + + + Source + மூலம் + + + Generated + உருவாக்கப்பட்டது + + + From + இருந்து + + + unknown + தெரியாத + + + To + இதற்கு அனுப்பு + + + own address + சொந்த முகவரி + + + watch-only + பார்க்க-மட்டும் + + + label + லேபிள் + + + Credit + கடன் + + + matures in %n more block(s) + மேலும் %n பிளாக்குகளில் முதிர்ச்சியடைகிறதுமேலும் %n பிளாக்குகளில் முதிர்ச்சியடைகிறது + + + not accepted + ஏற்கப்படவில்லை + + + Debit + டெபிட் + + + Total debit + மொத்த டெபிட் + + + Total credit + முழு கடன் + + + Transaction fee + பரிமாற்ற கட்டணம் + + + Net amount + நிகர தொகை + + + Message + செய்தி + + + Comment + கருத்து + + + Transaction ID + பரிவர்த்தனை ஐடி + + + Transaction total size + பரிவர்த்தனையின் முழு அளவு + + + Transaction virtual size + பரிவர்த்தனையின் மெய்நிகர் அளவு + + + Output index + வெளியீட்டு அட்டவணை + + + (Certificate was not verified) + (சான்றிதழ் சரிபார்க்கப்படவில்லை) + + + Merchant + வணிகர் + + + Debug information + டிபக் தகவல் + + + Transaction + பரிவர்த்தனை + + + Inputs + உள்ளீடுகள் + + + Amount + தொகை + + + true + ஆம் + + + false + இல்லை + + + + TransactionDescDialog + + This pane shows a detailed description of the transaction + இந்த பலகம் பரிவர்த்தனை பற்றிய விரிவான விளக்கத்தைக் காட்டுகிறது - UnitDisplayStatusBarControl - - + TransactionTableModel + + Date + தேதி + + + Type + வகை + + + Label + லேபிள் + + + Open for %n more block(s) + மேலும் %n பிளாக்க்கிற்கு திறந்துவைக்கப்பட்டுள்ளதுமேலும் %n பிளாக்குகளில் திறந்துவைக்கப்பட்டுள்ளது + + + Unconfirmed + உறுதிப்படுத்தப்படாதது + + + Abandoned + கைவிடப்பட்டது + + + Confirming (%1 of %2 recommended confirmations) + உறுதிப்படுத்துகிறது (%1 ன் %2 பரிந்துரைக்கப்பட்ட உறுதிப்படுத்தல்கல்) + + + Conflicted + முரண்பாடு + + + Generated but not accepted + உருவாக்கப்பட்டது ஆனால் ஏற்றுக்கொள்ளப்படவில்லை + + + Received with + உடன் பெறப்பட்டது + + + Received from + பெறப்பட்டது இதனிடமிருந்து + + + Sent to + அனுப்பப்பட்டது + + + Payment to yourself + உனக்கே பணம் செலுத்து + + + Mined + மைன் செய்யப்பட்டது + + + watch-only + பார்க்க-மட்டும் + + + (n/a) + (பொருந்தாது) + + + (no label) + (லேபிள் இல்லை) + + + Transaction status. Hover over this field to show number of confirmations. + பரிவர்த்தனையின் நிலை. உறுதிப்படுத்தல்களின் எண்ணிக்கையைக் காட்ட இந்த உள்ளீட்டில் பார்க்க. + + + Date and time that the transaction was received. + பரிவர்த்தனை பெறப்பட்ட தேதி மற்றும் நேரம். + + + Type of transaction. + பரிவர்த்தனையின் வகை. + + + Whether or not a watch-only address is involved in this transaction. + இந்த பரிவர்த்தனையில் பார்க்க மட்டும் உள்ள முகவரி உள்ளதா இல்லையா. + + + User-defined intent/purpose of the transaction. + பயனர்-வரையறுக்கப்பட்ட நோக்கம்/பரிவர்த்தனையின் நோக்கம். + + + Amount removed from or added to balance. + மீதியிலிருந்து நீக்கப்பட்ட அல்லது மீதிக்கு சேர்க்கப்பட்ட தொகை + + + + TransactionView + + All + அனைத்தும் + + + Today + இன்று + + + This week + இந்த வாரம் + + + This month + இந்த மாதம் + + + Last month + சென்ற மாதம் + + + This year + இந்த வருடம் + + + Range... + எல்லை... + + + Received with + உடன் பெறப்பட்டது + + + Sent to + அனுப்பப்பட்டது + + + To yourself + உங்களுக்கே + + + Mined + மைன் செய்யப்பட்டது + + + Other + மற்ற + + + Enter address, transaction id, or label to search + தேடுவதற்காக முகவரி, பரிவர்த்தனை ஐடி அல்லது லேபிளை உள்ளிடவும் + + + Min amount + குறைந்தபட்ச தொகை + + + Abandon transaction + பரிவர்த்தனையை கைவிடவும் + + + Increase transaction fee + பரிவர்த்தனையின் கட்டணத்தை உயர்த்துக + + + Copy address + முகவரி முகவரியை நகலெடுக்கவும் + + + Copy label + லேபிளை நகலெடு + + + Copy amount + நகல் நகல் + + + Copy transaction ID + பரிவர்த்தனை ஐடியை நகலெடு + + + Copy raw transaction + மூல பரிவர்த்தனையை காபி செய் + + + Copy full transaction details + முழு பரிவர்த்தனை விவரங்களையும் காபி செய் + + + Edit label + லேபிளை திருத்து + + + Show transaction details + பரிவர்த்தனையின் விவரங்களைக் காட்டு + + + Export Transaction History + பரிவர்த்தனையின் வரலாற்றை எக்ஸ்போர்ட் செய் + + + Comma separated file (*.csv) + கமா பிரிக்கப்பட்ட கோப்பு + + + Confirmed + உறுதியாக + + + Watch-only + பார்க்க-மட்டும் + + + Date + தேதி + + + Type + வகை + + + Label + லேபிள் + + + Address + முகவரி + + + ID + ஐடி + + + Exporting Failed + ஏற்றுமதி தோல்வியடைந்தது + + + There was an error trying to save the transaction history to %1. + பரிவர்த்தனை வரலாற்றை %1 க்கு சேவ் செய்வதில் பிழை ஏற்பட்டது. + + + Exporting Successful + எக்ஸ்போர்ட் வெற்றிகரமாக முடிவடைந்தது + + + The transaction history was successfully saved to %1. + பரிவர்த்தனை வரலாறு வெற்றிகரமாக %1 க்கு சேவ் செய்யப்பட்டது. + + + Range: + எல்லை: + + + to + இதற்கு அனுப்பு + + + + UnitDisplayStatusBarControl + + Unit to show amounts in. Click to select another unit. + அளவுகளைக் காண்பிக்கும் அலகு. மற்றொரு அலகு தேர்ந்தெடுக்க கிளிக் செய்யவும். + + + WalletController + + Close wallet + வாலட்டை மூடு + + + Are you sure you wish to close the wallet <i>%1</i>? + நீங்கள் வாலட்டை மூட விரும்புகிறீர்களா? <i>%1</i>? + WalletFrame - + + No wallet has been loaded. + எந்த வாலட்டும் லோட் செய்யப்படவில்லை. + + WalletModel Send Coins நாணயங்களை அனுப்பவும் - + + Fee bump error + கட்டணம் ஏற்றத்தில் பிழை + + + Increasing transaction fee failed + பரிவர்த்தனை கட்டணம் அதிகரித்தல் தோல்வியடைந்தது + + + Do you want to increase the fee? + கட்டணத்தை அதிகரிக்க விரும்புகிறீர்களா? + + + Current fee: + தற்போதைய கட்டணம்: + + + Increase: + அதிகரித்தல்: + + + New fee: + புதிய கட்டணம்: + + + Confirm fee bump + கட்டண ஏற்றத்தை உறுதிப்படுத்தவும் + + + Can't sign transaction. + பரிவர்த்தனையில் கையொப்பமிட முடியவில்லை. + + + Could not commit transaction + பரிவர்த்தனையை கமிட் செய்ய முடியவில்லை + + + default wallet + இயல்புநிலை வாலட் + + WalletView @@ -2354,12 +3222,244 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Export the data in the current tab to a file தற்போதைய தாவலில் தரவை ஒரு கோப்பிற்கு ஏற்றுமதி செய்க - + + Backup Wallet + பேக்அப் வாலட் + + + Wallet Data (*.dat) + வாலட் தகவல் (*.dat) + + + Backup Failed + பேக்அப் தோல்வியுற்றது + + + There was an error trying to save the wallet data to %1. + வாலட் தகவல்களை %1 சேவ் செய்வதில் பிழை ஏற்பட்டது + + + Backup Successful + பேக்அப் வெற்றிகரமாக முடிவடைந்தது + + + The wallet data was successfully saved to %1. + வாலட் தகவல்கள் வெற்றிகரமாக %1 சேவ் செய்யப்பட்டது. + + + Cancel + ரத்து + + bitcoin-core + + Distributed under the MIT software license, see the accompanying file %s or %s + எம்ஐடி சாப்ட்வேர் விதிமுறைகளின் கீழ் பகிர்ந்தளிக்கப்படுகிறது, அதனுடன் கொடுக்கப்பட்டுள்ள %s அல்லது %s பைல் ஐ பார்க்கவும் + + + Error: A fatal internal error occurred, see debug.log for details + பிழை: ஆபத்தான உள் பிழை ஏற்பட்டது, விவரங்களுக்கு debug.log ஐ பார்க்கவும் + + + Pruning blockstore... + பிளாக்ஸ்டோர் ப்ரூன் செய்யபடுகிறது... + + + Unable to start HTTP server. See debug log for details. + HTTP சேவையகத்தைத் தொடங்க முடியவில்லை. விவரங்களுக்கு debug.log ஐ பார்க்கவும். + + + The %s developers + %s டெவலப்பர்கள் + + + Please contribute if you find %s useful. Visit %s for further information about the software. + %s பயனுள்ளதாக இருந்தால் தயவுசெய்து பங்களியுங்கள். இந்த சாஃட்வேர் பற்றிய கூடுதல் தகவலுக்கு %s ஐப் பார்வையிடவும். + + + %d of last 100 blocks have unexpected version + கடைசி 100 தொகுதிகளில் %d எதிர்பாராத பதிப்பைக் கொண்டுள்ளன + + + %s corrupt, salvage failed + %s சிதைந்தது, மீட்பு தோல்வியுற்றது + + + -maxmempool must be at least %d MB + -மேக்ஸ்மெம்பூல் குறைந்தது %d எம்பி ஆக இருக்க வேண்டும் + + + Cannot resolve -%s address: '%s' + தீர்க்க முடியாது -%s முகவரி: '%s' + + + Change index out of range + குறியீட்டை வரம்பிற்கு வெளியே மாற்றவும் + + + Copyright (C) %i-%i + பதிப்புரிமை (ப) %i-%i + + + Corrupted block database detected + சிதைந்த பிளாக் டேட்டாபேஸ் கண்டறியப்பட்டது + + + Do you want to rebuild the block database now? + இப்போது பிளாக் டேட்டாபேஸை மீண்டும் உருவாக்க விரும்புகிறீர்களா? + + + Error initializing block database + பிளாக் டேட்டாபேஸ் துவக்குவதில் பிழை! + + + Error initializing wallet database environment %s! + வாலட் டேட்டாபேஸ் சூழல் %s துவக்குவதில் பிழை! + + + Error loading %s + %s லோட் செய்வதில் பிழை + + + Error loading %s: Private keys can only be disabled during creation + லோட் செய்வதில் பிழை %s: ப்ரைவேட் கீஸ் உருவாக்கத்தின் போது மட்டுமே முடக்கப்படும் + + + Error loading %s: Wallet corrupted + லோட் செய்வதில் பிழை %s: வாலட் சிதைந்தது + + + Error loading %s: Wallet requires newer version of %s + லோட் செய்வதில் பிழை %s: வாலட்டிற்கு %s புதிய பதிப்பு தேவை + + + Error loading block database + பிளாக் டேட்டாபேஸை லோட் செய்வதில் பிழை + + + Error opening block database + பிளாக் டேட்டாபேஸை திறப்பதில் பிழை + + + Failed to listen on any port. Use -listen=0 if you want this. + எந்த போர்டிலும் கேட்க முடியவில்லை. இதை நீங்கள் கேட்க விரும்பினால் -லிசென்= 0 வை பயன்படுத்தவும். + + + Failed to rescan the wallet during initialization + துவக்கத்தின் போது வாலட்டை ரீஸ்கேன் செய்வதில் தோல்வி + + + Importing... + இம்போர்ட் செய்யப்படுகிறது... + + + Invalid P2P permission: '%s' + தவறான பி2பி அனுமதி: '%s' + + + Invalid amount for -%s=<amount>: '%s' + -%s=<amount>: '%s' கான தவறான தொகை + + + Invalid amount for -discardfee=<amount>: '%s' + -discardfee கான தவறான தொகை=<amount>: '%s' + + + Unknown address type '%s' + தெரியாத முகவரி வகை '%s' + + + Loading P2P addresses... + பி2பி முகவரிகள் லோட் செய்யப்படுகிறது... + + + Error: Disk space is too low! + பிழை: டிஸ்க் ஸ்பேஸ் மிகக் குறைவு! + + + Loading banlist... + தடைப்பட்டியல் லோட் செய்யப்படுகிறது... + + + Not enough file descriptors available. + போதுமான ஃபைல் டிஸ்கிரிப்டார் கிடைக்கவில்லை. + + + Replaying blocks... + பிளாக்குகள் மீண்டும் இயக்குகிறது... + + + The source code is available from %s. + சோர்ஸ் கோட் %s இலிருந்து கிடைக்கிறது. + + + Transaction fee and change calculation failed + பரிவர்த்தனையின் கட்டணம் மற்றும் மீதிபண கணக்கீடு தோல்வியுற்றது + + + Unable to generate keys + கீஸை உருவாக்க முடியவில்லை + + + Verifying blocks... + பிளாக்குகள் சரிபார்க்கப்படுகிறது... + + + Wallet needed to be rewritten: restart %s to complete + வாலட் மீண்டும் எழுத படவேண்டும்: முடிக்க %s ஐ மறுதொடக்கம் செய்யுங்கள் + + + The transaction amount is too small to send after the fee has been deducted + கட்டணம் கழிக்கப்பட்ட பின்னர் பரிவர்த்தனை தொகை அனுப்ப மிகவும் சிறியது + + + Error reading from database, shutting down. + டேட்டாபேசிலிருந்து படிப்பதில் பிழை, ஷட் டவுன் செய்யப்படுகிறது. + + + The transaction amount is too small to pay the fee + கட்டணம் செலுத்த பரிவர்த்தனை தொகை மிகவும் குறைவு + + + This is experimental software. + இது ஒரு ஆராய்ச்சி மென்பொருள். + + + Transaction amount too small + பரிவர்த்தனை தொகை மிகக் குறைவு + + + Transaction too large + பரிவர்த்தனை மிகப் பெரிது + + + %s is set very high! + %s மிக அதிகமாக அமைக்கப்பட்டுள்ளது! + + + This is the transaction fee you will pay if you send a transaction. + நீங்கள் ஒரு பரிவர்த்தனையை அனுப்பும்பொழுது நீங்கள் செலுத்த வேண்டிய பரிவர்த்தனைக் கட்டணம் இதுவாகும். + + + Transaction amounts must not be negative + பரிவர்த்தனை தொகை எதிர்மறையாக இருக்கக்கூடாது + + + Transaction must have at least one recipient + பரிவர்த்தனைக்கு குறைந்தபட்சம் ஒரு பெறுநர் இருக்க வேண்டும் + Insufficient funds போதுமான பணம் இல்லை - + + Loading wallet... + வாலட் லோடிங் செய்யப்படுகிறது... + + + Done loading + லோடிங் முடிந்தது + + \ No newline at end of file diff --git a/src/qt/locale/bitcoin_th.ts b/src/qt/locale/bitcoin_th.ts index cfb4b298f3..b9418b61a8 100644 --- a/src/qt/locale/bitcoin_th.ts +++ b/src/qt/locale/bitcoin_th.ts @@ -29,6 +29,10 @@ Delete the currently selected address from the list ลบที่อยู่ที่เลือกไว้ออกจากรายการ + + Enter address or label to search + ป้อนที่อยู่หรือฉลากเพื่อค้นหา + Export the data in the current tab to a file ส่งออกข้อมูลที่อยู่ในแถบนี้ไปในไฟล์ @@ -127,6 +131,10 @@ Repeat new passphrase ทำซ้ำข้อความรหัสใหม่ + + Show passphrase + ดูวลี + Encrypt wallet กระเป๋าสตางค์ เข้ารหัส @@ -151,6 +159,14 @@ Change passphrase เปลี่ยน ข้อความรหัสผ่าน + + Confirm wallet encryption + ยืนยันการเข้ารหัสกระเป๋าเงิน + + + Are you sure you wish to encrypt your wallet? + คุณแน่ใจหรือว่าต้องการเข้ารหัสกระเป๋าเงินของคุณ? + BanTableModel @@ -237,6 +253,10 @@ Open &URI... เปิด &URI + + Create Wallet... + สร้าง Wallet + Reindexing blocks on disk... กำลังทำดัชนี ที่เก็บบล็อก ใหม่ ในดิสก์... @@ -435,7 +455,11 @@ Wallet is <b>encrypted</b> and currently <b>locked</b> กระเป๋าเงินถูก <b>เข้ารหัส</b> และในปัจจุบัน <b>ล็อค </b> - + + A fatal error occurred. Bitcoin can no longer continue safely and will quit. + เกิดข้อผิดพลาดร้ายแรง Bitcoin ไม่สามารถดำเนินการต่อได้อย่างปลอดภัยอีกต่อไปและจะยกเลิก + + CoinControlDialog @@ -506,6 +530,22 @@ Confirmed ยืนยันแล้ว + + Copy address + คัดลอกที่อยู่ + + + Copy label + คัดลอกป้ายกำกับ + + + Copy amount + คัดลอกจำนวนเงิน + + + Copy transaction ID + คัดลอก ID ธุรกรรม + (no label) (ไม่มีฉลาก) @@ -516,7 +556,19 @@ CreateWalletDialog - + + Encrypt Wallet + เข้ารหัสกระเป๋าเงิน + + + Make Blank Wallet + ทำกระเป๋าเงินเปล่า + + + Create + สร้าง + + EditAddressDialog @@ -608,6 +660,14 @@ Bitcoin Bitcoin + + Approximately %1 GB of data will be stored in this directory. + ประมาณ %1 GB ของข้อมูลจะเก็บในไดเร็กทอรี่ + + + The wallet will also be stored in this directory. + The wallet เก็บใว้ในไดเร็กทอรี่ + Error: Specified data directory "%1" cannot be created. ข้อผิดพลาด: ไดเร็กทอรี่ข้อมูลที่ต้องการ "%1" ไม่สามารถสร้างได้ @@ -825,7 +885,15 @@ &Label: &ชื่อ: - + + Copy label + คัดลอกป้ายกำกับ + + + Copy amount + คัดลอกจำนวนเงิน + + ReceiveRequestDialog @@ -894,6 +962,10 @@ Dust: เศษ: + + Copy amount + คัดลอกจำนวนเงิน + (no label) (ไม่มีฉลาก) @@ -949,6 +1021,22 @@ TransactionView + + Copy address + คัดลอกที่อยู่ + + + Copy label + คัดลอกป้ายกำกับ + + + Copy amount + คัดลอกจำนวนเงิน + + + Copy transaction ID + คัดลอก ID ธุรกรรม + Comma separated file (*.csv) ไฟล์ที่คั่นด้วยจุลภาค (* .csv) diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index 92a888e131..88e8c3d3c4 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Это ваши адреса Bitcoin для отправки платежей. Всегда проверяйте количество и адрес получателя перед отправкой перевода. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Це ваші біткойн-адреси для отримання платежів. Використовуйте кнопку "Створити нову адресу прийому" на вкладці отримання, для створення нових адрес. + &Copy Address Копировать &адрес @@ -131,6 +135,10 @@ Repeat new passphrase Повторите новый пароль + + Show passphrase + Показати парольну фразу + Encrypt wallet Зашифровать электронный кошелёк @@ -171,10 +179,26 @@ Wallet encrypted Кошелёк зашифрован + + Enter the old passphrase and new passphrase for the wallet. + Введіть стару та нову парольну фразу для гаманця. + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. Пам’ятайте, що шифрування гаманця не може повністю захистити ваші біткоіни від кражі, у випадку якщо ваш комп’ютер буде інфіковано шкідливими програмами. + + Wallet to be encrypted + Гаманець який потрібно зашифрувати + + + Your wallet is about to be encrypted. + Ваш гаманець буде зашифровано. + + + Your wallet is now encrypted. + Ваш гаманець зашифровано. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. ВАЖЛИВО: Всі попередні резервні копії, які ви зробили з вашого файлу гаманця повинні бути замінені новоствореним, зашифрованим файлом гаманця. З міркувань безпеки, попередні резервні копії незашифрованого файла гаманця стануть непридатними одразу ж, як тільки ви почнете використовувати новий, зашифрований гаманець. @@ -297,6 +321,14 @@ Open &URI... Відкрити &URI + + Create Wallet... + Створити Гаманець... + + + Create a new wallet + Створити новий гаманець + Wallet: Кошелёк @@ -525,6 +557,10 @@ Error: %1 Помилка: %1 + + Warning: %1 + Попередження: %1 + Date: %1 @@ -747,10 +783,42 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + Створення Гаманця <b>%1</b>... + + + Create wallet failed + Помилка створення гаманця + + + Create wallet warning + Попередження створення гаманця + + CreateWalletDialog - + + Create Wallet + Створити Гаманець + + + Wallet Name + Назва Гаманця + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Зашифруйте гаманець. Гаманець буде зашифрований за допомогою пароля на ваш вибір. + + + Encrypt Wallet + Шифрувати Гаманець + + + Create + Створити + + EditAddressDialog @@ -995,6 +1063,14 @@ OpenWalletActivity + + Open wallet failed + Помилка відкриття гаманця + + + Open wallet warning + Попередження відкриття гаманця + default wallet гаманець за змовчуванням @@ -2768,6 +2844,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Output index Вихідний індекс + + (Certificate was not verified) + (Сертифікат не підтверджено) + Merchant Продавець @@ -3387,6 +3467,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Loading P2P addresses... Завантаження P2P адрес... + + Error: Disk space is too low! + Помилка: замало дискового простору! + Loading banlist... Завантаження бан-списку... diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index b269faa539..0e538786e0 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -2902,6 +2902,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Output index 输出索引 + + (Certificate was not verified) + (证书未被验证) + Merchant 商家 @@ -3793,7 +3797,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified. - 如果要对“未进行分割的HD钱包”(non HD split wallet)进行升级,就必须先把它升级到支持“未进行分割的密钥池(pre split keypool)”的版本,否则无法进行升级。请使用指定了具体版本号的 -upgradewallet=169900 参数,或者直接使用不指定具体版本号的 -upgradewallet 参数重启钱包。 + 如果要对“非分离HD钱包(non HD split wallet)”进行升级,就必须先把它升级到支持“未进行分割的密钥池(pre split keypool)”的版本,否则无法进行升级。请使用指定了具体版本号的 -upgradewallet=169900 参数,或者直接使用不指定具体版本号的 -upgradewallet 参数重启钱包。 Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee. From 179d55f0526082b46415a7f5b6c3742a403f3306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Barbosa?= Date: Mon, 11 Nov 2019 22:21:43 +0000 Subject: [PATCH 049/388] zmq: Fix due to invalid argument and multiple notifiers Github-Pull: #17445 Rebased-From: 3e730bf90aaf53c41ff3a778f6aac15d163d1c0c --- src/zmq/zmqpublishnotifier.cpp | 3 ++- test/functional/interface_zmq.py | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/zmq/zmqpublishnotifier.cpp b/src/zmq/zmqpublishnotifier.cpp index ba89d1401d..233a45d19f 100644 --- a/src/zmq/zmqpublishnotifier.cpp +++ b/src/zmq/zmqpublishnotifier.cpp @@ -112,7 +112,8 @@ bool CZMQAbstractPublishNotifier::Initialize(void *pcontext) void CZMQAbstractPublishNotifier::Shutdown() { - assert(psocket); + // Early return if Initialize was not called + if (!psocket) return; int count = mapPublishNotifiers.count(address); diff --git a/test/functional/interface_zmq.py b/test/functional/interface_zmq.py index 5aea10fbce..89c55f31f3 100755 --- a/test/functional/interface_zmq.py +++ b/test/functional/interface_zmq.py @@ -59,6 +59,10 @@ def test_basic(self): # Note that the publishing order is not defined in the documentation and # is subject to change. import zmq + + # Invalid zmq arguments don't take down the node, see #17185. + self.restart_node(0, ["-zmqpubrawtx=foo", "-zmqpubhashtx=bar"]) + address = 'tcp://127.0.0.1:28332' socket = self.ctx.socket(zmq.SUB) socket.set(zmq.RCVTIMEO, 60000) From 7e66d04770bfb21862e52736c4859d7a878cb906 Mon Sep 17 00:00:00 2001 From: Russell Yanofsky Date: Fri, 27 Sep 2019 07:31:44 -0400 Subject: [PATCH 050/388] Drop signal CClientUIInterface::LoadWallet Github-Pull: #16963 Rebased-From: 81ea66c30e2953dee24d5b127c28daa0d9452a28 --- src/dummywallet.cpp | 10 ++++++++-- src/interfaces/chain.cpp | 1 - src/interfaces/chain.h | 5 +---- src/interfaces/handler.cpp | 14 ++++++++++++++ src/interfaces/handler.h | 4 ++++ src/interfaces/node.cpp | 5 ++--- src/ui_interface.cpp | 3 --- src/ui_interface.h | 7 ------- src/wallet/wallet.cpp | 15 ++++++++++++++- src/wallet/wallet.h | 3 +++ 10 files changed, 46 insertions(+), 21 deletions(-) diff --git a/src/dummywallet.cpp b/src/dummywallet.cpp index 126e3479f3..80c79bf6c6 100644 --- a/src/dummywallet.cpp +++ b/src/dummywallet.cpp @@ -12,6 +12,8 @@ enum class WalletCreationStatus; namespace interfaces { class Chain; +class Handler; +class Wallet; } class DummyWalletInit : public WalletInitInterface { @@ -81,9 +83,13 @@ WalletCreationStatus CreateWallet(interfaces::Chain& chain, const SecureString& throw std::logic_error("Wallet function called in non-wallet build."); } -namespace interfaces { +using LoadWalletFn = std::function wallet)>; +std::unique_ptr HandleLoadWallet(LoadWalletFn load_wallet) +{ + throw std::logic_error("Wallet function called in non-wallet build."); +} -class Wallet; +namespace interfaces { std::unique_ptr MakeWallet(const std::shared_ptr& wallet) { diff --git a/src/interfaces/chain.cpp b/src/interfaces/chain.cpp index b8b9ecded9..aa44a69f08 100644 --- a/src/interfaces/chain.cpp +++ b/src/interfaces/chain.cpp @@ -339,7 +339,6 @@ class ChainImpl : public Chain void initMessage(const std::string& message) override { ::uiInterface.InitMessage(message); } void initWarning(const std::string& message) override { InitWarning(message); } void initError(const std::string& message) override { InitError(message); } - void loadWallet(std::unique_ptr wallet) override { ::uiInterface.LoadWallet(wallet); } void showProgress(const std::string& title, int progress, bool resume_possible) override { ::uiInterface.ShowProgress(title, progress, resume_possible); diff --git a/src/interfaces/chain.h b/src/interfaces/chain.h index da670a3370..e099586000 100644 --- a/src/interfaces/chain.h +++ b/src/interfaces/chain.h @@ -43,7 +43,7 @@ class Wallet; //! asynchronously //! (https://github.com/bitcoin/bitcoin/pull/10973#issuecomment-380101269). //! -//! * The initMessages() and loadWallet() methods which the wallet uses to send +//! * The initMessage() and showProgress() methods which the wallet uses to send //! notifications to the GUI should go away when GUI and wallet can directly //! communicate with each other without going through the node //! (https://github.com/bitcoin/bitcoin/pull/15288#discussion_r253321096). @@ -208,9 +208,6 @@ class Chain //! Send init error. virtual void initError(const std::string& message) = 0; - //! Send wallet load notification to the GUI. - virtual void loadWallet(std::unique_ptr wallet) = 0; - //! Send progress indicator. virtual void showProgress(const std::string& title, int progress, bool resume_possible) = 0; diff --git a/src/interfaces/handler.cpp b/src/interfaces/handler.cpp index 92601fc4e9..4e235688fe 100644 --- a/src/interfaces/handler.cpp +++ b/src/interfaces/handler.cpp @@ -22,6 +22,15 @@ class HandlerImpl : public Handler boost::signals2::scoped_connection m_connection; }; +class CleanupHandler : public Handler +{ +public: + explicit CleanupHandler(std::function cleanup) : m_cleanup(std::move(cleanup)) {} + ~CleanupHandler() override { if (!m_cleanup) return; m_cleanup(); m_cleanup = nullptr; } + void disconnect() override { if (!m_cleanup) return; m_cleanup(); m_cleanup = nullptr; } + std::function m_cleanup; +}; + } // namespace std::unique_ptr MakeHandler(boost::signals2::connection connection) @@ -29,4 +38,9 @@ std::unique_ptr MakeHandler(boost::signals2::connection connection) return MakeUnique(std::move(connection)); } +std::unique_ptr MakeHandler(std::function cleanup) +{ + return MakeUnique(std::move(cleanup)); +} + } // namespace interfaces diff --git a/src/interfaces/handler.h b/src/interfaces/handler.h index c4c674cac5..46918bc22e 100644 --- a/src/interfaces/handler.h +++ b/src/interfaces/handler.h @@ -5,6 +5,7 @@ #ifndef BITCOIN_INTERFACES_HANDLER_H #define BITCOIN_INTERFACES_HANDLER_H +#include #include namespace boost { @@ -30,6 +31,9 @@ class Handler //! Return handler wrapping a boost signal connection. std::unique_ptr MakeHandler(boost::signals2::connection connection); +//! Return handler wrapping a cleanup function. +std::unique_ptr MakeHandler(std::function cleanup); + } // namespace interfaces #endif // BITCOIN_INTERFACES_HANDLER_H diff --git a/src/interfaces/node.cpp b/src/interfaces/node.cpp index c80a8789fc..b4e1a46131 100644 --- a/src/interfaces/node.cpp +++ b/src/interfaces/node.cpp @@ -45,11 +45,10 @@ std::vector ListWalletDir(); std::vector> GetWallets(); std::shared_ptr LoadWallet(interfaces::Chain& chain, const std::string& name, std::string& error, std::string& warning); WalletCreationStatus CreateWallet(interfaces::Chain& chain, const SecureString& passphrase, uint64_t wallet_creation_flags, const std::string& name, std::string& error, std::string& warning, std::shared_ptr& result); +std::unique_ptr HandleLoadWallet(interfaces::Node::LoadWalletFn load_wallet); namespace interfaces { -class Wallet; - namespace { class NodeImpl : public Node @@ -286,7 +285,7 @@ class NodeImpl : public Node } std::unique_ptr handleLoadWallet(LoadWalletFn fn) override { - return MakeHandler(::uiInterface.LoadWallet_connect([fn](std::unique_ptr& wallet) { fn(std::move(wallet)); })); + return HandleLoadWallet(std::move(fn)); } std::unique_ptr handleNotifyNumConnectionsChanged(NotifyNumConnectionsChangedFn fn) override { diff --git a/src/ui_interface.cpp b/src/ui_interface.cpp index d310637145..3968464efc 100644 --- a/src/ui_interface.cpp +++ b/src/ui_interface.cpp @@ -16,7 +16,6 @@ struct UISignals { boost::signals2::signal NotifyNumConnectionsChanged; boost::signals2::signal NotifyNetworkActiveChanged; boost::signals2::signal NotifyAlertChanged; - boost::signals2::signal LoadWallet; boost::signals2::signal ShowProgress; boost::signals2::signal NotifyBlockTip; boost::signals2::signal NotifyHeaderTip; @@ -36,7 +35,6 @@ ADD_SIGNALS_IMPL_WRAPPER(InitMessage); ADD_SIGNALS_IMPL_WRAPPER(NotifyNumConnectionsChanged); ADD_SIGNALS_IMPL_WRAPPER(NotifyNetworkActiveChanged); ADD_SIGNALS_IMPL_WRAPPER(NotifyAlertChanged); -ADD_SIGNALS_IMPL_WRAPPER(LoadWallet); ADD_SIGNALS_IMPL_WRAPPER(ShowProgress); ADD_SIGNALS_IMPL_WRAPPER(NotifyBlockTip); ADD_SIGNALS_IMPL_WRAPPER(NotifyHeaderTip); @@ -48,7 +46,6 @@ void CClientUIInterface::InitMessage(const std::string& message) { return g_ui_s void CClientUIInterface::NotifyNumConnectionsChanged(int newNumConnections) { return g_ui_signals.NotifyNumConnectionsChanged(newNumConnections); } void CClientUIInterface::NotifyNetworkActiveChanged(bool networkActive) { return g_ui_signals.NotifyNetworkActiveChanged(networkActive); } void CClientUIInterface::NotifyAlertChanged() { return g_ui_signals.NotifyAlertChanged(); } -void CClientUIInterface::LoadWallet(std::unique_ptr& wallet) { return g_ui_signals.LoadWallet(wallet); } void CClientUIInterface::ShowProgress(const std::string& title, int nProgress, bool resume_possible) { return g_ui_signals.ShowProgress(title, nProgress, resume_possible); } void CClientUIInterface::NotifyBlockTip(bool b, const CBlockIndex* i) { return g_ui_signals.NotifyBlockTip(b, i); } void CClientUIInterface::NotifyHeaderTip(bool b, const CBlockIndex* i) { return g_ui_signals.NotifyHeaderTip(b, i); } diff --git a/src/ui_interface.h b/src/ui_interface.h index 5e0380dc45..dad86ba697 100644 --- a/src/ui_interface.h +++ b/src/ui_interface.h @@ -18,10 +18,6 @@ class connection; } } // namespace boost -namespace interfaces { -class Wallet; -} // namespace interfaces - /** General change type (added, updated, removed). */ enum ChangeType { @@ -106,9 +102,6 @@ class CClientUIInterface */ ADD_SIGNALS_DECL_WRAPPER(NotifyAlertChanged, void, ); - /** A wallet has been loaded. */ - ADD_SIGNALS_DECL_WRAPPER(LoadWallet, void, std::unique_ptr& wallet); - /** * Show progress e.g. for verifychain. * resume_possible indicates shutting down now will result in the current progress action resuming upon restart. diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 23f61602d2..64c7623bff 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -49,6 +49,7 @@ static const size_t OUTPUT_GROUP_MAX_ENTRIES = 10; static CCriticalSection cs_wallets; static std::vector> vpwallets GUARDED_BY(cs_wallets); +static std::list g_load_wallet_fns GUARDED_BY(cs_wallets); bool AddWallet(const std::shared_ptr& wallet) { @@ -91,6 +92,13 @@ std::shared_ptr GetWallet(const std::string& name) return nullptr; } +std::unique_ptr HandleLoadWallet(LoadWalletFn load_wallet) +{ + LOCK(cs_wallets); + auto it = g_load_wallet_fns.emplace(g_load_wallet_fns.end(), std::move(load_wallet)); + return interfaces::MakeHandler([it] { LOCK(cs_wallets); g_load_wallet_fns.erase(it); }); +} + static Mutex g_wallet_release_mutex; static std::condition_variable g_wallet_release_cv; static std::set g_unloading_wallet_set; @@ -4585,7 +4593,12 @@ std::shared_ptr CWallet::CreateWalletFromFile(interfaces::Chain& chain, } } - chain.loadWallet(interfaces::MakeWallet(walletInstance)); + { + LOCK(cs_wallets); + for (auto& load_wallet : g_load_wallet_fns) { + load_wallet(interfaces::MakeWallet(walletInstance)); + } + } // Register with the validation interface. It's ok to do this after rescan since we're still holding locked_chain. walletInstance->handleNotifications(); diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index 3428e8e001..789a2d9245 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -36,6 +36,8 @@ #include +using LoadWalletFn = std::function wallet)>; + //! Explicitly unload and delete the wallet. //! Blocks the current thread after signaling the unload intent so that all //! wallet clients release the wallet. @@ -49,6 +51,7 @@ bool HasWallets(); std::vector> GetWallets(); std::shared_ptr GetWallet(const std::string& name); std::shared_ptr LoadWallet(interfaces::Chain& chain, const WalletLocation& location, std::string& error, std::string& warning); +std::unique_ptr HandleLoadWallet(LoadWalletFn load_wallet); enum class WalletCreationStatus { SUCCESS, From eafcea7a0ab17512f2b9e2a724685ca193920f04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Barbosa?= Date: Thu, 26 Sep 2019 21:43:44 +0100 Subject: [PATCH 051/388] gui: Fix duplicate wallet showing up The slot BitcoinGUI::addWallet can be invoked twice for the same WalletModel due to a concurrent wallet being loaded after the first `connect()`: ```cpp connect(wallet_controller, &WalletController::walletAdded, this, &BitcoinGUI::addWallet); connect(wallet_controller, &WalletController::walletRemoved, this, &BitcoinGUI::removeWallet); for (WalletModel* wallet_model : m_wallet_controller->getOpenWallets()) { addWallet(wallet_model); ``` Github-Pull: #16963 Rebased-From: 6d6a7a8403ae923f189812edebdd95761de0e7f2 --- src/qt/bitcoingui.cpp | 2 +- src/qt/walletframe.cpp | 8 +++++--- src/qt/walletframe.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index e269c91d1c..784fdcb6e5 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -633,10 +633,10 @@ void BitcoinGUI::setWalletController(WalletController* wallet_controller) void BitcoinGUI::addWallet(WalletModel* walletModel) { if (!walletFrame) return; + if (!walletFrame->addWallet(walletModel)) return; const QString display_name = walletModel->getDisplayName(); setWalletActionsEnabled(true); rpcConsole->addWallet(walletModel); - walletFrame->addWallet(walletModel); m_wallet_selector->addItem(display_name, QVariant::fromValue(walletModel)); if (m_wallet_selector->count() == 2) { m_wallet_selector_label_action->setVisible(true); diff --git a/src/qt/walletframe.cpp b/src/qt/walletframe.cpp index 94413547d4..9f03e8b5a5 100644 --- a/src/qt/walletframe.cpp +++ b/src/qt/walletframe.cpp @@ -40,11 +40,11 @@ void WalletFrame::setClientModel(ClientModel *_clientModel) this->clientModel = _clientModel; } -void WalletFrame::addWallet(WalletModel *walletModel) +bool WalletFrame::addWallet(WalletModel *walletModel) { - if (!gui || !clientModel || !walletModel) return; + if (!gui || !clientModel || !walletModel) return false; - if (mapWalletViews.count(walletModel) > 0) return; + if (mapWalletViews.count(walletModel) > 0) return false; WalletView *walletView = new WalletView(platformStyle, this); walletView->setBitcoinGUI(gui); @@ -68,6 +68,8 @@ void WalletFrame::addWallet(WalletModel *walletModel) }); connect(walletView, &WalletView::outOfSyncWarningClicked, this, &WalletFrame::outOfSyncWarningClicked); + + return true; } void WalletFrame::setCurrentWallet(WalletModel* wallet_model) diff --git a/src/qt/walletframe.h b/src/qt/walletframe.h index 156653f47d..20fad08b0e 100644 --- a/src/qt/walletframe.h +++ b/src/qt/walletframe.h @@ -36,7 +36,7 @@ class WalletFrame : public QFrame void setClientModel(ClientModel *clientModel); - void addWallet(WalletModel *walletModel); + bool addWallet(WalletModel *walletModel); void setCurrentWallet(WalletModel* wallet_model); void removeWallet(WalletModel* wallet_model); void removeAllWallets(); From 88729d804e39fbb42aa92c039afe3641edf9190c Mon Sep 17 00:00:00 2001 From: Adam Jonas Date: Mon, 21 Oct 2019 15:42:06 -0400 Subject: [PATCH 052/388] Fix issue with conflicted mempool tx in listsinceblock listsinceblock now checks that returned transactions are not conflicting with any transactions that are filtered out by the given blockhash Co-Authored-By: Michael Chrostowski Github-Pull: #17258 Rebased-From: 436ad436434b94982bcb7dc1d13a21949263ef73 --- src/wallet/rpcwallet.cpp | 2 +- test/functional/wallet_listsinceblock.py | 49 ++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 96fa50d42e..2b1f9f3752 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -1599,7 +1599,7 @@ static UniValue listsinceblock(const JSONRPCRequest& request) for (const std::pair& pairWtx : pwallet->mapWallet) { CWalletTx tx = pairWtx.second; - if (depth == -1 || tx.GetDepthInMainChain(*locked_chain) < depth) { + if (depth == -1 || abs(tx.GetDepthInMainChain(*locked_chain)) < depth) { ListTransactions(*locked_chain, pwallet, tx, 0, true, transactions, filter, nullptr /* filter_label */); } } diff --git a/test/functional/wallet_listsinceblock.py b/test/functional/wallet_listsinceblock.py index 4aeb393255..455e89e310 100755 --- a/test/functional/wallet_listsinceblock.py +++ b/test/functional/wallet_listsinceblock.py @@ -5,6 +5,7 @@ """Test the listsincelast RPC.""" from test_framework.test_framework import BitcoinTestFramework +from test_framework.messages import BIP125_SEQUENCE_NUMBER from test_framework.util import ( assert_array_result, assert_equal, @@ -12,6 +13,7 @@ connect_nodes, ) +from decimal import Decimal class ListSinceBlockTest(BitcoinTestFramework): def set_test_params(self): @@ -33,6 +35,7 @@ def run_test(self): self.test_reorg() self.test_double_spend() self.test_double_send() + self.double_spends_filtered() def test_no_blockhash(self): txid = self.nodes[2].sendtoaddress(self.nodes[0].getnewaddress(), 1) @@ -291,5 +294,51 @@ def test_double_send(self): if tx['txid'] == txid1: assert_equal(tx['confirmations'], 2) + def double_spends_filtered(self): + ''' + `listsinceblock` was returning conflicted transactions even if they + occurred before the specified cutoff blockhash + ''' + spending_node = self.nodes[2] + dest_address = spending_node.getnewaddress() + + tx_input = dict( + sequence=BIP125_SEQUENCE_NUMBER, **next(u for u in spending_node.listunspent())) + rawtx = spending_node.createrawtransaction( + [tx_input], {dest_address: tx_input["amount"] - Decimal("0.00051000"), + spending_node.getrawchangeaddress(): Decimal("0.00050000")}) + signedtx = spending_node.signrawtransactionwithwallet(rawtx) + orig_tx_id = spending_node.sendrawtransaction(signedtx["hex"]) + original_tx = spending_node.gettransaction(orig_tx_id) + + double_tx = spending_node.bumpfee(orig_tx_id) + + # check that both transactions exist + block_hash = spending_node.listsinceblock( + spending_node.getblockhash(spending_node.getblockcount())) + original_found = False + double_found = False + for tx in block_hash['transactions']: + if tx['txid'] == original_tx['txid']: + original_found = True + if tx['txid'] == double_tx['txid']: + double_found = True + assert_equal(original_found, True) + assert_equal(double_found, True) + + lastblockhash = spending_node.generate(1)[0] + + # check that neither transaction exists + block_hash = spending_node.listsinceblock(lastblockhash) + original_found = False + double_found = False + for tx in block_hash['transactions']: + if tx['txid'] == original_tx['txid']: + original_found = True + if tx['txid'] == double_tx['txid']: + double_found = True + assert_equal(original_found, False) + assert_equal(double_found, False) + if __name__ == '__main__': ListSinceBlockTest().main() From a5489c9892fc12cb70c6c7b017881a9218d0b041 Mon Sep 17 00:00:00 2001 From: Gregory Sanders Date: Wed, 27 Nov 2019 10:56:04 -0500 Subject: [PATCH 053/388] IsUsedDestination should count any known single-key address Github-Pull: #17621 Rebased-From: 09502452bbbe21bb974f1de8cf53196373921ab9 --- src/wallet/rpcwallet.cpp | 2 +- src/wallet/wallet.cpp | 28 +++++++++++++++++++++------- src/wallet/wallet.h | 5 ++--- test/functional/wallet_avoidreuse.py | 25 +++++++++++++++++++++---- 4 files changed, 45 insertions(+), 15 deletions(-) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 2b1f9f3752..fe004a862d 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -2924,7 +2924,7 @@ static UniValue listunspent(const JSONRPCRequest& request) CTxDestination address; const CScript& scriptPubKey = out.tx->tx->vout[out.i].scriptPubKey; bool fValidAddress = ExtractDestination(scriptPubKey, address); - bool reused = avoid_reuse && pwallet->IsUsedDestination(address); + bool reused = avoid_reuse && pwallet->IsUsedDestination(out.tx->GetHash(), out.i); if (destinations.size() && (!fValidAddress || !destinations.count(address))) continue; diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 64c7623bff..2dfd60a913 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1073,17 +1073,31 @@ void CWallet::SetUsedDestinationState(const uint256& hash, unsigned int n, bool } } -bool CWallet::IsUsedDestination(const CTxDestination& dst) const -{ - LOCK(cs_wallet); - return ::IsMine(*this, dst) && GetDestData(dst, "used", nullptr); -} - bool CWallet::IsUsedDestination(const uint256& hash, unsigned int n) const { + AssertLockHeld(cs_wallet); CTxDestination dst; const CWalletTx* srctx = GetWalletTx(hash); - return srctx && ExtractDestination(srctx->tx->vout[n].scriptPubKey, dst) && IsUsedDestination(dst); + if (srctx) { + assert(srctx->tx->vout.size() > n); + // When descriptor wallets arrive, these additional checks are + // likely superfluous and can be optimized out + for (const auto& keyid : GetAffectedKeys(srctx->tx->vout[n].scriptPubKey, *this)) { + WitnessV0KeyHash wpkh_dest(keyid); + if (GetDestData(wpkh_dest, "used", nullptr)) { + return true; + } + ScriptHash sh_wpkh_dest(wpkh_dest); + if (GetDestData(sh_wpkh_dest, "used", nullptr)) { + return true; + } + PKHash pkh_dest(keyid); + if (GetDestData(pkh_dest, "used", nullptr)) { + return true; + } + } + } + return false; } bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFlushOnClose) diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index 789a2d9245..ee4ac91588 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -1004,9 +1004,8 @@ class CWallet final : public FillableSigningProvider, private interfaces::Chain: bool IsSpent(interfaces::Chain::Lock& locked_chain, const uint256& hash, unsigned int n) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet); - // Whether this or any UTXO with the same CTxDestination has been spent. - bool IsUsedDestination(const CTxDestination& dst) const; - bool IsUsedDestination(const uint256& hash, unsigned int n) const; + // Whether this or any known UTXO with the same single key has been spent. + bool IsUsedDestination(const uint256& hash, unsigned int n) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet); void SetUsedDestinationState(const uint256& hash, unsigned int n, bool used); std::vector GroupOutputs(const std::vector& outputs, bool single_coin) const; diff --git a/test/functional/wallet_avoidreuse.py b/test/functional/wallet_avoidreuse.py index 3c8064ea2d..55b30afdee 100755 --- a/test/functional/wallet_avoidreuse.py +++ b/test/functional/wallet_avoidreuse.py @@ -83,7 +83,12 @@ def run_test(self): reset_balance(self.nodes[1], self.nodes[0].getnewaddress()) self.test_fund_send_fund_senddirty() reset_balance(self.nodes[1], self.nodes[0].getnewaddress()) - self.test_fund_send_fund_send() + self.test_fund_send_fund_send("legacy") + reset_balance(self.nodes[1], self.nodes[0].getnewaddress()) + self.test_fund_send_fund_send("p2sh-segwit") + reset_balance(self.nodes[1], self.nodes[0].getnewaddress()) + self.test_fund_send_fund_send("bech32") + def test_persistence(self): '''Test that wallet files persist the avoid_reuse flag.''' @@ -174,7 +179,7 @@ def test_fund_send_fund_senddirty(self): assert_approx(self.nodes[1].getbalance(), 5, 0.001) assert_approx(self.nodes[1].getbalance(avoid_reuse=False), 5, 0.001) - def test_fund_send_fund_send(self): + def test_fund_send_fund_send(self, second_addr_type): ''' Test the simple case where [1] generates a new address A, then [0] sends 10 BTC to A. @@ -184,7 +189,7 @@ def test_fund_send_fund_send(self): [1] tries to spend 4 BTC (succeeds; change address sufficient) ''' - fundaddr = self.nodes[1].getnewaddress() + fundaddr = self.nodes[1].getnewaddress(label="", address_type="legacy") retaddr = self.nodes[0].getnewaddress() self.nodes[0].sendtoaddress(fundaddr, 10) @@ -205,7 +210,19 @@ def test_fund_send_fund_send(self): # getbalances should show no used, 5 btc trusted assert_balances(self.nodes[1], mine={"used": 0, "trusted": 5}) - self.nodes[0].sendtoaddress(fundaddr, 10) + # For the second send, we transmute it to a related single-key address + # to make sure it's also detected as re-use + fund_spk = self.nodes[0].getaddressinfo(fundaddr)["scriptPubKey"] + fund_decoded = self.nodes[0].decodescript(fund_spk) + if second_addr_type == "p2sh-segwit": + new_fundaddr = fund_decoded["segwit"]["p2sh-segwit"] + elif second_addr_type == "bech32": + new_fundaddr = fund_decoded["segwit"]["addresses"][0] + else: + new_fundaddr = fundaddr + assert_equal(second_addr_type, "legacy") + + self.nodes[0].sendtoaddress(new_fundaddr, 10) self.nodes[0].generate(1) self.sync_all() From e2c45d89f7219fd5bcf19a6e04b291abbb4b5f95 Mon Sep 17 00:00:00 2001 From: Gregory Sanders Date: Tue, 14 Jan 2020 13:23:24 -0500 Subject: [PATCH 054/388] IsUsedDestination shouldn't use key id as script id for ScriptHash Github-Pull: #17924 Rebased-From: 4b8f1e989f3b969dc628b0801d5c31ebd373719c --- src/wallet/wallet.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 2dfd60a913..4c3b633fe4 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1087,7 +1087,7 @@ bool CWallet::IsUsedDestination(const uint256& hash, unsigned int n) const if (GetDestData(wpkh_dest, "used", nullptr)) { return true; } - ScriptHash sh_wpkh_dest(wpkh_dest); + ScriptHash sh_wpkh_dest(GetScriptForDestination(wpkh_dest)); if (GetDestData(sh_wpkh_dest, "used", nullptr)) { return true; } From eac49073eb7c5d630dd9a285e36f743fa902c0ee Mon Sep 17 00:00:00 2001 From: Gregory Sanders Date: Tue, 14 Jan 2020 15:05:53 -0500 Subject: [PATCH 055/388] Don't allow implementers to think ScriptHash(Witness*()) results in nesting computation Github-Pull: #17924 Rebased-From: 6dd59d2e491bc11ab26498668543e65440a3a931 --- src/script/standard.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/script/standard.h b/src/script/standard.h index e45e2d92cc..0c344c7733 100644 --- a/src/script/standard.h +++ b/src/script/standard.h @@ -81,9 +81,14 @@ struct PKHash : public uint160 using uint160::uint160; }; +struct WitnessV0KeyHash; struct ScriptHash : public uint160 { ScriptHash() : uint160() {} + // These don't do what you'd expect. + // Use ScriptHash(GetScriptForDestination(...)) instead. + explicit ScriptHash(const WitnessV0KeyHash& hash) = delete; + explicit ScriptHash(const PKHash& hash) = delete; explicit ScriptHash(const uint160& hash) : uint160(hash) {} explicit ScriptHash(const CScript& script); using uint160::uint160; From b8101fb7ac4bfa0e5c0ee2459b24bddaf59fe7c4 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Fri, 29 Nov 2019 20:15:45 +0200 Subject: [PATCH 056/388] Fix comparison function signature This commit fixes build on CentOS 7 with GCC 4.8.5 Github-Pull: #17634 Rebased-From: b66861e2e5e8a49e11e7489cf22c3007bc7082cc --- src/qt/recentrequeststablemodel.cpp | 9 ++++----- src/qt/recentrequeststablemodel.h | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/qt/recentrequeststablemodel.cpp b/src/qt/recentrequeststablemodel.cpp index 1611ec823c..64bfb7d643 100644 --- a/src/qt/recentrequeststablemodel.cpp +++ b/src/qt/recentrequeststablemodel.cpp @@ -11,8 +11,7 @@ #include #include -#include - +#include RecentRequestsTableModel::RecentRequestsTableModel(WalletModel *parent) : QAbstractTableModel(parent), walletModel(parent) @@ -213,10 +212,10 @@ void RecentRequestsTableModel::updateDisplayUnit() updateAmountColumnTitle(); } -bool RecentRequestEntryLessThan::operator()(RecentRequestEntry &left, RecentRequestEntry &right) const +bool RecentRequestEntryLessThan::operator()(const RecentRequestEntry& left, const RecentRequestEntry& right) const { - RecentRequestEntry *pLeft = &left; - RecentRequestEntry *pRight = &right; + const RecentRequestEntry* pLeft = &left; + const RecentRequestEntry* pRight = &right; if (order == Qt::DescendingOrder) std::swap(pLeft, pRight); diff --git a/src/qt/recentrequeststablemodel.h b/src/qt/recentrequeststablemodel.h index 130b709d46..66e8d4f228 100644 --- a/src/qt/recentrequeststablemodel.h +++ b/src/qt/recentrequeststablemodel.h @@ -43,7 +43,7 @@ class RecentRequestEntryLessThan public: RecentRequestEntryLessThan(int nColumn, Qt::SortOrder fOrder): column(nColumn), order(fOrder) {} - bool operator()(RecentRequestEntry &left, RecentRequestEntry &right) const; + bool operator()(const RecentRequestEntry& left, const RecentRequestEntry& right) const; private: int column; From cd67b1dcb8f1eca8c0c7cecc6f4de27c7efe41d5 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Fri, 29 Nov 2019 21:18:24 +0200 Subject: [PATCH 057/388] Use correct C++11 header for std::swap() Github-Pull: #17634 Rebased-From: 98fbd1cdffaa69357091cc67e959ac21119dfa16 --- src/cuckoocache.h | 4 ++-- src/prevector.h | 1 + src/qt/bantablemodel.cpp | 2 +- src/qt/peertablemodel.cpp | 2 +- src/test/checkqueue_tests.cpp | 1 + src/validation.h | 1 - 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/cuckoocache.h b/src/cuckoocache.h index 4d0b094fa2..16a994393e 100644 --- a/src/cuckoocache.h +++ b/src/cuckoocache.h @@ -6,11 +6,11 @@ #define BITCOIN_CUCKOOCACHE_H #include -#include #include -#include #include +#include #include +#include #include diff --git a/src/prevector.h b/src/prevector.h index 9d576321b6..34016879a5 100644 --- a/src/prevector.h +++ b/src/prevector.h @@ -14,6 +14,7 @@ #include #include #include +#include #pragma pack(push, 1) /** Implements a drop-in replacement for std::vector which stores up to N diff --git a/src/qt/bantablemodel.cpp b/src/qt/bantablemodel.cpp index efc726e09e..60a3178f96 100644 --- a/src/qt/bantablemodel.cpp +++ b/src/qt/bantablemodel.cpp @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include diff --git a/src/qt/peertablemodel.cpp b/src/qt/peertablemodel.cpp index 99a9a12fe2..ed6fecce9d 100644 --- a/src/qt/peertablemodel.cpp +++ b/src/qt/peertablemodel.cpp @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include diff --git a/src/test/checkqueue_tests.cpp b/src/test/checkqueue_tests.cpp index d796444419..6c050ab964 100644 --- a/src/test/checkqueue_tests.cpp +++ b/src/test/checkqueue_tests.cpp @@ -18,6 +18,7 @@ #include #include +#include // BasicTestingSetup not sufficient because nScriptCheckThreads is not set // otherwise. diff --git a/src/validation.h b/src/validation.h index 96d249b6d3..4490a75e18 100644 --- a/src/validation.h +++ b/src/validation.h @@ -22,7 +22,6 @@ #include #include -#include #include #include #include From 9d980c1f7f6fd0eb686d3cc94ba4698547f151c2 Mon Sep 17 00:00:00 2001 From: Jim Posen Date: Wed, 8 Jan 2020 15:07:46 -0500 Subject: [PATCH 058/388] init: Stop indexes on shutdown after ChainStateFlushed callback. Currently, the latest index state may not be committed to disk on shutdown. Github-Pull: #17897 Rebased-From: 9dd58ca611f6f2b59c25d727a4e955333525d345 --- src/init.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index 543194c2e3..ccb5962c48 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -199,8 +199,6 @@ void Shutdown(InitInterfaces& interfaces) // using the other before destroying them. if (peerLogic) UnregisterValidationInterface(peerLogic.get()); if (g_connman) g_connman->Stop(); - if (g_txindex) g_txindex->Stop(); - ForEachBlockFilterIndex([](BlockFilterIndex& index) { index.Stop(); }); StopTorControl(); @@ -214,8 +212,6 @@ void Shutdown(InitInterfaces& interfaces) peerLogic.reset(); g_connman.reset(); g_banman.reset(); - g_txindex.reset(); - DestroyAllBlockFilterIndexes(); if (::mempool.IsLoaded() && gArgs.GetArg("-persistmempool", DEFAULT_PERSIST_MEMPOOL)) { DumpMempool(::mempool); @@ -248,6 +244,14 @@ void Shutdown(InitInterfaces& interfaces) // CValidationInterface callbacks, flush them... GetMainSignals().FlushBackgroundCallbacks(); + // Stop and delete all indexes only after flushing background callbacks. + if (g_txindex) { + g_txindex->Stop(); + g_txindex.reset(); + } + ForEachBlockFilterIndex([](BlockFilterIndex& index) { index.Stop(); }); + DestroyAllBlockFilterIndexes(); + // Any future callbacks will be dropped. This should absolutely be safe - if // missing a callback results in an unrecoverable situation, unclean shutdown // would too. The only reason to do the above flushes is to let the wallet catch From c8ad23c52932cf33fac6e527ff18b5241ccceb04 Mon Sep 17 00:00:00 2001 From: Karl-Johan Alm Date: Tue, 7 Jan 2020 22:24:16 +0900 Subject: [PATCH 059/388] bug-fix macos: give free bytes to F_PREALLOCATE The macos manpage for fcntl (for F_PEOFPOSMODE) states: > Allocate from the physical end of file. In this case, fst_length indicates the number of newly allocated bytes desired. Github-Pull: #17887 Rebased-From: 75163f4729c10c40d2843da28a8c79ab89193f6a --- src/util/system.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/util/system.cpp b/src/util/system.cpp index bbd7c9940a..5a3c68aa0c 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -1088,17 +1088,19 @@ void AllocateFileRange(FILE *file, unsigned int offset, unsigned int length) { SetEndOfFile(hFile); #elif defined(MAC_OSX) // OSX specific version + // NOTE: Contrary to other OS versions, the OSX version assumes that + // NOTE: offset is the size of the file. fstore_t fst; fst.fst_flags = F_ALLOCATECONTIG; fst.fst_posmode = F_PEOFPOSMODE; fst.fst_offset = 0; - fst.fst_length = (off_t)offset + length; + fst.fst_length = length; // mac os fst_length takes the # of free bytes to allocate, not desired file size fst.fst_bytesalloc = 0; if (fcntl(fileno(file), F_PREALLOCATE, &fst) == -1) { fst.fst_flags = F_ALLOCATEALL; fcntl(fileno(file), F_PREALLOCATE, &fst); } - ftruncate(fileno(file), fst.fst_length); + ftruncate(fileno(file), static_cast(offset) + length); #else #if defined(__linux__) // Version using posix_fallocate From daf2fff236f8ebb75c785b33d2dd6dcd3cf86112 Mon Sep 17 00:00:00 2001 From: Karl-Johan Alm Date: Wed, 22 Jan 2020 17:13:53 +0900 Subject: [PATCH 060/388] test: add missing #include to fix compiler errors Github-Pull: #17980 Rebased-From: a5a2654bbc43b5c208418872e5d4c0acbadda5de --- src/test/cuckoocache_tests.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/cuckoocache_tests.cpp b/src/test/cuckoocache_tests.cpp index d38ede691a..2271aded1b 100644 --- a/src/test/cuckoocache_tests.cpp +++ b/src/test/cuckoocache_tests.cpp @@ -7,6 +7,7 @@ #include #include #include +#include /** Test Suite for CuckooCache * From 1299a1a11f9bf125558e1e3e7d11826909ae66cb Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 23 Jan 2020 14:33:18 +0100 Subject: [PATCH 061/388] qt: Translations update pre-rc1 Tree-SHA512: 0e0d696c32c20e550bda5bd0fe73a73ab1d944f3fb368d50993248ff6feef7373b4feba91dc38e62b180c9854dd4528dfd62e6628bc2b24b12d7c9ff07f34e55 --- src/qt/locale/bitcoin_en.ts | 28 +-- src/qt/locale/bitcoin_es_CO.ts | 4 +- src/qt/locale/bitcoin_fi.ts | 32 +++ src/qt/locale/bitcoin_id.ts | 370 ++++++++++++++++++++++++++++++++- src/qt/locale/bitcoin_ja.ts | 4 + src/qt/locale/bitcoin_ta.ts | 154 ++++++++++++-- 6 files changed, 556 insertions(+), 36 deletions(-) diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index c55f3519a3..207a1e9208 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -330,12 +330,12 @@ Sign &message... - + Synchronizing with network... Synchronizing with network... - + &Overview &Overview @@ -420,7 +420,7 @@ - + Create a new wallet @@ -430,7 +430,7 @@ - + Click to disable network activity. @@ -460,7 +460,7 @@ - + Send coins to a Bitcoin address Send coins to a Bitcoin address @@ -525,7 +525,7 @@ Verify messages to ensure they were signed with specified Bitcoin addresses - + &File &File @@ -545,7 +545,7 @@ Tabs toolbar - + Request payments (generates QR codes and bitcoin: URIs) @@ -565,12 +565,12 @@ - + &Command-line options - + %n active connection(s) to Bitcoin network %n active connection to Bitcoin network @@ -631,7 +631,7 @@ Up to date - + &Sending addresses @@ -661,7 +661,7 @@ - + Show the %1 help message to get a list with possible Bitcoin command-line options @@ -696,7 +696,7 @@ - + %1 client @@ -2161,7 +2161,7 @@ - + Error: Specified data directory "%1" does not exist. @@ -2838,7 +2838,7 @@ RecentRequestsTableModel - + Date Date diff --git a/src/qt/locale/bitcoin_es_CO.ts b/src/qt/locale/bitcoin_es_CO.ts index d5a5a1348a..91e425eb08 100644 --- a/src/qt/locale/bitcoin_es_CO.ts +++ b/src/qt/locale/bitcoin_es_CO.ts @@ -3,7 +3,7 @@ AddressBookPage Right-click to edit address or label - Haga clic para editar la dirección o etiqueta + Clic derecho para editar la dirección o etiqueta Create a new address @@ -161,7 +161,7 @@ Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - Advertencia: Si encriptas tu billetera y pierdes tu contraseña, vas a perder<b>TODOS TUS BITCOINS</b>! + Advertencia: Si encriptas tu billetera y pierdes tu contraseña, vas a ¡<b>PERDER TODOS TUS BITCOINS</b>! Are you sure you wish to encrypt your wallet? diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index 92a231b319..830309ee46 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -791,6 +791,10 @@ Creating Wallet <b>%1</b>... Luodaan lompakkoa <b>%1</b>... + + Create wallet failed + Lompakon luonti epäonnistui + CreateWalletDialog @@ -810,6 +814,14 @@ Encrypt Wallet Salaa lompakko + + Disable Private Keys + Poista yksityisavaimet käytöstä + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Luo tyhjä lompakko. Tyhjissä lompakoissa ei aluksi ole yksityisavaimia tai skriptejä. Myöhemmin voidaan tuoda yksityisavaimia ja -osoitteita, tai asettaa HD-siemen. + Make Blank Wallet Luo tyhjä lompakko @@ -934,6 +946,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Kun valitset OK, %1 aloittaa lataamaan ja käsittelemään koko %4 lohkoketjua (%2GB) aloittaen ensimmäisestä siirrosta %3 jolloin %4 käynnistettiin ensimmäistä kertaa. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Tämän asetuksen peruuttaminen vaatii koko lohkoketjun uudelleenlataamisen. On nopeampaa ladata koko ketju ensin ja karsia se myöhemmin. Tämä myös poistaa käytöstä joitain edistyneitä toimintoja. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Tämä alustava synkronointi on erittäin vaativa ja saattaa tuoda esiin laiteongelmia, joita ei aikaisemmin ole havaittu. Aina kun ajat %1:n, jatketaan siitä kohdasta, mihin viimeksi jäätiin. @@ -1677,6 +1693,10 @@ Error encoding URI into QR Code. Virhe käännettäessä URI:a QR-koodiksi. + + QR code support not available. + Tukea QR-koodeille ei ole saatavilla. + Save QR Code Tallenna QR-koodi @@ -2356,6 +2376,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t %1 (%2 blocks) %1 (%2 lohkoa) + + from wallet '%1' + lompakosta '%1' + %1 to %2 %1 to %2 @@ -3433,6 +3457,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Loading P2P addresses... Ladataan P2P-vertaisten osoitteita... + + Error: Disk space is too low! + Virhe: Liian vähän levytilaa! + Loading banlist... Ladataan kieltolistaa... @@ -3537,6 +3565,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Need to specify a port with -whitebind: '%s' Pitää määritellä portti argumentilla -whitebind: '%s' + + Prune mode is incompatible with -blockfilterindex. + Karsintatila ei ole yhteensopiva -blockfilterindex valinnan kanssa + Reducing -maxconnections from %d to %d, because of system limitations. Vähennetään -maxconnections arvoa %d:stä %d:hen järjestelmän rajoitusten vuoksi. diff --git a/src/qt/locale/bitcoin_id.ts b/src/qt/locale/bitcoin_id.ts index 777a35303d..563962e547 100644 --- a/src/qt/locale/bitcoin_id.ts +++ b/src/qt/locale/bitcoin_id.ts @@ -69,6 +69,10 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. Berikut ialah alamat-alamat Bitcoin Anda yang digunakan untuk mengirimkan pembayaran. Selalu periksa jumlah dan alamat penerima sebelum mengirimkan koin. + + These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Ini adalah alamat Bitcoin untuk menerima pembayaran. Gunakan tombol 'Buat alamat penerima baru' di tab terima untuk membuat alamat baru. + &Copy Address &Salin Alamat @@ -131,6 +135,10 @@ Repeat new passphrase Ulangi kata sandi baru + + Show passphrase + Perlihatkan passphrase + Encrypt wallet Enkripsi dompet @@ -171,6 +179,30 @@ Wallet encrypted Dompet terenkripsi + + Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Masukkan passphrase baru ke dompet.<br/>Harap gunakan passphrase dari <b>sepuluh atau lebih karakter acak</b>, or <b>delapan atau lebih kata</b>. + + + Enter the old passphrase and new passphrase for the wallet. + Masukan passphrase lama dan passphrase baru ke dompet + + + Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Mengenkripsi dompet Anda tidak dapat sepenuhnya melindungi bitcoin Anda dari pencurian oleh malware yang menginfeksi komputer Anda. + + + Wallet to be encrypted + Dompet yang akan dienkripsi + + + Your wallet is about to be encrypted. + Dompet anda akan dienkripsi + + + Your wallet is now encrypted. + Dompet anda sudah dienkripsi + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. PENTING: Backup sebelumnya yang Anda buat dari file dompet Anda harus diganti dengan file dompet terenkripsi yang baru dibuat. Demi keamanan, backup file dompet sebelumnya yang tidak dienkripsi sebelumnya akan menjadi tidak berguna begitu Anda mulai menggunakan dompet terenkripsi yang baru. @@ -293,6 +325,14 @@ Open &URI... Buka &URI + + Create Wallet... + Bikin dompet... + + + Create a new wallet + Bikin dompet baru + Wallet: Wallet: @@ -521,6 +561,10 @@ Error: %1 Error: %1 + + Warning: %1 + Peringatan: %1 + Date: %1 @@ -743,10 +787,58 @@ CreateWalletActivity - + + Creating Wallet <b>%1</b>... + Membuat Dompet <b>%1</b>... + + + Create wallet failed + Pembuatan dompet gagal + + + Create wallet warning + Peringatan membuat dompet + + CreateWalletDialog - + + Create Wallet + Bikin dompet + + + Wallet Name + Nama Dompet + + + Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice. + Enkripsi dompet. Dompet akan dienkripsi dengan passphrase pilihan Anda. + + + Encrypt Wallet + Enkripsi Dompet + + + Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets. + Nonaktifkan private keys dompet ini. Dompet dengan private keys nonaktif tidak akan memiliki private keys dan tidak dapat memiliki seed HD atau private keys impor. Ini sangat ideal untuk dompet watch-only. + + + Disable Private Keys + Nonaktifkan private keys + + + Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time. + Buat dompet kosong. Dompet kosong pada awalnya tidak memiliki private keys atau skrip pribadi. Private keys dan alamat pribadi dapat diimpor, atau seed HD dapat diatur di kemudian hari. + + + Make Blank Wallet + Buat dompet kosong + + + Create + Membuat + + EditAddressDialog @@ -862,6 +954,10 @@ When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched. Ketika Anda mengklik OK, %1 akan mulai mengunduh dan memproses %4 block chain penuh (%2GB), dimulai dari transaksi-transaksi awal di %3 saat %4 diluncurkan pertama kali. + + Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features. + Mengembalikan pengaturan perlu mengunduh ulang seluruh blockchain. Lebih cepat mengunduh rantai penuh terlebih dahulu dan memangkasnya kemudian. Menonaktifkan beberapa fitur lanjutan. + This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off. Sinkronisasi awal sangat berat dan mungkin akan menunjukkan permasalahan pada perangkat keras komputer Anda yang sebelumnya tidak tampak. Setiap kali Anda menjalankan %1, aplikasi ini akan melanjutkan pengunduhan dari posisi terakhir. @@ -882,6 +978,10 @@ Bitcoin Bitcoin + + Discard blocks after verification, except most recent %1 GB (prune) + Buang blok setelah verifikasi, kecuali %1 GB terbaru (prune) + At least %1 GB of data will be stored in this directory, and it will grow over time. Setidaknya %1 GB data akan disimpan di direktori ini dan akan berkembang seiring berjalannya waktu. @@ -914,7 +1014,11 @@ (of %n GB needed) (dari %n GB yang dibutuhkan) - + + (%n GB needed for full chain) + (%n GB dibutuhkan untuk rantai penuh) + + ModalOverlay @@ -991,6 +1095,14 @@ OpenWalletActivity + + Open wallet failed + Gagal membuka wallet + + + Open wallet warning + Peringatan membuka wallet + default wallet wallet default @@ -1380,6 +1492,14 @@ Cannot process payment request because BIP70 support was not compiled in. Tidak dapat memproses pembayaran karena dukungan BIP70 tidak disertakan didalamnya. + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + Berhubung kelemahan keamanan yang meluas di BIP70, sangat disarankan agar instruksi pedagang untuk mengganti dompet diabaikan. + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + Jika Anda menerima kesalahan ini, Anda harus meminta pedagang memberikan URI yang kompatibel dengan BIP21. + Invalid payment address %1 Alamat pembayaran tidak valid %1 @@ -1601,6 +1721,10 @@ Error encoding URI into QR Code. Error saat menyandikan tautan ke dalam kode QR. + + QR code support not available. + Dukungan kode QR tidak tersedia. + Save QR Code Simpan Kode QR @@ -1957,6 +2081,10 @@ An optional amount to request. Leave this empty or zero to not request a specific amount. Nilai permintaan opsional. Biarkan ini kosong atau nol bila tidak meminta nilai tertentu. + + &Create new receiving address + &Create alamat penerima baru + Clear all fields of the form. Hapus informasi dari form. @@ -2190,6 +2318,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Custom: Khusus + + (Smart fee not initialized yet. This usually takes a few blocks...) + (Smart fee belum di-inisialisasi. Biasanya hal ini akan memerlukan beberapa block...) + Send to multiple recipients at once Kirim ke beberapa penerima sekaligus @@ -2206,6 +2338,26 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Dust: Dust: + + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + Ketika volume transaksi lebih sedikit daripada ruang di blok, penambang serta simpul yang menyiarkanikan dapat memberlakukan biaya minimum. Anda boleh hanya membayar biaya minimum, tetapi perlu diketahui bahwa ini dapat menghasilkan transaksi yang tidak pernah dikonfirmasi setelah ada lebih banyak permintaan untuk transaksi bitcoin daripada yang dapat diproses jaringan. + + + A too low fee might result in a never confirming transaction (read the tooltip) + Biaya yang terlalu rendah dapat menyebabkan transaksi tidak terkonfirmasi (baca tooltip) + + + Confirmation time target: + Target waktu konfirmasi: + + + Enable Replace-By-Fee + Izinkan Replace-By-Fee + + + With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk. + Dengan Replace-By-Fee (BIP-125) Anda dapat menambah biaya transaksi setelah dikirim. Tanpa ini, biaya yang lebih tinggi dapat direkomendasikan untuk mengkompensasi peningkatan risiko keterlambatan transaksi. + Clear &All Hapus &Semua @@ -2250,14 +2402,106 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Copy change Salin Perubahan + + %1 (%2 blocks) + %1 (%2 block) + + + from wallet '%1' + dari dompet '%1' + + + %1 to '%2' + %1 ke '%2' + + + %1 to %2 + %1 ke %2 + + + Are you sure you want to send? + Apakah anda yakin ingin mengirimkan? + + + or + atau + + + You can increase the fee later (signals Replace-By-Fee, BIP-125). + Anda dapat menambah biaya kemudian (sinyal Replace-By-Fee, BIP-125). + + + Please, review your transaction. + Mohon periksa kembali transaksi anda. + Transaction fee Biaya Transaksi + + Not signalling Replace-By-Fee, BIP-125. + Tidak memberi sinyal Replace-By-Fee, BIP-125. + + + Total Amount + Jumlah Keseluruhan + + + To review recipient list click "Show Details..." + Untuk meninjau daftar penerima, klik "Tampilkan Detail ..." + + + Confirm send coins + Konfirmasi pengiriman koin + + + The recipient address is not valid. Please recheck. + Alamat penerima tidak sesuai. Mohon periksa kembali. + + + The amount to pay must be larger than 0. + Jumlah pembayaran harus lebih besar daripada 0. + + + The amount exceeds your balance. + Jumlah melebihi saldo anda. + + + Duplicate address found: addresses should only be used once each. + Alamat duplikat ditemukan: alamat hanya boleh digunakan sekali saja. + + + Transaction creation failed! + Pembuatan transaksi gagal! + + + A fee higher than %1 is considered an absurdly high fee. + Biaya yang lebih tinggi dari %1 dianggap sebagai biaya yang sangat tinggi. + Payment request expired. Permintaan pembayaran telah kadaluarsa. + + Estimated to begin confirmation within %n block(s). + Diperkirakan akan memulai konfirmasi dalam %n blok. + + + Warning: Invalid Bitcoin address + Peringatan: Alamat Bitcoin tidak valid + + + Warning: Unknown change address + Peringatan: Alamat tidak dikenal + + + Confirm custom change address + Konfirmasi perubahan alamat + + + The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure? + Alamat yang anda pilih untuk diubah bukan bagian dari dompet ini. Sebagian atau semua dana di dompet anda mungkin dikirim ke alamat ini. Apakah anda yakin? + (no label) (tidak ada label) @@ -2285,6 +2529,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" This is a normal payment. Ini adalah pembayaran normal + + The Bitcoin address to send the payment to + Alamat Bitcoin untuk mengirim pembayaran + Alt+A Alt+J @@ -2301,14 +2549,38 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Remove this entry Hapus masukan ini + + The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Biaya akan diambil dari jumlah yang dikirim. Penerima akan menerima bitcoin lebih sedikit daripada yang di masukkan di bidang jumlah. Jika ada beberapa penerima, biaya dibagi rata. + + + S&ubtract fee from amount + Kurangi biaya dari jumlah + + + Use available balance + Gunakan saldo yang tersedia + Message: Pesan: + + This is an unauthenticated payment request. + Ini permintaan pembayaran yang tidak diautentikasi. + + + This is an authenticated payment request. + Ini permintaan pembayaran yang diautentikasi. + Enter a label for this address to add it to the list of used addresses Masukkan label untuk alamat ini untuk dimasukan dalam daftar alamat yang pernah digunakan + + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + Pesan yang dilampirkan ke bitcoin: URI yang akan disimpan dengan transaksi untuk referensi Anda. Catatan: Pesan ini tidak akan dikirim melalui jaringan Bitcoin. + Pay To: Kirim Ke: @@ -2317,7 +2589,11 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Memo: Catatan Peringatan: - + + Enter a label for this address to add it to your address book + Masukkan label alamat ini untuk menambahkannya ke buku alamat Anda + + SendConfirmationDialog @@ -2342,6 +2618,14 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" &Sign Message &Tandakan Pesan + + You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Anda dapat menandatangani pesan / perjanjian dengan alamat Anda untuk membuktikan bahwa Anda dapat menerima bitcoin yang dikirimkan kepada mereka. Berhati-hatilah untuk tidak menandatangani apa pun yang samar-samar atau acak, karena serangan phishing mungkin mencoba menipu Anda untuk menandatangani identitas Anda kepada mereka. Hanya tandatangani pernyataan terperinci yang Anda setujui. + + + The Bitcoin address to sign the message with + Alamat Bitcoin untuk menandatangani pesan + Choose previously used address Pilih alamat yang telah digunakan sebelumnya @@ -2390,6 +2674,18 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" &Verify Message &Verifikasi Pesan + + Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! + Masukkan alamat penerima, pesan (pastikan Anda menyalin persis jeda baris, spasi, tab, dll) dan tanda tangan di bawah untuk memverifikasi pesan. Berhati-hatilah untuk tidak memberi informasi lebih ke tanda tangan daripada apa yang ada dalam pesan yang ditandatangani itu sendiri, untuk menghindari dikelabui oleh serangan man-in-the-middle. Perhatikan bahwa ini hanya membuktikan pihak penandatangan menerima dengan alamat, tapi tidak dapat membuktikan pengiriman dari transaksi apa pun! + + + The Bitcoin address the message was signed with + Alamat Bitcoin yang menandatangani pesan + + + Verify the message to ensure it was signed with the specified Bitcoin address + Verifikasi pesan untuk memastikannya ditandatangani dengan alamat Bitcoin tersebut + Verify &Message Verifikasi &Pesan @@ -2398,7 +2694,59 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Reset all verify message fields Hapus semua bidang verifikasi pesan - + + Click "Sign Message" to generate signature + Klik "Sign Message" untuk menghasilkan tanda tangan + + + The entered address is invalid. + Alamat yang dimasukkan tidak valid. + + + Please check the address and try again. + Mohon periksa alamat dan coba lagi. + + + The entered address does not refer to a key. + Alamat yang dimasukkan tidak merujuk pada kunci. + + + Wallet unlock was cancelled. + Pembukaan kunci dompet dibatalkan. + + + Private key for the entered address is not available. + Private key untuk alamat yang dimasukkan tidak tersedia. + + + Message signing failed. + Penandatanganan pesan gagal. + + + Message signed. + Pesan sudah ditandatangani. + + + The signature could not be decoded. + Tanda tangan tidak dapat disandikan. + + + Please check the signature and try again. + Mohon periksa tanda tangan dan coba lagi. + + + The signature did not match the message digest. + Tanda tangan tidak cocok dengan intisari pesan. + + + Message verification failed. + Verifikasi pesan gagal. + + + Message verified. + Pesan diverifikasi. + + TrafficGraphWidget @@ -2408,6 +2756,14 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" TransactionDesc + + Open for %n more block(s) + Buka untuk %n lebih blok + + + Open until %1 + Buka sampai %1 + Date Tanggal @@ -2446,6 +2802,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Label Label + + Open until %1 + Buka sampai %1 + (no label) (tidak ada label) diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index a025973aa8..951b7afe23 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -1493,6 +1493,10 @@ Cannot process payment request because BIP70 support was not compiled in. BIP70のサポートが組み込まれていないため、支払いリクエストを処理することができません。 + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + BIP70 に内在する広く知られたセキュリティ上の欠陥がるため、ウォレットを切り替えるというマーチャントからの指示については無視することが強く推奨されます。 + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. このエラーが発生する場合は、販売者にBIP21互換URIの提供を依頼するべきです。 diff --git a/src/qt/locale/bitcoin_ta.ts b/src/qt/locale/bitcoin_ta.ts index 2eceb0842a..c637383bf6 100644 --- a/src/qt/locale/bitcoin_ta.ts +++ b/src/qt/locale/bitcoin_ta.ts @@ -19,7 +19,7 @@ &Copy - &நகல் + &காபி C&lose @@ -35,7 +35,7 @@ Export the data in the current tab to a file - தற்போதைய தாவலில் தரவை ஒரு கோப்பிற்கு ஏற்றுமதி செய்க + தற்போதைய டாபில் உள்ள தகவலை ஒரு பைலிற்கு ஏக்ஸ்போர்ட் செய்க &Export @@ -51,7 +51,7 @@ Choose the address to receive coins with - நாணயங்களைப் பெற முகவரியைத் தேர்வுசெய்யவும் + பிட்காயின்களை பெற முகவரியைத் தேர்வுசெய்யவும் C&hoose @@ -67,7 +67,7 @@ These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - இவை பணம் அனுப்புவதற்கு உங்கள் பிட்கின் முகவரிகள். நாணயங்களை அனுப்புவதற்கு முன் எப்பொழுதும் தொகையும் பெறுதலையும் சரிபார்க்கவும். + இவை பணம் அனுப்புவதற்கு உங்களின் பிட்காயின் முகவரிகள். பிட்காயின்களை அனுப்புவதற்கு முன் எப்பொழுதும் தொகையும் பெறுதலையும் சரிபார்க்கவும். These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. @@ -75,19 +75,19 @@ &Copy Address - & நகல் முகவரி + &காபி முகவரி Copy &Label - & லேபிள் நகலெடு + காபி &லேபிள் &Edit - &தொகு + &எடிட் Export Address List - முகவரி பட்டியல் ஏற்றுமதி + முகவரி பட்டியல் ஏக்ஸ்போர்ட் செய்க  Comma separated file (*.csv) @@ -95,11 +95,11 @@ Exporting Failed - ஏற்றுமதி தோல்வியடைந்தது + ஏக்ஸ்போர்ட் தோல்வியடைந்தது There was an error trying to save the address list to %1. Please try again. - முகவரி பட்டியலை %1 க்கு சேமிக்க முயற்சிக்கும் ஒரு பிழை ஏற்பட்டது. தயவுசெய்து மீண்டும் முயற்சி செய்க. + முகவரி பட்டியலை %1 க்கு சேமிக்க முயற்சிக்கும் ஒரு பிழை ஏற்பட்டது. தயவுசெய்து மீண்டும் முயற்சிக்கவும். @@ -141,7 +141,7 @@ Encrypt wallet - குறியாக்க பணப்பையை + வாலட்டை குறியாக்கு This operation needs your wallet passphrase to unlock the wallet. @@ -449,6 +449,10 @@ &Command-line options & கட்டளை வரி விருப்பங்கள் + + %n active connection(s) to Bitcoin network + பிட்காயின் வலையமைப்புடன் %n செயலில் உள்ள இணைப்புகள்பிட்காயின் வலையமைப்புடன் %n செயலில் உள்ள இணைப்புகள் + Indexing blocks on disk... வட்டில் தொகுதிகளை குறியாக்குகிறது ... @@ -1002,6 +1006,14 @@ Error பிழை + + %n GB of free space available + %n ஜிபி அளவு காலியாக உள்ளது%n ஜிபி அளவு காலியாக உள்ளது + + + (of %n GB needed) + (%n ஜிபி தேவை)(%n ஜிபி தேவை) + ModalOverlay @@ -2446,7 +2458,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Estimated to begin confirmation within %n block(s). - %n பிளாக்குள் உறுதிப்படுத்தலைத் தொடங்க மதிப்பிடப்பட்டுள்ளது.%n பிளாக்குள் உறுதிப்படுத்தலைத் தொடங்க மதிப்பிடப்பட்டுள்ளது. + %n பிளாக் உறுதிப்படுத்தலைத் தொடங்க மதிப்பிடப்பட்டுள்ளது.%n பிளாக்குள் உறுதிப்படுத்தலைத் தொடங்க மதிப்பிடப்பட்டுள்ளது. Warning: Invalid Bitcoin address @@ -3155,9 +3167,13 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Are you sure you wish to close the wallet <i>%1</i>? - நீங்கள் வாலட்டை மூட விரும்புகிறீர்களா? <i>%1</i>? + நீங்கள் வாலட்டை மூட விரும்புகிறீர்களா <i>%1</i>? - + + Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled. + வாலட்டை அதிக நேரம் மூடுவதாலும் ப்ரூனிங் இயக்கப்பட்டாலோ முழு செயினை ரீசிங்க் செய்வதற்கு இது வழிவகுக்கும். + + WalletFrame @@ -3257,6 +3273,18 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Distributed under the MIT software license, see the accompanying file %s or %s எம்ஐடி சாப்ட்வேர் விதிமுறைகளின் கீழ் பகிர்ந்தளிக்கப்படுகிறது, அதனுடன் கொடுக்கப்பட்டுள்ள %s அல்லது %s பைல் ஐ பார்க்கவும் + + Prune configured below the minimum of %d MiB. Please use a higher number. + ப்ரூனிங் குறைந்தபட்சம் %d MiB க்கு கீழே கட்டமைக்கப்பட்டுள்ளது. அதிக எண்ணிக்கையைப் பயன்படுத்தவும். + + + Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) + ப்ரூன்: கடைசி வாலட் ஒத்திசைவு ப்ரூன் தரவுக்கு அப்பாற்பட்டது. நீங்கள் -reindex செய்ய வேண்டும் (ப்ரூன் நோட் உபயோகித்தால் முழு பிளாக்செயினையும் மீண்டும் டவுன்லோட் செய்யவும்) + + + Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. + ப்ரூனிங் பயன்முறையில் ரீஸ்கேன்கள் சாத்தியமில்லை. நீங்கள் -reindex ஐப் பயன்படுத்த வேண்டும், இது முழு பிளாக்செயினையும் மீண்டும் டவுன்லோட் செய்யும். + Error: A fatal internal error occurred, see debug.log for details பிழை: ஆபத்தான உள் பிழை ஏற்பட்டது, விவரங்களுக்கு debug.log ஐ பார்க்கவும் @@ -3273,10 +3301,22 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p The %s developers %s டெவலப்பர்கள் + + Can't generate a change-address key. No keys in the internal keypool and can't generate any keys. + மாற்று-முகவரி கீயை உருவாக்க முடியாது. கீ தகவல்தளத்தில் கீகள் இல்லை மற்றும் எந்த கீயையும் உருவாக்க முடியாது. + + + Cannot obtain a lock on data directory %s. %s is probably already running. + தரவு கோப்பகத்தை %s லாக் செய்ய முடியாது. %s ஏற்கனவே இயங்குகிறது. + Please contribute if you find %s useful. Visit %s for further information about the software. %s பயனுள்ளதாக இருந்தால் தயவுசெய்து பங்களியுங்கள். இந்த சாஃட்வேர் பற்றிய கூடுதல் தகவலுக்கு %s ஐப் பார்வையிடவும். + + This is a pre-release test build - use at your own risk - do not use for mining or merchant applications + இது ஒரு வெளியீட்டுக்கு முந்தைய சோதனை கட்டமைப்பாகும் - உங்கள் சொந்த ஆபத்தில் பயன்படுத்தவும் - மைனிங் அல்லது வணிக பயன்பாடுகளுக்கு பயன்படுத்த வேண்டாம் + %d of last 100 blocks have unexpected version கடைசி 100 தொகுதிகளில் %d எதிர்பாராத பதிப்பைக் கொண்டுள்ளன @@ -3365,17 +3405,33 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Invalid amount for -discardfee=<amount>: '%s' -discardfee கான தவறான தொகை=<amount>: '%s' + + Invalid amount for -fallbackfee=<amount>: '%s' + தவறான தொகை -fallbackfee=<amount>: '%s' + + + Specified blocks directory "%s" does not exist. + குறிப்பிடப்பட்ட பிளாக் டைரக்டரி "%s" இல்லை. + Unknown address type '%s' தெரியாத முகவரி வகை '%s' + + Unknown change type '%s' + தெரியாத மாற்று வகை '%s' + + + Upgrading txindex database + txindex தகவல்தளத்தை மேம்படுத்துதல் + Loading P2P addresses... பி2பி முகவரிகள் லோட் செய்யப்படுகிறது... Error: Disk space is too low! - பிழை: டிஸ்க் ஸ்பேஸ் மிகக் குறைவு! + பிழை: டிஸ்க் ஸ்பேஸ் மிகக் குறைவாக உள்ளது! Loading banlist... @@ -3385,10 +3441,22 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Not enough file descriptors available. போதுமான ஃபைல் டிஸ்கிரிப்டார் கிடைக்கவில்லை. + + Prune cannot be configured with a negative value. + ப்ரூனை எதிர்மறை மதிப்புகளுடன் கட்டமைக்க முடியாது. + + + Prune mode is incompatible with -txindex. + ப்ரூன் பயன்முறை -txindex உடன் பொருந்தாது. + Replaying blocks... பிளாக்குகள் மீண்டும் இயக்குகிறது... + + Rewinding blocks... + பிளாக்குகள் ரீவைன்ட் செய்யப்படுகிறது... + The source code is available from %s. சோர்ஸ் கோட் %s இலிருந்து கிடைக்கிறது. @@ -3401,6 +3469,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Unable to generate keys கீஸை உருவாக்க முடியவில்லை + + Upgrading UTXO database + UTXO தகவல்தளம் மேம்படுத்தப்படுகிறது + Verifying blocks... பிளாக்குகள் சரிபார்க்கப்படுகிறது... @@ -3417,6 +3489,50 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Error reading from database, shutting down. டேட்டாபேசிலிருந்து படிப்பதில் பிழை, ஷட் டவுன் செய்யப்படுகிறது. + + Error upgrading chainstate database + செயின்ஸ்டேட் தகவல்தளத்தை மேம்படுத்துவதில் பிழை + + + Error: Disk space is low for %s + பிழை: டிஸ்க் ஸ்பேஸ் %s க்கு குறைவாக உள்ளது + + + Invalid -onion address or hostname: '%s' + தவறான -onion முகவரி அல்லது ஹோஸ்ட்நேம்: '%s' + + + Invalid -proxy address or hostname: '%s' + தவறான -proxy முகவரி அல்லது ஹோஸ்ட்நேம்: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + -paytxfee க்கான தவறான தொகை=<amount>: '%s' (குறைந்தது %s ஆக இருக்க வேண்டும்) + + + Prune mode is incompatible with -blockfilterindex. + ப்ரூன் பயன்முறை -blockfilterindex உடன் பொருந்தாது. + + + Reducing -maxconnections from %d to %d, because of system limitations. + கணினி வரம்புகள் காரணமாக -maxconnections %d இலிருந்து %d ஆகக் குறைக்கப்படுகிறது. + + + Section [%s] is not recognized. + பிரிவு [%s] கண்டறியப்படவில்லை. + + + Signing transaction failed + கையொப்பமிடும் பரிவர்த்தனை தோல்வியடைந்தது + + + Specified -walletdir "%s" does not exist + குறிப்பிடப்பட்ட -walletdir "%s" இல்லை + + + Specified -walletdir "%s" is not a directory + குறிப்பிடப்பட்ட -walletdir "%s" ஒரு டைரக்டரி அல்ல + The transaction amount is too small to pay the fee கட்டணம் செலுத்த பரிவர்த்தனை தொகை மிகவும் குறைவு @@ -3457,6 +3573,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Loading wallet... வாலட் லோடிங் செய்யப்படுகிறது... + + Cannot downgrade wallet + வாலட்டை தரமிறக்க முடியாது + + + Rescanning... + ரீஸ்கேன்னிங்... + Done loading லோடிங் முடிந்தது From c3cb60222c99ef0510e74f098209b462c4931615 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 23 Jan 2020 14:44:42 +0100 Subject: [PATCH 062/388] build: Bump version to 0.19.1rc1 Release preparations. Tree-SHA512: e00729c146ca78d45efe9834373057119f98c5c90abab3658b01b7c7774d395ae95dafde5160617815c3f00d6bfba1ccb4ea643860af450889a5c6c8b9a6c8d8 --- build_msvc/bitcoin_config.h | 4 ++-- configure.ac | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build_msvc/bitcoin_config.h b/build_msvc/bitcoin_config.h index 43e8115030..2ec7cd41ef 100644 --- a/build_msvc/bitcoin_config.h +++ b/build_msvc/bitcoin_config.h @@ -5,7 +5,7 @@ /* #undef AC_APPLE_UNIVERSAL_BUILD */ /* Version Build */ -#define CLIENT_VERSION_BUILD 1 +#define CLIENT_VERSION_BUILD 0 /* Version is release */ #define CLIENT_VERSION_IS_RELEASE true @@ -17,7 +17,7 @@ #define CLIENT_VERSION_MINOR 19 /* Build revision */ -#define CLIENT_VERSION_REVISION 0 +#define CLIENT_VERSION_REVISION 1 /* Copyright holder(s) before %s replacement */ #define COPYRIGHT_HOLDERS "The %s developers" diff --git a/configure.ac b/configure.ac index 47a24cc3b7..18d00e8509 100644 --- a/configure.ac +++ b/configure.ac @@ -2,9 +2,9 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 19) -define(_CLIENT_VERSION_REVISION, 0) -define(_CLIENT_VERSION_BUILD, 1) -define(_CLIENT_VERSION_RC, 0) +define(_CLIENT_VERSION_REVISION, 1) +define(_CLIENT_VERSION_BUILD, 0) +define(_CLIENT_VERSION_RC, 1) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2019) define(_COPYRIGHT_HOLDERS,[The %s developers]) From 1b0afb71a2ad699c4d3cec9091dee717ea3c73a7 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 23 Jan 2020 15:00:25 +0100 Subject: [PATCH 063/388] doc: Manpage updates for 0.19.1rc1 This is effectively a no-op except for the dates and version numbers. Tree-SHA512: a2b298bfac6466e81f4951c382cdd350f43989b08dc466e72ea02588b2fc6d1b9a2839401e6c188361696aa25b0c851c142df88985b106d4c41b067366ced55e --- doc/man/bitcoin-cli.1 | 6 +++--- doc/man/bitcoin-qt.1 | 6 +++--- doc/man/bitcoin-tx.1 | 6 +++--- doc/man/bitcoin-wallet.1 | 6 +++--- doc/man/bitcoind.1 | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1 index 440c3604ff..ce5b55480e 100644 --- a/doc/man/bitcoin-cli.1 +++ b/doc/man/bitcoin-cli.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-CLI "1" "November 2019" "bitcoin-cli v0.19.0.1" "User Commands" +.TH BITCOIN-CLI "1" "January 2020" "bitcoin-cli v0.19.1.0" "User Commands" .SH NAME -bitcoin-cli \- manual page for bitcoin-cli v0.19.0.1 +bitcoin-cli \- manual page for bitcoin-cli v0.19.1.0 .SH SYNOPSIS .B bitcoin-cli [\fI\,options\/\fR] \fI\, \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR @@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v0.19.0.1 .B bitcoin-cli [\fI\,options\/\fR] \fI\,help Get help for a command\/\fR .SH DESCRIPTION -Bitcoin Core RPC client version v0.19.0.1 +Bitcoin Core RPC client version v0.19.1.0 .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1 index 7fce574a16..66c6d1992b 100644 --- a/doc/man/bitcoin-qt.1 +++ b/doc/man/bitcoin-qt.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-QT "1" "November 2019" "bitcoin-qt v0.19.0.1" "User Commands" +.TH BITCOIN-QT "1" "January 2020" "bitcoin-qt v0.19.1.0" "User Commands" .SH NAME -bitcoin-qt \- manual page for bitcoin-qt v0.19.0.1 +bitcoin-qt \- manual page for bitcoin-qt v0.19.1.0 .SH SYNOPSIS .B bitcoin-qt [\fI\,command-line options\/\fR] .SH DESCRIPTION -Bitcoin Core version v0.19.0.1 (64\-bit) +Bitcoin Core version v0.19.0.1\-1299a1a11f9bf125558e1e3e7d11826909ae66cb (64\-bit) .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1 index 28e65f0787..f1904f0332 100644 --- a/doc/man/bitcoin-tx.1 +++ b/doc/man/bitcoin-tx.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-TX "1" "November 2019" "bitcoin-tx v0.19.0.1" "User Commands" +.TH BITCOIN-TX "1" "January 2020" "bitcoin-tx v0.19.1.0" "User Commands" .SH NAME -bitcoin-tx \- manual page for bitcoin-tx v0.19.0.1 +bitcoin-tx \- manual page for bitcoin-tx v0.19.1.0 .SH SYNOPSIS .B bitcoin-tx [\fI\,options\/\fR] \fI\, \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR @@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v0.19.0.1 .B bitcoin-tx [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded bitcoin transaction\/\fR .SH DESCRIPTION -Bitcoin Core bitcoin\-tx utility version v0.19.0.1 +Bitcoin Core bitcoin\-tx utility version v0.19.1.0 .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1 index af95496a1d..e062fb2d64 100644 --- a/doc/man/bitcoin-wallet.1 +++ b/doc/man/bitcoin-wallet.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-WALLET "1" "November 2019" "bitcoin-wallet v0.19.0.1" "User Commands" +.TH BITCOIN-WALLET "1" "January 2020" "bitcoin-wallet v0.19.1.0" "User Commands" .SH NAME -bitcoin-wallet \- manual page for bitcoin-wallet v0.19.0.1 +bitcoin-wallet \- manual page for bitcoin-wallet v0.19.1.0 .SH DESCRIPTION -Bitcoin Core bitcoin\-wallet version v0.19.0.1 +Bitcoin Core bitcoin\-wallet version v0.19.1.0 .PP wallet\-tool is an offline tool for creating and interacting with Bitcoin Core wallet files. By default wallet\-tool will act on wallets in the default mainnet wallet directory in the datadir. diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1 index ba736aa3ea..d179ca12f3 100644 --- a/doc/man/bitcoind.1 +++ b/doc/man/bitcoind.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIND "1" "November 2019" "bitcoind v0.19.0.1" "User Commands" +.TH BITCOIND "1" "January 2020" "bitcoind v0.19.1.0" "User Commands" .SH NAME -bitcoind \- manual page for bitcoind v0.19.0.1 +bitcoind \- manual page for bitcoind v0.19.1.0 .SH SYNOPSIS .B bitcoind [\fI\,options\/\fR] \fI\,Start Bitcoin Core\/\fR .SH DESCRIPTION -Bitcoin Core version v0.19.0.1 +Bitcoin Core version v0.19.1.0 .SH OPTIONS .HP \-? From 755b0734bb50febcdf2ceeb5865793735eea36e8 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 27 Jan 2020 16:26:57 +0100 Subject: [PATCH 064/388] doc: Preliminary 0.19.1 release notes Tree-SHA512: c6a57b79318a428a57f4e984a6f3432c5ef8aaab2c8ae708566e856f574b1f93cd852e347b6995a01babd5c98a9f05ec3416a82457ecc2d9287995e1c5b100fc --- doc/release-notes.md | 75 ++++++++++++++++++++++++++++++++------------ 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index db5aa0d8a7..50a5ba901d 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,25 +1,11 @@ -*After branching off for a major version release of Bitcoin Core, use this -template to create the initial release notes draft.* - -*The release notes draft is a temporary file that can be added to by anyone. See -[/doc/developer-notes.md#release-notes](/doc/developer-notes.md#release-notes) -for the process.* - -*Create the draft, named* "*version* Release Notes Draft" -*(e.g. "0.20.0 Release Notes Draft"), as a collaborative wiki in:* - -https://github.com/bitcoin-core/bitcoin-devwiki/wiki/ - -*Before the final release, move the notes back to this git repository.* - -*version* Release Notes Draft +0.19.1 Release Notes =============================== -Bitcoin Core version *version* is now available from: +Bitcoin Core version 0.19.1 is now available from: - + -This release includes new features, various bug fixes and performance +This minor release includes various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: @@ -60,14 +46,63 @@ macOS "dark mode" is activated. In addition to previously supported CPU platforms, this release's pre-compiled distribution provides binaries for the RISC-V platform. -Notable changes -=============== +0.19.1 change log +================= + +### Wallet +- #17643 Fix origfee return for bumpfee with feerate arg (instagibbs) +- #16963 Fix `unique_ptr` usage in boost::signals2 (promag) +- #17258 Fix issue with conflicted mempool tx in listsinceblock (adamjonas) +- #17924 Bug: IsUsedDestination shouldn't use key id as script id for ScriptHash (instagibbs) +- #17621 IsUsedDestination should count any known single-key address (instagibbs) + +### RPC and other APIs +- #17687 cli: Fix fatal leveldb error when specifying -blockfilterindex=basic twice (brakmic) +- #17728 require second argument only for scantxoutset start action (achow101) +- #17445 zmq: Fix due to invalid argument and multiple notifiers (promag) +- #17524 psbt: handle unspendable psbts (achow101) + +### GUI +- #17427 Fix missing qRegisterMetaType for `size_t` (hebasto) +- #17695 disable File-\>CreateWallet during startup (fanquake) +- #17634 Fix comparison function signature (hebasto) + +### Tests and QA +- #17416 Appveyor improvement - text file for vcpkg package list (sipsorcery) +- #17488 fix "bitcoind already running" warnings on macOS (fanquake) +- #17980 add missing #include to fix compiler errors (kallewoof) + +### Platform support +- #17736 Update msvc build for Visual Studio 2019 v16.4 (sipsorcery) +- #17364 Updates to appveyor config for VS2019 and Qt5.9.8 + msvc project fixes (sipsorcery) +- #17887 bug-fix macos: give free bytes to `F_PREALLOCATE` (kallewoof) + +### Miscellaneous +- #17897 init: Stop indexes on shutdown after ChainStateFlushed callback (jimpo) +- #17450 util: Add missing headers to util/fees.cpp (hebasto) +- #17654 Unbreak build with Boost 1.72.0 (jbeich) +- #17857 scripts: Fix symbol-check & security-check argument passing (fanquake) +- #17762 Log to net category for exceptions in ProcessMessages (laanwj) Credits ======= Thanks to everyone who directly contributed to this release: +- Aaron Clauson +- Adam Jonas +- Andrew Chow +- fanquake +- Gregory Sanders +- Harris +- Hennadii Stepanov +- Jan Beich +- Jim Posen +- João Barbosa +- Karl-Johan Alm +- Luke Dashjr +- Russell Yanofsky +- Wladimir J. van der Laan As well as to everyone that helped with translations on [Transifex](https://www.transifex.com/bitcoin/bitcoin/). From 1cf77a2dc36c81b80a2f9af52ed99bd426061de8 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Tue, 15 Oct 2019 17:15:22 -0400 Subject: [PATCH 065/388] Don't calculate tx fees for PSBTs with invalid money values In decodepsbt if an invalid amount is seen, don't calculate the fee but still show the invalid value in the decode. In analyze psbt, if an invalid amount is seen, set the next step to be the creator as the creator needs to remake the transaction so that it is valid. Github-Pull: #17156 Rebased-From: f1ef7f0aa46338f4cd8de79696027a1bf868f359 --- src/node/psbt.cpp | 12 ++++++++++++ src/rpc/rawtransaction.cpp | 22 +++++++++++++++++++--- test/functional/rpc_psbt.py | 9 +++++++++ 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/src/node/psbt.cpp b/src/node/psbt.cpp index 9a30c3f083..69fb1a28a9 100644 --- a/src/node/psbt.cpp +++ b/src/node/psbt.cpp @@ -2,6 +2,7 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. +#include #include #include #include @@ -31,6 +32,10 @@ PSBTAnalysis AnalyzePSBT(PartiallySignedTransaction psbtx) // Check for a UTXO CTxOut utxo; if (psbtx.GetInputUTXO(utxo, i)) { + if (!MoneyRange(utxo.nValue) || !MoneyRange(in_amt + utxo.nValue)) { + result.SetInvalid(strprintf("PSBT is not valid. Input %u has invalid value", i)); + return result; + } in_amt += utxo.nValue; input_analysis.has_utxo = true; } else { @@ -85,9 +90,16 @@ PSBTAnalysis AnalyzePSBT(PartiallySignedTransaction psbtx) // Get the output amount CAmount out_amt = std::accumulate(psbtx.tx->vout.begin(), psbtx.tx->vout.end(), CAmount(0), [](CAmount a, const CTxOut& b) { + if (!MoneyRange(a) || !MoneyRange(b.nValue) || !MoneyRange(a + b.nValue)) { + return CAmount(-1); + } return a += b.nValue; } ); + if (!MoneyRange(out_amt)) { + result.SetInvalid(strprintf("PSBT is not valid. Output amount invalid")); + return result; + } // Get the fee CAmount fee = in_amt - out_amt; diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index 2fd6b9709f..3b202d6538 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -1074,7 +1074,12 @@ UniValue decodepsbt(const JSONRPCRequest& request) UniValue out(UniValue::VOBJ); out.pushKV("amount", ValueFromAmount(txout.nValue)); - total_in += txout.nValue; + if (MoneyRange(txout.nValue) && MoneyRange(total_in + txout.nValue)) { + total_in += txout.nValue; + } else { + // Hack to just not show fee later + have_all_utxos = false; + } UniValue o(UniValue::VOBJ); ScriptToUniv(txout.scriptPubKey, o, true); @@ -1084,7 +1089,13 @@ UniValue decodepsbt(const JSONRPCRequest& request) UniValue non_wit(UniValue::VOBJ); TxToUniv(*input.non_witness_utxo, uint256(), non_wit, false); in.pushKV("non_witness_utxo", non_wit); - total_in += input.non_witness_utxo->vout[psbtx.tx->vin[i].prevout.n].nValue; + CAmount utxo_val = input.non_witness_utxo->vout[psbtx.tx->vin[i].prevout.n].nValue; + if (MoneyRange(utxo_val) && MoneyRange(total_in + utxo_val)) { + total_in += utxo_val; + } else { + // Hack to just not show fee later + have_all_utxos = false; + } } else { have_all_utxos = false; } @@ -1200,7 +1211,12 @@ UniValue decodepsbt(const JSONRPCRequest& request) outputs.push_back(out); // Fee calculation - output_value += psbtx.tx->vout[i].nValue; + if (MoneyRange(psbtx.tx->vout[i].nValue) && MoneyRange(output_value + psbtx.tx->vout[i].nValue)) { + output_value += psbtx.tx->vout[i].nValue; + } else { + // Hack to just not show fee later + have_all_utxos = false; + } } result.pushKV("outputs", outputs); if (have_all_utxos) { diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py index 57333955b2..7c72c3e872 100755 --- a/test/functional/rpc_psbt.py +++ b/test/functional/rpc_psbt.py @@ -421,5 +421,14 @@ def test_psbt_input_keys(psbt_input, keys): assert_equal(analysis['next'], 'creator') assert_equal(analysis['error'], 'PSBT is not valid. Input 0 spends unspendable output') + self.log.info("PSBT with invalid values should have error message and Creator as next") + analysis = self.nodes[0].analyzepsbt('cHNidP8BAHECAAAAAfA00BFgAm6tp86RowwH6BMImQNL5zXUcTT97XoLGz0BAAAAAAD/////AgD5ApUAAAAAFgAUKNw0x8HRctAgmvoevm4u1SbN7XL87QKVAAAAABYAFPck4gF7iL4NL4wtfRAKgQbghiTUAAAAAAABAR8AgIFq49AHABYAFJUDtxf2PHo641HEOBOAIvFMNTr2AAAA') + assert_equal(analysis['next'], 'creator') + assert_equal(analysis['error'], 'PSBT is not valid. Input 0 has invalid value') + + analysis = self.nodes[0].analyzepsbt('cHNidP8BAHECAAAAAfA00BFgAm6tp86RowwH6BMImQNL5zXUcTT97XoLGz0BAAAAAAD/////AgCAgWrj0AcAFgAUKNw0x8HRctAgmvoevm4u1SbN7XL87QKVAAAAABYAFPck4gF7iL4NL4wtfRAKgQbghiTUAAAAAAABAR8A8gUqAQAAABYAFJUDtxf2PHo641HEOBOAIvFMNTr2AAAA') + assert_equal(analysis['next'], 'creator') + assert_equal(analysis['error'], 'PSBT is not valid. Output amount invalid') + if __name__ == '__main__': PSBTTest().main() From f11872cbf46128e22e33c3138755c4aa32e80de7 Mon Sep 17 00:00:00 2001 From: Fabian Jahr Date: Tue, 31 Dec 2019 19:55:18 +0100 Subject: [PATCH 066/388] wallet: Reset reused transactions cache If a destination is reused we mark the cache of the other transactions going to that destination dirty so they are not accidentally reported as trusted when the cache is hit. Github-Pull: #17843 Rebased-From: 6fc554f591d8ea1681b8bb25aa12da8d4f023f66 --- src/wallet/wallet.cpp | 27 ++++++++++++++++++++--- src/wallet/wallet.h | 8 ++++++- test/functional/wallet_avoidreuse.py | 33 +++++++++++++++++++++++++++- 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 4c3b633fe4..fdaafd5189 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1055,7 +1055,7 @@ bool CWallet::MarkReplaced(const uint256& originalHash, const uint256& newHash) return success; } -void CWallet::SetUsedDestinationState(const uint256& hash, unsigned int n, bool used) +void CWallet::SetUsedDestinationState(const uint256& hash, unsigned int n, bool used, std::set& tx_destinations) { const CWalletTx* srctx = GetWalletTx(hash); if (!srctx) return; @@ -1065,7 +1065,9 @@ void CWallet::SetUsedDestinationState(const uint256& hash, unsigned int n, bool if (::IsMine(*this, dst)) { LOCK(cs_wallet); if (used && !GetDestData(dst, "used", nullptr)) { - AddDestData(dst, "used", "p"); // p for "present", opposite of absent (null) + if (AddDestData(dst, "used", "p")) { // p for "present", opposite of absent (null) + tx_destinations.insert(dst); + } } else if (!used && GetDestData(dst, "used", nullptr)) { EraseDestData(dst, "used"); } @@ -1110,10 +1112,14 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFlushOnClose) if (IsWalletFlagSet(WALLET_FLAG_AVOID_REUSE)) { // Mark used destinations + std::set tx_destinations; + for (const CTxIn& txin : wtxIn.tx->vin) { const COutPoint& op = txin.prevout; - SetUsedDestinationState(op.hash, op.n, true); + SetUsedDestinationState(op.hash, op.n, true, tx_destinations); } + + MarkDestinationsDirty(tx_destinations); } // Inserts only if not already there, returns tx inserted or tx found @@ -3793,6 +3799,21 @@ int64_t CWallet::GetOldestKeyPoolTime() return oldestKey; } +void CWallet::MarkDestinationsDirty(const std::set& destinations) { + for (auto& entry : mapWallet) { + CWalletTx& wtx = entry.second; + + for (unsigned int i = 0; i < wtx.tx->vout.size(); i++) { + CTxDestination dst; + + if (ExtractDestination(wtx.tx->vout[i].scriptPubKey, dst) && destinations.count(dst)) { + wtx.MarkDirty(); + break; + } + } + } +} + std::map CWallet::GetAddressBalances(interfaces::Chain::Lock& locked_chain) { std::map balances; diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index ee4ac91588..f4f0156b41 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -1006,7 +1006,7 @@ class CWallet final : public FillableSigningProvider, private interfaces::Chain: // Whether this or any known UTXO with the same single key has been spent. bool IsUsedDestination(const uint256& hash, unsigned int n) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet); - void SetUsedDestinationState(const uint256& hash, unsigned int n, bool used); + void SetUsedDestinationState(const uint256& hash, unsigned int n, bool used, std::set& tx_destinations); std::vector GroupOutputs(const std::vector& outputs, bool single_coin) const; @@ -1216,6 +1216,12 @@ class CWallet final : public FillableSigningProvider, private interfaces::Chain: std::set GetLabelAddresses(const std::string& label) const; + /** + * Marks all outputs in each one of the destinations dirty, so their cache is + * reset and does not return outdated information. + */ + void MarkDestinationsDirty(const std::set& destinations) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet); + bool GetNewDestination(const OutputType type, const std::string label, CTxDestination& dest, std::string& error); bool GetNewChangeDestination(const OutputType type, CTxDestination& dest, std::string& error); diff --git a/test/functional/wallet_avoidreuse.py b/test/functional/wallet_avoidreuse.py index 55b30afdee..d261fe6343 100755 --- a/test/functional/wallet_avoidreuse.py +++ b/test/functional/wallet_avoidreuse.py @@ -88,7 +88,8 @@ def run_test(self): self.test_fund_send_fund_send("p2sh-segwit") reset_balance(self.nodes[1], self.nodes[0].getnewaddress()) self.test_fund_send_fund_send("bech32") - + reset_balance(self.nodes[1], self.nodes[0].getnewaddress()) + self.test_getbalances_used() def test_persistence(self): '''Test that wallet files persist the avoid_reuse flag.''' @@ -248,5 +249,35 @@ def test_fund_send_fund_send(self, second_addr_type): assert_approx(self.nodes[1].getbalance(), 1, 0.001) assert_approx(self.nodes[1].getbalance(avoid_reuse=False), 11, 0.001) + def test_getbalances_used(self): + ''' + getbalances and listunspent should pick up on reused addresses + immediately, even for address reusing outputs created before the first + transaction was spending from that address + ''' + self.log.info("Test getbalances used category") + + # node under test should be completely empty + assert_equal(self.nodes[1].getbalance(avoid_reuse=False), 0) + + new_addr = self.nodes[1].getnewaddress() + ret_addr = self.nodes[0].getnewaddress() + + # send multiple transactions, reusing one address + for _ in range(11): + self.nodes[0].sendtoaddress(new_addr, 1) + + self.nodes[0].generate(1) + self.sync_all() + + # send transaction that should not use all the available outputs + # per the current coin selection algorithm + self.nodes[1].sendtoaddress(ret_addr, 5) + + # getbalances and listunspent should show the remaining outputs + # in the reused address as used/reused + assert_unspent(self.nodes[1], total_count=2, total_sum=6, reused_count=1, reused_sum=1) + assert_balances(self.nodes[1], mine={"used": 1, "trusted": 5}) + if __name__ == '__main__': AvoidReuseTest().main() From b4e5363ccc6a9ceaf10ba2b7fa28932b355c708a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Barbosa?= Date: Mon, 3 Feb 2020 20:05:04 +0000 Subject: [PATCH 067/388] gui: Fix unintialized WalletView::progressDialog Github-Pull: #18062 Rebased-From: acf8abc7f3cf7efa418a46f9f69f23f1a5035582 --- src/qt/walletview.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qt/walletview.h b/src/qt/walletview.h index e29c4c52f5..fe7af753ad 100644 --- a/src/qt/walletview.h +++ b/src/qt/walletview.h @@ -68,7 +68,7 @@ class WalletView : public QStackedWidget TransactionView *transactionView; - QProgressDialog *progressDialog; + QProgressDialog* progressDialog{nullptr}; const PlatformStyle *platformStyle; public Q_SLOTS: From f5fb7fca969cd43318384bec46bb7687b1a529fd Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Tue, 15 Oct 2019 17:26:46 -0400 Subject: [PATCH 068/388] psbt: check output index is within bounds before accessing Github-Pull: #17156 Rebased-From: deaa6dd144f5650b385658a0c4f9a014aff8dde2 --- src/node/psbt.cpp | 4 ++++ src/psbt.cpp | 8 +++++++- src/wallet/psbtwallet.cpp | 7 +++++++ src/wallet/test/psbt_wallet_tests.cpp | 8 ++++++++ test/functional/rpc_psbt.py | 6 ++++++ 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/node/psbt.cpp b/src/node/psbt.cpp index 69fb1a28a9..ff7a38e40d 100644 --- a/src/node/psbt.cpp +++ b/src/node/psbt.cpp @@ -39,6 +39,10 @@ PSBTAnalysis AnalyzePSBT(PartiallySignedTransaction psbtx) in_amt += utxo.nValue; input_analysis.has_utxo = true; } else { + if (input.non_witness_utxo && psbtx.tx->vin[i].prevout.n >= input.non_witness_utxo->vout.size()) { + result.SetInvalid(strprintf("PSBT is not valid. Input %u specifies invalid prevout", i)); + return result; + } input_analysis.has_utxo = false; input_analysis.is_final = false; input_analysis.next = PSBTRole::UPDATER; diff --git a/src/psbt.cpp b/src/psbt.cpp index 20473429a4..76783e968e 100644 --- a/src/psbt.cpp +++ b/src/psbt.cpp @@ -67,8 +67,11 @@ bool PartiallySignedTransaction::AddOutput(const CTxOut& txout, const PSBTOutput bool PartiallySignedTransaction::GetInputUTXO(CTxOut& utxo, int input_index) const { PSBTInput input = inputs[input_index]; - int prevout_index = tx->vin[input_index].prevout.n; + uint32_t prevout_index = tx->vin[input_index].prevout.n; if (input.non_witness_utxo) { + if (prevout_index >= input.non_witness_utxo->vout.size()) { + return false; + } utxo = input.non_witness_utxo->vout[prevout_index]; } else if (!input.witness_utxo.IsNull()) { utxo = input.witness_utxo; @@ -256,6 +259,9 @@ bool SignPSBTInput(const SigningProvider& provider, PartiallySignedTransaction& if (input.non_witness_utxo) { // If we're taking our information from a non-witness UTXO, verify that it matches the prevout. COutPoint prevout = tx.vin[index].prevout; + if (prevout.n >= input.non_witness_utxo->vout.size()) { + return false; + } if (input.non_witness_utxo->GetHash() != prevout.hash) { return false; } diff --git a/src/wallet/psbtwallet.cpp b/src/wallet/psbtwallet.cpp index 721a244afb..88740ef4a4 100644 --- a/src/wallet/psbtwallet.cpp +++ b/src/wallet/psbtwallet.cpp @@ -39,6 +39,13 @@ TransactionError FillPSBT(const CWallet* pwallet, PartiallySignedTransaction& ps return TransactionError::SIGHASH_MISMATCH; } + // Backport of #17156 fix, without #17371 refactor + if (input.witness_utxo.IsNull() && input.non_witness_utxo) { + if (txin.prevout.n >= input.non_witness_utxo->vout.size()) { + return TransactionError::MISSING_INPUTS; + } + } + complete &= SignPSBTInput(HidingSigningProvider(pwallet, !sign, !bip32derivs), psbtx, i, sighash_type); } diff --git a/src/wallet/test/psbt_wallet_tests.cpp b/src/wallet/test/psbt_wallet_tests.cpp index 0400f1207c..7a489d4ff2 100644 --- a/src/wallet/test/psbt_wallet_tests.cpp +++ b/src/wallet/test/psbt_wallet_tests.cpp @@ -67,6 +67,14 @@ BOOST_AUTO_TEST_CASE(psbt_updater_test) ssTx << psbtx; std::string final_hex = HexStr(ssTx.begin(), ssTx.end()); BOOST_CHECK_EQUAL(final_hex, "70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f6187650000000104475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae2206029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f10d90c6a4f000000800000008000000080220602dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d710d90c6a4f0000008000000080010000800001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e88701042200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903010547522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae2206023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7310d90c6a4f000000800000008003000080220603089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc10d90c6a4f00000080000000800200008000220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000"); + + // Mutate the transaction so that one of the inputs is invalid + psbtx.tx->vin[0].prevout.n = 2; + + // Try to sign the mutated input + SignatureData sigdata; + psbtx.inputs[0].FillSignatureData(sigdata); + BOOST_CHECK(!SignPSBTInput(m_wallet, psbtx, 0, SIGHASH_ALL)); } BOOST_AUTO_TEST_CASE(parse_hd_keypath) diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py index 7c72c3e872..2f214702bc 100755 --- a/test/functional/rpc_psbt.py +++ b/test/functional/rpc_psbt.py @@ -430,5 +430,11 @@ def test_psbt_input_keys(psbt_input, keys): assert_equal(analysis['next'], 'creator') assert_equal(analysis['error'], 'PSBT is not valid. Output amount invalid') + analysis = self.nodes[0].analyzepsbt('cHNidP8BAJoCAAAAAkvEW8NnDtdNtDpsmze+Ht2LH35IJcKv00jKAlUs21RrAwAAAAD/////S8Rbw2cO1020OmybN74e3Ysffkglwq/TSMoCVSzbVGsBAAAAAP7///8CwLYClQAAAAAWABSNJKzjaUb3uOxixsvh1GGE3fW7zQD5ApUAAAAAFgAUKNw0x8HRctAgmvoevm4u1SbN7XIAAAAAAAEAnQIAAAACczMa321tVHuN4GKWKRncycI22aX3uXgwSFUKM2orjRsBAAAAAP7///9zMxrfbW1Ue43gYpYpGdzJwjbZpfe5eDBIVQozaiuNGwAAAAAA/v///wIA+QKVAAAAABl2qRT9zXUVA8Ls5iVqynLHe5/vSe1XyYisQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAAAAAQEfQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAA==') + assert_equal(analysis['next'], 'creator') + assert_equal(analysis['error'], 'PSBT is not valid. Input 0 specifies invalid prevout') + + assert_raises_rpc_error(-25, 'Missing inputs', self.nodes[0].walletprocesspsbt, 'cHNidP8BAJoCAAAAAkvEW8NnDtdNtDpsmze+Ht2LH35IJcKv00jKAlUs21RrAwAAAAD/////S8Rbw2cO1020OmybN74e3Ysffkglwq/TSMoCVSzbVGsBAAAAAP7///8CwLYClQAAAAAWABSNJKzjaUb3uOxixsvh1GGE3fW7zQD5ApUAAAAAFgAUKNw0x8HRctAgmvoevm4u1SbN7XIAAAAAAAEAnQIAAAACczMa321tVHuN4GKWKRncycI22aX3uXgwSFUKM2orjRsBAAAAAP7///9zMxrfbW1Ue43gYpYpGdzJwjbZpfe5eDBIVQozaiuNGwAAAAAA/v///wIA+QKVAAAAABl2qRT9zXUVA8Ls5iVqynLHe5/vSe1XyYisQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAAAAAQEfQM0ClQAAAAAWABRmWQUcjSjghQ8/uH4Bn/zkakwLtAAAAA==') + if __name__ == '__main__': PSBTTest().main() From 5e1728017bc2005c70784d235f5d4ba8017d7efd Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Sun, 9 Feb 2020 07:49:51 -0800 Subject: [PATCH 069/388] Squashed 'src/univalue/' changes from 7890db99d6..98261b1e7b 98261b1e7b Merge #22: Clamp JSON object depth to PHP limit 54c4015415 Clamp JSON object depth to PHP limit 5a58a46671 Merge #21: Remove hand-coded UniValue destructor. b4cdfc4f47 Remove hand-coded UniValue destructor. 7fba60b5ad Merge #17: [docs] Update readme 4577454e7e Merge #13: Fix typo ac7e73cda8 [docs] Update readme 4a4964729b Fix typo git-subtree-dir: src/univalue git-subtree-split: 98261b1e7be4ce9820e25c8ce37d40cdef19ab20 --- Makefile.am | 2 ++ README.md | 21 +++++---------------- include/univalue.h | 1 - lib/univalue_get.cpp | 2 +- lib/univalue_read.cpp | 11 +++++++++++ test/fail45.json | 1 + test/pass4.json | 1 + test/unitester.cpp | 2 ++ 8 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 test/fail45.json create mode 100644 test/pass4.json diff --git a/Makefile.am b/Makefile.am index e283fc890e..0f5ba59954 100644 --- a/Makefile.am +++ b/Makefile.am @@ -95,6 +95,7 @@ TEST_FILES = \ $(TEST_DATA_DIR)/fail41.json \ $(TEST_DATA_DIR)/fail42.json \ $(TEST_DATA_DIR)/fail44.json \ + $(TEST_DATA_DIR)/fail45.json \ $(TEST_DATA_DIR)/fail3.json \ $(TEST_DATA_DIR)/fail4.json \ $(TEST_DATA_DIR)/fail5.json \ @@ -105,6 +106,7 @@ TEST_FILES = \ $(TEST_DATA_DIR)/pass1.json \ $(TEST_DATA_DIR)/pass2.json \ $(TEST_DATA_DIR)/pass3.json \ + $(TEST_DATA_DIR)/pass4.json \ $(TEST_DATA_DIR)/round1.json \ $(TEST_DATA_DIR)/round2.json \ $(TEST_DATA_DIR)/round3.json \ diff --git a/README.md b/README.md index 36aa786a4c..7c62c33970 100644 --- a/README.md +++ b/README.md @@ -12,21 +12,10 @@ an arbitrary depth. This class is aligned with the JSON standard, [RFC 7159](https://tools.ietf.org/html/rfc7159.html). -## Installation +## Library usage -This project is a standard GNU -[autotools](https://www.gnu.org/software/automake/manual/html_node/Autotools-Introduction.html) -project. Build and install instructions are available in the `INSTALL` -file provided with GNU autotools. - -``` -$ ./autogen.sh -$ ./configure -$ make -``` - -## Design - -UniValue provides a single dynamic RAII C++ object class, -and minimizes template use (contra json_spirit). +This is a fork of univalue used by Bitcoin Core. It is not maintained for usage +by other projects. Notably, the API may break in non-backward-compatible ways. +Other projects looking for a maintained library should use the upstream +univalue at https://github.com/jgarzik/univalue. diff --git a/include/univalue.h b/include/univalue.h index 91b104e56e..6080516353 100644 --- a/include/univalue.h +++ b/include/univalue.h @@ -47,7 +47,6 @@ class UniValue { std::string s(val_); setStr(s); } - ~UniValue() {} void clear(); diff --git a/lib/univalue_get.cpp b/lib/univalue_get.cpp index eabcf2dad1..0ad6146545 100644 --- a/lib/univalue_get.cpp +++ b/lib/univalue_get.cpp @@ -35,7 +35,7 @@ bool ParseInt32(const std::string& str, int32_t *out) errno = 0; // strtol will not set errno if valid long int n = strtol(str.c_str(), &endp, 10); if(out) *out = (int32_t)n; - // Note that strtol returns a *long int*, so even if strtol doesn't report a over/underflow + // Note that strtol returns a *long int*, so even if strtol doesn't report an over/underflow // we still have to check that the returned value is within the range of an *int32_t*. On 64-bit // platforms the size of these types may be different. return endp && *endp == 0 && !errno && diff --git a/lib/univalue_read.cpp b/lib/univalue_read.cpp index 14834db24d..5c6a1acf75 100644 --- a/lib/univalue_read.cpp +++ b/lib/univalue_read.cpp @@ -8,6 +8,14 @@ #include "univalue.h" #include "univalue_utffilter.h" +/* + * According to stackexchange, the original json test suite wanted + * to limit depth to 22. Widely-deployed PHP bails at depth 512, + * so we will follow PHP's lead, which should be more than sufficient + * (further stackexchange comments indicate depth > 32 rarely occurs). + */ +static const size_t MAX_JSON_DEPTH = 512; + static bool json_isdigit(int ch) { return ((ch >= '0') && (ch <= '9')); @@ -323,6 +331,9 @@ bool UniValue::read(const char *raw, size_t size) stack.push_back(newTop); } + if (stack.size() > MAX_JSON_DEPTH) + return false; + if (utyp == VOBJ) setExpect(OBJ_NAME); else diff --git a/test/fail45.json b/test/fail45.json new file mode 100644 index 0000000000..03a30d8800 --- /dev/null +++ b/test/fail45.json @@ -0,0 +1 @@ +[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] diff --git a/test/pass4.json b/test/pass4.json new file mode 100644 index 0000000000..f5a680b31c --- /dev/null +++ b/test/pass4.json @@ -0,0 +1 @@ +[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] diff --git a/test/unitester.cpp b/test/unitester.cpp index 75c0dc225a..2308afbcdf 100644 --- a/test/unitester.cpp +++ b/test/unitester.cpp @@ -114,6 +114,7 @@ static const char *filenames[] = { "fail41.json", // invalid unicode: unfinished UTF-8 "fail42.json", // valid json with garbage following a nul byte "fail44.json", // unterminated string + "fail45.json", // nested beyond max depth "fail3.json", "fail4.json", // extra comma "fail5.json", @@ -124,6 +125,7 @@ static const char *filenames[] = { "pass1.json", "pass2.json", "pass3.json", + "pass4.json", "round1.json", // round-trip test "round2.json", // unicode "round3.json", // bare string From 9bd082e6571761c5971d5c8bcc7b51650fa61c7a Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 10 Feb 2020 15:20:53 +0100 Subject: [PATCH 070/388] doc: Update release notes for rc2 Tree-SHA512: 320576b94b58246ea7f2426e1dbe43cd0222c0ea58cf9a03e75225fcc226384478f39d7f54099d2cecbcf134a639932e7f2033eb3dd38786bb666dbb81aae2d7 --- doc/release-notes.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 50a5ba901d..fc37df3873 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -55,17 +55,20 @@ distribution provides binaries for the RISC-V platform. - #17258 Fix issue with conflicted mempool tx in listsinceblock (adamjonas) - #17924 Bug: IsUsedDestination shouldn't use key id as script id for ScriptHash (instagibbs) - #17621 IsUsedDestination should count any known single-key address (instagibbs) +- #17843 Reset reused transactions cache (fjahr) ### RPC and other APIs - #17687 cli: Fix fatal leveldb error when specifying -blockfilterindex=basic twice (brakmic) - #17728 require second argument only for scantxoutset start action (achow101) - #17445 zmq: Fix due to invalid argument and multiple notifiers (promag) - #17524 psbt: handle unspendable psbts (achow101) +- #17156 psbt: check that various indexes and amounts are within bounds (achow101) ### GUI - #17427 Fix missing qRegisterMetaType for `size_t` (hebasto) - #17695 disable File-\>CreateWallet during startup (fanquake) - #17634 Fix comparison function signature (hebasto) +- #18062 Fix unintialized WalletView::progressDialog (promag) ### Tests and QA - #17416 Appveyor improvement - text file for vcpkg package list (sipsorcery) @@ -83,6 +86,7 @@ distribution provides binaries for the RISC-V platform. - #17654 Unbreak build with Boost 1.72.0 (jbeich) - #17857 scripts: Fix symbol-check & security-check argument passing (fanquake) - #17762 Log to net category for exceptions in ProcessMessages (laanwj) +- #18100 Update univalue subtree (MarcoFalke) Credits ======= @@ -92,6 +96,7 @@ Thanks to everyone who directly contributed to this release: - Aaron Clauson - Adam Jonas - Andrew Chow +- Fabian Jahr - fanquake - Gregory Sanders - Harris @@ -101,6 +106,7 @@ Thanks to everyone who directly contributed to this release: - João Barbosa - Karl-Johan Alm - Luke Dashjr +- MarcoFalke - Russell Yanofsky - Wladimir J. van der Laan From e5322d6dad5958a96cc174e36f176df773e01f43 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 10 Feb 2020 15:25:28 +0100 Subject: [PATCH 071/388] qt: Pre-rc2 translations update Tree-SHA512: 18182903fed7034dc16c2d74ebccf992dd5343376d0f02bebaa50be4ff8fd76c9dd59a95524aef326b74b75a921c819063f06ef45fb9980ae87aacbfb7190554 --- src/qt/locale/bitcoin_hi.ts | 8 ++ src/qt/locale/bitcoin_id.ts | 226 +++++++++++++++++++++++++++++++++++- src/qt/locale/bitcoin_ta.ts | 4 + 3 files changed, 235 insertions(+), 3 deletions(-) diff --git a/src/qt/locale/bitcoin_hi.ts b/src/qt/locale/bitcoin_hi.ts index 611618faba..50c07a794d 100644 --- a/src/qt/locale/bitcoin_hi.ts +++ b/src/qt/locale/bitcoin_hi.ts @@ -155,6 +155,14 @@ Confirm wallet encryption वॉलेट एन्क्रिप्शन की पुष्टि करें + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! + चेतावनी: यदि आपने वॉलेट को एन्क्रिप्ट करने के बाद पदबंध खो दी तो <b>आप सारे बिटकॉइन खो देंगे </b>! + + + Are you sure you wish to encrypt your wallet? + क्या आप सुनिश्चित हैं कि आप अपने वॉलेट को एन्क्रिप्ट करना चाहते हैं ? + Wallet encrypted वॉलेट को एन्क्रिप्ट किया गया है diff --git a/src/qt/locale/bitcoin_id.ts b/src/qt/locale/bitcoin_id.ts index 563962e547..2937c844e9 100644 --- a/src/qt/locale/bitcoin_id.ts +++ b/src/qt/locale/bitcoin_id.ts @@ -2764,14 +2764,58 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Open until %1 Buka sampai %1 + + 0/unconfirmed, %1 + 0/belum dikonfirmasi, %1 + + + %1/unconfirmed + %1/belum dikonfirmasi + + + %1 confirmations + %1 konfirmasi + + + Status + Status + Date Tanggal + + Source + Sumber + unknown tidak diketahui + + label + label + + + Credit + Kredit + + + not accepted + tidak diterima + + + Debit + Debit + + + Total debit + Total debit + + + Total credit + Total kredit + Transaction fee Biaya Transaksi @@ -2780,24 +2824,56 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Message Pesan + + Comment + Komentar + + + Transaction ID + ID Transaksi + + + Debug information + Informasi debug + + + Transaction + Transaksi + Amount Jumlah - + + true + benar + + + false + salah + + TransactionDescDialog This pane shows a detailed description of the transaction Jendela ini menampilkan deskripsi rinci dari transaksi tersebut - + + Details for %1 + Detail untuk %1 + + TransactionTableModel Date Tanggal + + Type + Tipe + Label Label @@ -2806,13 +2882,89 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Open until %1 Buka sampai %1 + + Unconfirmed + Belum dikonfirmasi + + + Received with + Diterima dengan + + + Received from + Diterima dari + + + Sent to + Dikirim ke + (no label) (tidak ada label) + + Date and time that the transaction was received. + Tanggal dan waktu transaksi telah diterima. + + + Type of transaction. + Tipe transaksi. + TransactionView + + All + Semua + + + Today + Hari ini + + + This week + Minggu ini + + + This month + Bulan ini + + + Last month + Bulan lalu + + + This year + Tahun ini + + + Received with + Diterima dengan + + + Sent to + Dikirim ke + + + Other + Lainnya + + + Enter address, transaction id, or label to search + Ketik alamat, id transaksi, atau label untuk menelusuri + + + Min amount + Jumlah min + + + Abandon transaction + Batalkan transaksi + + + Increase transaction fee + Tingkatkan biaya transaksi + Copy address Salin alamat @@ -2829,6 +2981,22 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Copy transaction ID Salain ID Transaksi + + Copy full transaction details + Salin detail transaksi + + + Edit label + Ubah label + + + Show transaction details + Lihat detail transaksi + + + Export Transaction History + Ekspor Riwayat Transaksi + Comma separated file (*.csv) Berkas yang berformat(*.csv) @@ -2841,6 +3009,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Date Tanggal + + Type + Tipe + Label Label @@ -2849,10 +3021,18 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Address Alamat + + ID + ID + Exporting Failed Mengekspor Gagal + + Exporting Successful + Ekspor Berhasil + UnitDisplayStatusBarControl @@ -2873,6 +3053,26 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Send Coins Kirim Koin + + Increasing transaction fee failed + Gagal meningkatkan biaya transaksi + + + Do you want to increase the fee? + Apa Anda ingin meningkatkan biayanya? + + + Current fee: + Biaya saat ini: + + + Increase: + Tingkatkan: + + + New fee: + Biaya baru: + default wallet wallet default @@ -2888,7 +3088,19 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Export the data in the current tab to a file Ekspor data dalam tab sekarang ke sebuah berkas - + + Backup Failed + Pencadangan Gagal + + + Backup Successful + Pencadangan Berhasil + + + Cancel + Batal + + bitcoin-core @@ -2923,6 +3135,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Incorrect or no genesis block found. Wrong datadir for network? Tidak bisa cari blok pertama, atau blok pertama salah. Salah direktori untuk jaringan? + + Error: Disk space is too low! + Eror: Kapasitas penyimpanan penuh! + Not enough file descriptors available. Deskripsi berkas tidak tersedia dengan cukup. @@ -2931,6 +3147,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Verifying blocks... Blok-blok sedang diverifikasi... + + Error: Disk space is low for %s + Eror: Kapasitas penyimpanan penuh untuk %s + Signing transaction failed Tandatangani transaksi tergagal diff --git a/src/qt/locale/bitcoin_ta.ts b/src/qt/locale/bitcoin_ta.ts index c637383bf6..de3e3dc962 100644 --- a/src/qt/locale/bitcoin_ta.ts +++ b/src/qt/locale/bitcoin_ta.ts @@ -3317,6 +3317,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p This is a pre-release test build - use at your own risk - do not use for mining or merchant applications இது ஒரு வெளியீட்டுக்கு முந்தைய சோதனை கட்டமைப்பாகும் - உங்கள் சொந்த ஆபத்தில் பயன்படுத்தவும் - மைனிங் அல்லது வணிக பயன்பாடுகளுக்கு பயன்படுத்த வேண்டாம் + + This is the transaction fee you may discard if change is smaller than dust at this level + இது பரிவர்த்தனைக் கட்டணம் ஆகும் அதன் வேறுபாடு தூசியை விட சிறியதாக இருந்தால் நீங்கள் அதை நிராகரிக்கலாம். + %d of last 100 blocks have unexpected version கடைசி 100 தொகுதிகளில் %d எதிர்பாராத பதிப்பைக் கொண்டுள்ளன From c3caf2d84c68b4b99ffb4df9b64e3d06eb577963 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 10 Feb 2020 15:25:50 +0100 Subject: [PATCH 072/388] doc: UNIX manual pages update for rc2 Tree-SHA512: 23fc6e3712608a2d4ccec5ee2d0efdb3f8df8093f555890611039881a78147eee3a5226aade13d750e88be8f6814699424606b32cf7947faa6c034f1ff2dd81a --- doc/man/bitcoin-cli.1 | 2 +- doc/man/bitcoin-qt.1 | 4 ++-- doc/man/bitcoin-tx.1 | 2 +- doc/man/bitcoin-wallet.1 | 2 +- doc/man/bitcoind.1 | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1 index ce5b55480e..87a2c52e21 100644 --- a/doc/man/bitcoin-cli.1 +++ b/doc/man/bitcoin-cli.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-CLI "1" "January 2020" "bitcoin-cli v0.19.1.0" "User Commands" +.TH BITCOIN-CLI "1" "February 2020" "bitcoin-cli v0.19.1.0" "User Commands" .SH NAME bitcoin-cli \- manual page for bitcoin-cli v0.19.1.0 .SH SYNOPSIS diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1 index 66c6d1992b..7e6916c492 100644 --- a/doc/man/bitcoin-qt.1 +++ b/doc/man/bitcoin-qt.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-QT "1" "January 2020" "bitcoin-qt v0.19.1.0" "User Commands" +.TH BITCOIN-QT "1" "February 2020" "bitcoin-qt v0.19.1.0" "User Commands" .SH NAME bitcoin-qt \- manual page for bitcoin-qt v0.19.1.0 .SH SYNOPSIS .B bitcoin-qt [\fI\,command-line options\/\fR] .SH DESCRIPTION -Bitcoin Core version v0.19.0.1\-1299a1a11f9bf125558e1e3e7d11826909ae66cb (64\-bit) +Bitcoin Core version v0.19.1.0 (64\-bit) .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1 index f1904f0332..3e93d22f5d 100644 --- a/doc/man/bitcoin-tx.1 +++ b/doc/man/bitcoin-tx.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-TX "1" "January 2020" "bitcoin-tx v0.19.1.0" "User Commands" +.TH BITCOIN-TX "1" "February 2020" "bitcoin-tx v0.19.1.0" "User Commands" .SH NAME bitcoin-tx \- manual page for bitcoin-tx v0.19.1.0 .SH SYNOPSIS diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1 index e062fb2d64..4ec996a52c 100644 --- a/doc/man/bitcoin-wallet.1 +++ b/doc/man/bitcoin-wallet.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-WALLET "1" "January 2020" "bitcoin-wallet v0.19.1.0" "User Commands" +.TH BITCOIN-WALLET "1" "February 2020" "bitcoin-wallet v0.19.1.0" "User Commands" .SH NAME bitcoin-wallet \- manual page for bitcoin-wallet v0.19.1.0 .SH DESCRIPTION diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1 index d179ca12f3..002a501877 100644 --- a/doc/man/bitcoind.1 +++ b/doc/man/bitcoind.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIND "1" "January 2020" "bitcoind v0.19.1.0" "User Commands" +.TH BITCOIND "1" "February 2020" "bitcoind v0.19.1.0" "User Commands" .SH NAME bitcoind \- manual page for bitcoind v0.19.1.0 .SH SYNOPSIS From 628103d673028fa59a31b885354eff1b8e04b794 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 10 Feb 2020 15:33:42 +0100 Subject: [PATCH 073/388] build: Bump version to 0.19.1rc2 Tree-SHA512: 7ba1efdc24835405562b5ff710ed4223d7e4463dffa58721cc9e0f0f0ba90925e59719cb68b31f95cfc632a73ca9a5573e762167eed264c66323828a397b9127 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 18d00e8509..64a52deaff 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 19) define(_CLIENT_VERSION_REVISION, 1) define(_CLIENT_VERSION_BUILD, 0) -define(_CLIENT_VERSION_RC, 1) +define(_CLIENT_VERSION_RC, 2) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2019) define(_COPYRIGHT_HOLDERS,[The %s developers]) From facbdc0f5e04701905834f1b5d37e0ed41d2c2dd Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Thu, 13 Feb 2020 06:23:17 -0800 Subject: [PATCH 074/388] doc: Add missing author to 0.19.1 release notes --- doc/release-notes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index fc37df3873..5746bebb0d 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -52,7 +52,7 @@ distribution provides binaries for the RISC-V platform. ### Wallet - #17643 Fix origfee return for bumpfee with feerate arg (instagibbs) - #16963 Fix `unique_ptr` usage in boost::signals2 (promag) -- #17258 Fix issue with conflicted mempool tx in listsinceblock (adamjonas) +- #17258 Fix issue with conflicted mempool tx in listsinceblock (adamjonas, mchrostowski) - #17924 Bug: IsUsedDestination shouldn't use key id as script id for ScriptHash (instagibbs) - #17621 IsUsedDestination should count any known single-key address (instagibbs) - #17843 Reset reused transactions cache (fjahr) @@ -107,6 +107,7 @@ Thanks to everyone who directly contributed to this release: - Karl-Johan Alm - Luke Dashjr - MarcoFalke +- Michael Chrostowski - Russell Yanofsky - Wladimir J. van der Laan From 1964561a3a5eacbb27139e9125859854c0e77437 Mon Sep 17 00:00:00 2001 From: fanquake Date: Sun, 26 Jan 2020 12:16:44 +0800 Subject: [PATCH 075/388] build: don't embed a build-id when building libdmg-hfsplus Github-Pull: #18004 Rebased-From: cb9e88e73a042ff4e1c83289a6f8fa1db03fb093 --- depends/packages/native_libdmg-hfsplus.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/packages/native_libdmg-hfsplus.mk b/depends/packages/native_libdmg-hfsplus.mk index a4ffb6046c..3a784cccdd 100644 --- a/depends/packages/native_libdmg-hfsplus.mk +++ b/depends/packages/native_libdmg-hfsplus.mk @@ -10,7 +10,7 @@ define $(package)_preprocess_cmds endef define $(package)_config_cmds - cmake -DCMAKE_INSTALL_PREFIX:PATH=$(build_prefix)/bin .. + cmake -DCMAKE_INSTALL_PREFIX:PATH=$(build_prefix)/bin -DCMAKE_C_FLAGS="-Wl,--build-id=none" .. endef define $(package)_build_cmds From 48fef5ebae58b0730619182007218941bd339768 Mon Sep 17 00:00:00 2001 From: Russell Yanofsky Date: Tue, 11 Feb 2020 16:53:53 -0500 Subject: [PATCH 076/388] gui: Fix race in WalletModel::pollBalanceChanged Poll function was wrongly setting cached height to the current chain height instead of the chain height at the time of polling. This bug could cause balances to appear out of date, and was first introduced https://github.com/bitcoin/bitcoin/pull/10244/commits/a0704a8996bb950ae3c4d5b5a30e9dfe34cde1d3#r378452145 Before that commit, there wasn't a problem because cs_main was held during the poll update. Currently, the problem should be rare. But if 8937d99ce81a27ae5e1012a28323c0e26d89c50b from #17954 were merged, the problem would get worse, because the wrong cachedNumBlocks value would be set if the wallet was polled in the interval between a block being connected and it processing the BlockConnected notification. MarcoFalke also points out that a0704a8996b could lead to GUI hangs as well, because previously the pollBalanceChanged method, which runs on the GUI thread, would only make a nonblocking TRY_LOCK(cs_main) call, but after could make blocking LOCK(cs_main) calls, potentially locking up the GUI. Thanks to John Newbery for finding this bug this while reviewing https://github.com/bitcoin/bitcoin/pull/17954. Github-Pull: #18123 Rebased-From: bf36a3ccc212ad4d7c5cb8f26d7a22e279fe3cec --- src/qt/walletmodel.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index 05ab805bfd..cb8dd3cc10 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -81,12 +81,12 @@ void WalletModel::pollBalanceChanged() return; } - if(fForceCheckBalanceChanged || m_node.getNumBlocks() != cachedNumBlocks) + if(fForceCheckBalanceChanged || numBlocks != cachedNumBlocks) { fForceCheckBalanceChanged = false; // Balance and number of transactions might have changed - cachedNumBlocks = m_node.getNumBlocks(); + cachedNumBlocks = numBlocks; checkBalanceChanged(new_balances); if(transactionTableModel) From 58ba7c314d552cea8cb024960a8504577aee586f Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 4 Mar 2020 13:13:02 +0100 Subject: [PATCH 077/388] build: Bump version for 0.19.1 final Tree-SHA512: c0a5fbc072b03e36ffb9af23e699c6b3a897fcd509fdc3c6741ecc8e510aea5d87851c5a7926909746d03d390af10cae266189160b4a7b303f8be9418ea6a0c0 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 64a52deaff..0e8a0813ad 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 19) define(_CLIENT_VERSION_REVISION, 1) define(_CLIENT_VERSION_BUILD, 0) -define(_CLIENT_VERSION_RC, 2) +define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2019) define(_COPYRIGHT_HOLDERS,[The %s developers]) From 0ecb7c5a71dbdc7cb9e80c79ff9500dec4f10f19 Mon Sep 17 00:00:00 2001 From: Matthieu 'JP' DERASSE Date: Mon, 11 May 2020 21:47:38 +0200 Subject: [PATCH 078/388] Set scrypt and proto --- configure.ac | 1 + src/Makefile.am | 12 +- src/crypto/scrypt-arm.S | 5661 +++++++ src/crypto/scrypt-armv8.c | 1223 ++ src/crypto/scrypt-x64.S | 14252 +++++++++++++++++ src/crypto/scrypt-x86.S | 2655 ++++ src/crypto/scrypt.cpp | 840 + src/crypto/scrypt.h | 92 + src/crypto/sha2-arm.S | 11926 +++++++++++++++ src/crypto/sha2-armv8.c | 199 + src/crypto/sha2-x64.S | 29734 ++++++++++++++++++++++++++++++++++++ src/crypto/sha2-x86.S | 6165 ++++++++ src/primitives/block.cpp | 9 + src/primitives/block.h | 1 + src/util/strencodings.h | 1 + src/version.h | 6 +- 16 files changed, 72773 insertions(+), 4 deletions(-) create mode 100644 src/crypto/scrypt-arm.S create mode 100644 src/crypto/scrypt-armv8.c create mode 100644 src/crypto/scrypt-x64.S create mode 100644 src/crypto/scrypt-x86.S create mode 100644 src/crypto/scrypt.cpp create mode 100644 src/crypto/scrypt.h create mode 100644 src/crypto/sha2-arm.S create mode 100644 src/crypto/sha2-armv8.c create mode 100644 src/crypto/sha2-x64.S create mode 100644 src/crypto/sha2-x86.S diff --git a/configure.ac b/configure.ac index 0e8a0813ad..6c07cdfb16 100644 --- a/configure.ac +++ b/configure.ac @@ -14,6 +14,7 @@ AC_CONFIG_SRCDIR([src/validation.cpp]) AC_CONFIG_HEADERS([src/config/bitcoin-config.h]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([build-aux/m4]) +AM_PROG_AS BITCOIN_DAEMON_NAME=bitcoind BITCOIN_GUI_NAME=bitcoin-qt diff --git a/src/Makefile.am b/src/Makefile.am index 947edc6983..06a8469046 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -380,7 +380,17 @@ crypto_libbitcoin_crypto_base_a_SOURCES = \ crypto/sha512.cpp \ crypto/sha512.h \ crypto/siphash.cpp \ - crypto/siphash.h + crypto/siphash.h \ + crypto/sha512.h \ + crypto/sha2-arm.S \ + crypto/sha2-x86.S \ + crypto/sha2-x64.S \ + crypto/scrypt-arm.S \ + crypto/scrypt-x86.S \ + crypto/scrypt-x64.S \ + crypto/scrypt.cpp \ + crypto/scrypt.h \ + crypto/scrypt-armv8.c if USE_ASM crypto_libbitcoin_crypto_base_a_SOURCES += crypto/sha256_sse4.cpp diff --git a/src/crypto/scrypt-arm.S b/src/crypto/scrypt-arm.S new file mode 100644 index 0000000000..df95e4a966 --- /dev/null +++ b/src/crypto/scrypt-arm.S @@ -0,0 +1,5661 @@ +/* + * Copyright 2012, 2014 pooler@litecoinpool.org + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. See COPYING for more details. + */ + + +#if defined(__arm__) && defined(__APCS_32__) + +#if defined(__ARM_ARCH_5E__) || defined(__ARM_ARCH_5TE__) || \ + defined(__ARM_ARCH_5TEJ__) || defined(__ARM_ARCH_6__) || \ + defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || \ + defined(__ARM_ARCH_6M__) || defined(__ARM_ARCH_6T2__) || \ + defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) +#define __ARM_ARCH_5E_OR_6__ +#endif + +#if defined(__ARM_ARCH_5E_OR_6__) || defined(__ARM_ARCH_7__) || \ + defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || \ + defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__) +#define __ARM_ARCH_5E_OR_6_OR_7__ +#endif + +#ifdef __ARM_ARCH_5E_OR_6__ + + + + +#else + + + + +#endif + + + + + + + + + .text + .code 32 + .align 2 + .globl scrypt_core + .globl _scrypt_core +#ifdef __ELF__ + .type scrypt_core, %function +#endif +scrypt_core: +_scrypt_core: + stmfd sp!, {r4-r11, lr} + mov r12, sp + sub sp, sp, #22*4 + bic sp, sp, #63 + str r12, [sp, #20*4] + str r2, [sp, #21*4] + + + ldr r2, [sp, #21*4] + str r0, [sp, #16*4] + add r12, r1, r2, lsl #7 + str r12, [sp, #18*4] +scrypt_core_loop1: + add lr, r0, #16*4 + add r3, r1, #16*4 + mov r12, sp + ldmia r0, {r4-r7} + ldmia lr!, {r8-r11} + stmia r1!, {r4-r7} + stmia r3!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r0, {r4-r7} + ldmia lr!, {r8-r11} + stmia r1!, {r4-r7} + stmia r3!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r0, {r4-r7} + ldmia lr!, {r8-r11} + stmia r1!, {r4-r7} + stmia r3!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r0, {r4-r7} + ldmia lr!, {r8-r11} + stmia r1!, {r4-r7} + stmia r3!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + str r1, [sp, #17*4] + + ldmia sp, {r0-r7} + + ldr r12, [sp, #15*4] + ldr r8, [sp, #11*4] + ldr lr, [sp, #12*4] + + ldr r9, [sp, #9*4] + add r8, r8, r12 + ldr r11, [sp, #10*4] + add lr, lr, r0 + eor r3, r3, r8, ror #25 + add r8, r5, r1 + ldr r10, [sp, #14*4] + eor r4, r4, lr, ror #25 + add lr, r11, r6 + eor r9, r9, r8, ror #25 + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + str r9, [sp, #9*4] + eor r11, r11, r8, ror #14 + eor r12, r12, lr, ror #14 + add r8, r3, r2 + str r10, [sp, #14*4] + add lr, r4, r7 + str r11, [sp, #10*4] + eor r0, r0, r8, ror #14 + str r12, [sp, #15*4] + eor r5, r5, lr, ror #14 + + stmia sp, {r0-r7} + + ldr r0, [sp, #16*4] + mov r12, sp + add r2, r0, #16*4 + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + + ldmia sp, {r0-r7} + + ldr r12, [sp, #15*4] + ldr r8, [sp, #11*4] + ldr lr, [sp, #12*4] + + ldr r9, [sp, #9*4] + add r8, r8, r12 + ldr r11, [sp, #10*4] + add lr, lr, r0 + eor r3, r3, r8, ror #25 + add r8, r5, r1 + ldr r10, [sp, #14*4] + eor r4, r4, lr, ror #25 + add lr, r11, r6 + eor r9, r9, r8, ror #25 + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + str r9, [sp, #9*4] + eor r11, r11, r8, ror #14 + eor r12, r12, lr, ror #14 + add r8, r3, r2 + str r10, [sp, #14*4] + add lr, r4, r7 + str r11, [sp, #10*4] + eor r0, r0, r8, ror #14 + str r12, [sp, #15*4] + eor r5, r5, lr, ror #14 + + stmia sp, {r0-r7} + + ldr r0, [sp, #16*4] + mov r1, sp + add r0, r0, #16*4 + ldmia r1!, {r2-r7} + ldmia r0, {r8-r12, lr} + add r2, r2, r8 + add r3, r3, r9 + add r4, r4, r10 + add r5, r5, r11 + add r6, r6, r12 + add r7, r7, lr + stmia r0!, {r2-r7} + ldmia r1!, {r2-r7} + ldmia r0, {r8-r12, lr} + add r2, r2, r8 + add r3, r3, r9 + add r4, r4, r10 + add r5, r5, r11 + add r6, r6, r12 + add r7, r7, lr + stmia r0!, {r2-r7} + ldr r3, [sp, #17*4] + ldr r12, [sp, #18*4] + ldmia r1!, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + + add r1, r3, #16*4 + sub r0, r0, #32*4 + cmp r1, r12 + bne scrypt_core_loop1 + + ldr r12, [sp, #21*4] + ldr r4, [r0, #16*4] + sub r2, r12, #1 + str r2, [sp, #21*4] + sub r1, r1, r12, lsl #7 + str r1, [sp, #17*4] + and r4, r4, r2 + add r1, r1, r4, lsl #7 +scrypt_core_loop2: + add r2, r0, #16*4 + add r3, r1, #16*4 + str r12, [sp, #18*4] + mov r12, sp +#ifdef __ARM_ARCH_5E_OR_6_OR_7__ + pld [r1, #24*4] + pld [r1, #8*4] +#endif + ldmia r3!, {r8-r11} + ldmia r2, {r4-r7} + eor r8, r8, r4 + eor r9, r9, r5 + eor r10, r10, r6 + eor r11, r11, r7 + ldmia r0, {r4-r7} + stmia r2!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + ldmia r1!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r3!, {r8-r11} + ldmia r2, {r4-r7} + eor r8, r8, r4 + eor r9, r9, r5 + eor r10, r10, r6 + eor r11, r11, r7 + ldmia r0, {r4-r7} + stmia r2!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + ldmia r1!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r3!, {r8-r11} + ldmia r2, {r4-r7} + eor r8, r8, r4 + eor r9, r9, r5 + eor r10, r10, r6 + eor r11, r11, r7 + ldmia r0, {r4-r7} + stmia r2!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + ldmia r1!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r3!, {r8-r11} + ldmia r2, {r4-r7} + eor r8, r8, r4 + eor r9, r9, r5 + eor r10, r10, r6 + eor r11, r11, r7 + ldmia r0, {r4-r7} + stmia r2!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + ldmia r1!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + + ldmia sp, {r0-r7} + + ldr r12, [sp, #15*4] + ldr r8, [sp, #11*4] + ldr lr, [sp, #12*4] + + ldr r9, [sp, #9*4] + add r8, r8, r12 + ldr r11, [sp, #10*4] + add lr, lr, r0 + eor r3, r3, r8, ror #25 + add r8, r5, r1 + ldr r10, [sp, #14*4] + eor r4, r4, lr, ror #25 + add lr, r11, r6 + eor r9, r9, r8, ror #25 + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + str r9, [sp, #9*4] + eor r11, r11, r8, ror #14 + eor r12, r12, lr, ror #14 + add r8, r3, r2 + str r10, [sp, #14*4] + add lr, r4, r7 + str r11, [sp, #10*4] + eor r0, r0, r8, ror #14 + str r12, [sp, #15*4] + eor r5, r5, lr, ror #14 + + stmia sp, {r0-r7} + + ldr r0, [sp, #16*4] + mov r12, sp + add r2, r0, #16*4 + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + + ldmia sp, {r0-r7} + + ldr r12, [sp, #15*4] + ldr r8, [sp, #11*4] + ldr lr, [sp, #12*4] + + ldr r9, [sp, #9*4] + add r8, r8, r12 + ldr r11, [sp, #10*4] + add lr, lr, r0 + eor r3, r3, r8, ror #25 + add r8, r5, r1 + ldr r10, [sp, #14*4] + eor r4, r4, lr, ror #25 + add lr, r11, r6 + eor r9, r9, r8, ror #25 + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + eor r11, r11, r8, ror #14 + add r8, r3, r2 + eor r12, r12, lr, ror #14 + add lr, r4, r7 + eor r0, r0, r8, ror #14 + ldr r8, [sp, #11*4] + eor r5, r5, lr, ror #14 + ldr lr, [sp, #12*4] + + add r8, r8, r12 + str r11, [sp, #10*4] + add lr, lr, r0 + str r12, [sp, #15*4] + eor r3, r3, r8, ror #25 + add r8, r5, r1 + eor r4, r4, lr, ror #25 + add lr, r11, r6 + str r9, [sp, #9*4] + eor r9, r9, r8, ror #25 + str r10, [sp, #14*4] + eor r10, r10, lr, ror #25 + + ldr r8, [sp, #8*4] + add r11, r11, r10 + ldr lr, [sp, #13*4] + add r12, r12, r3 + eor r2, r2, r11, ror #23 + add r11, r4, r0 + eor r7, r7, r12, ror #23 + add r12, r9, r5 + str r9, [sp, #9*4] + eor r8, r8, r11, ror #23 + str r10, [sp, #14*4] + eor lr, lr, r12, ror #23 + + ldr r11, [sp, #11*4] + add r9, lr, r9 + ldr r12, [sp, #12*4] + add r10, r2, r10 + eor r1, r1, r9, ror #19 + add r9, r7, r3 + eor r6, r6, r10, ror #19 + add r10, r8, r4 + str r8, [sp, #8*4] + eor r11, r11, r9, ror #19 + str lr, [sp, #13*4] + eor r12, r12, r10, ror #19 + + ldr r9, [sp, #10*4] + add r8, r12, r8 + ldr r10, [sp, #15*4] + add lr, r1, lr + eor r0, r0, r8, ror #14 + add r8, r6, r2 + eor r5, r5, lr, ror #14 + add lr, r11, r7 + eor r9, r9, r8, ror #14 + ldr r8, [sp, #9*4] + eor r10, r10, lr, ror #14 + ldr lr, [sp, #14*4] + + + add r8, r9, r8 + str r9, [sp, #10*4] + add lr, r10, lr + str r10, [sp, #15*4] + eor r11, r11, r8, ror #25 + add r8, r0, r3 + eor r12, r12, lr, ror #25 + add lr, r5, r4 + eor r1, r1, r8, ror #25 + ldr r8, [sp, #8*4] + eor r6, r6, lr, ror #25 + + add r9, r11, r9 + ldr lr, [sp, #13*4] + add r10, r12, r10 + eor r8, r8, r9, ror #23 + add r9, r1, r0 + eor lr, lr, r10, ror #23 + add r10, r6, r5 + str r11, [sp, #11*4] + eor r2, r2, r9, ror #23 + str r12, [sp, #12*4] + eor r7, r7, r10, ror #23 + + ldr r9, [sp, #9*4] + add r11, r8, r11 + ldr r10, [sp, #14*4] + add r12, lr, r12 + eor r9, r9, r11, ror #19 + add r11, r2, r1 + eor r10, r10, r12, ror #19 + add r12, r7, r6 + str r8, [sp, #8*4] + eor r3, r3, r11, ror #19 + str lr, [sp, #13*4] + eor r4, r4, r12, ror #19 + + ldr r11, [sp, #10*4] + add r8, r9, r8 + ldr r12, [sp, #15*4] + add lr, r10, lr + str r9, [sp, #9*4] + eor r11, r11, r8, ror #14 + eor r12, r12, lr, ror #14 + add r8, r3, r2 + str r10, [sp, #14*4] + add lr, r4, r7 + str r11, [sp, #10*4] + eor r0, r0, r8, ror #14 + str r12, [sp, #15*4] + eor r5, r5, lr, ror #14 + + stmia sp, {r0-r7} + + ldr r0, [sp, #16*4] + mov r1, sp + ldr r3, [sp, #17*4] + add r0, r0, #16*4 + ldr r2, [sp, #21*4] + ldmia r1!, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + and r4, r4, r2 + add r3, r3, r4, lsl #7 + str r3, [sp, #19*4] +#ifdef __ARM_ARCH_5E_OR_6_OR_7__ + pld [r3, #16*4] + pld [r3] +#endif + ldmia r1!, {r2-r7} + ldmia r0, {r8-r12, lr} + add r2, r2, r8 + add r3, r3, r9 + add r4, r4, r10 + add r5, r5, r11 + add r6, r6, r12 + add r7, r7, lr + stmia r0!, {r2-r7} + ldmia r1!, {r2-r7} + ldmia r0, {r8-r12, lr} + add r2, r2, r8 + add r3, r3, r9 + add r4, r4, r10 + add r5, r5, r11 + add r6, r6, r12 + add r7, r7, lr + stmia r0!, {r2-r7} + + ldr r12, [sp, #18*4] + sub r0, r0, #32*4 + ldr r1, [sp, #19*4] + subs r12, r12, #1 + bne scrypt_core_loop2 + + + ldr sp, [sp, #20*4] +#ifdef __thumb__ + ldmfd sp!, {r4-r11, lr} + bx lr +#else + ldmfd sp!, {r4-r11, pc} +#endif + + +#ifdef __ARM_NEON__ + + + + .text + .code 32 + .align 2 + .globl scrypt_core_3way + .globl _scrypt_core_3way +#ifdef __ELF__ + .type scrypt_core_3way, %function +#endif +scrypt_core_3way: +_scrypt_core_3way: + stmfd sp!, {r4-r11, lr} + vpush {q4-q7} + mov r12, sp + sub sp, sp, #24*16 + bic sp, sp, #63 + str r2, [sp, #4*16+3*4] + str r12, [sp, #4*16+4*4] + + mov r3, r0 + vldmia r3!, {q8-q15} + vmov.u64 q0, #0xffffffff + vmov.u32 q1, q8 + vmov.u32 q2, q12 + vbif.u32 q8, q9, q0 + vbif.u32 q12, q13, q0 + vbif.u32 q9, q10, q0 + vbif.u32 q13, q14, q0 + vbif.u32 q10, q11, q0 + vbif.u32 q14, q15, q0 + vbif.u32 q11, q1, q0 + vbif.u32 q15, q2, q0 + vldmia r3!, {q0-q7} + vswp.u32 d17, d21 + vswp.u32 d25, d29 + vswp.u32 d18, d22 + vswp.u32 d26, d30 + vstmia r0, {q8-q15} + vmov.u64 q8, #0xffffffff + vmov.u32 q9, q0 + vmov.u32 q10, q4 + vbif.u32 q0, q1, q8 + vbif.u32 q4, q5, q8 + vbif.u32 q1, q2, q8 + vbif.u32 q5, q6, q8 + vbif.u32 q2, q3, q8 + vbif.u32 q6, q7, q8 + vbif.u32 q3, q9, q8 + vbif.u32 q7, q10, q8 + vldmia r3, {q8-q15} + vswp.u32 d1, d5 + vswp.u32 d9, d13 + vswp.u32 d2, d6 + vswp.u32 d10, d14 + add r12, sp, #8*16 + vstmia r12!, {q0-q7} + vmov.u64 q0, #0xffffffff + vmov.u32 q1, q8 + vmov.u32 q2, q12 + vbif.u32 q8, q9, q0 + vbif.u32 q12, q13, q0 + vbif.u32 q9, q10, q0 + vbif.u32 q13, q14, q0 + vbif.u32 q10, q11, q0 + vbif.u32 q14, q15, q0 + vbif.u32 q11, q1, q0 + vbif.u32 q15, q2, q0 + vswp.u32 d17, d21 + vswp.u32 d25, d29 + vswp.u32 d18, d22 + vswp.u32 d26, d30 + vstmia r12, {q8-q15} + + add lr, sp, #128 + vldmia lr, {q0-q7} + add r2, r1, r2, lsl #7 + str r0, [sp, #4*16+0*4] + str r2, [sp, #4*16+2*4] +scrypt_core_3way_loop1: + add lr, r0, #16*4 + add r3, r1, #16*4 + str r1, [sp, #4*16+1*4] + mov r12, sp + ldmia r0, {r4-r7} + ldmia lr!, {r8-r11} + stmia r1!, {r4-r7} + stmia r3!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r0, {r4-r7} + ldmia lr!, {r8-r11} + stmia r1!, {r4-r7} + stmia r3!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r0, {r4-r7} + ldmia lr!, {r8-r11} + stmia r1!, {r4-r7} + stmia r3!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldr r2, [sp, #4*16+3*4] + ldmia r0, {r4-r7} + ldmia lr!, {r8-r11} + stmia r1!, {r4-r7} + stmia r3!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + sub r1, r1, #4*16 + + add r1, r1, r2, lsl #7 + vstmia r1, {q0-q7} + add r3, r1, r2, lsl #7 + vstmia r3, {q8-q15} + + add lr, sp, #128 + veor.u32 q0, q0, q4 + veor.u32 q1, q1, q5 + veor.u32 q2, q2, q6 + veor.u32 q3, q3, q7 + vstmia lr, {q0-q3} + veor.u32 q8, q8, q12 + veor.u32 q9, q9, q13 + veor.u32 q10, q10, q14 + veor.u32 q11, q11, q15 + add r12, sp, #256 + vstmia r12, {q8-q11} + + ldmia sp, {r0-r12, lr} + ldrd r10, [sp, #14*4] + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + stmia sp, {r0-r5} + strd r8, [sp, #8*4] + str r12, [sp, #12*4] + str lr, [sp, #13*4] + + ldr r0, [sp, #4*16+0*4] + mov r12, sp + add r2, r0, #16*4 + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + + add lr, sp, #128 + vldmia lr, {q4-q7} + vadd.u32 q4, q4, q0 + vadd.u32 q5, q5, q1 + vadd.u32 q6, q6, q2 + vadd.u32 q7, q7, q3 + add r12, sp, #256 + vldmia r12, {q0-q3} + vstmia lr, {q4-q7} + vadd.u32 q8, q8, q0 + vadd.u32 q9, q9, q1 + vadd.u32 q10, q10, q2 + vadd.u32 q11, q11, q3 + + add r4, sp, #128+4*16 + vldmia r4, {q0-q3} + vstmia r12, {q8-q11} + veor.u32 q0, q0, q4 + veor.u32 q1, q1, q5 + veor.u32 q2, q2, q6 + veor.u32 q3, q3, q7 + vstmia r4, {q0-q3} + veor.u32 q8, q8, q12 + veor.u32 q9, q9, q13 + veor.u32 q10, q10, q14 + veor.u32 q11, q11, q15 + vmov q12, q8 + vmov q13, q9 + vmov q14, q10 + vmov q15, q11 + + ldmia sp, {r0-r12, lr} + ldrd r10, [sp, #14*4] + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + stmia sp, {r0-r5} + strd r8, [sp, #8*4] + str r12, [sp, #12*4] + str lr, [sp, #13*4] + + ldr r0, [sp, #4*16+0*4] + mov r1, sp + add r0, r0, #16*4 + ldmia r1!, {r2-r7} + ldmia r0, {r8-r12, lr} + add r2, r2, r8 + add r3, r3, r9 + add r4, r4, r10 + add r5, r5, r11 + add r6, r6, r12 + add r7, r7, lr + stmia r0!, {r2-r7} + ldmia r1!, {r2-r7} + ldmia r0, {r8-r12, lr} + add r2, r2, r8 + add r3, r3, r9 + add r4, r4, r10 + add r5, r5, r11 + add r6, r6, r12 + add r7, r7, lr + stmia r0!, {r2-r7} + ldmia r1!, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + sub r0, r0, #8*16 + + ldr r1, [sp, #4*16+1*4] + ldr r2, [sp, #4*16+2*4] + add lr, sp, #128 + add r4, sp, #128+4*16 + vldmia r4, {q4-q7} + vadd.u32 q4, q4, q0 + vadd.u32 q5, q5, q1 + vadd.u32 q6, q6, q2 + vadd.u32 q7, q7, q3 + vstmia r4, {q4-q7} + vldmia lr, {q0-q3} + vadd.u32 q12, q12, q8 + vadd.u32 q13, q13, q9 + vadd.u32 q14, q14, q10 + vadd.u32 q15, q15, q11 + add r12, sp, #256 + vldmia r12, {q8-q11} + + add r1, r1, #8*16 + cmp r1, r2 + bne scrypt_core_3way_loop1 + + ldr r2, [sp, #4*16+3*4] + add r5, sp, #256+4*16 + vstmia r5, {q12-q15} + + sub r1, r1, r2, lsl #7 + str r1, [sp, #4*16+1*4] +scrypt_core_3way_loop2: + str r2, [sp, #4*16+2*4] + + ldr r0, [sp, #4*16+0*4] + ldr r1, [sp, #4*16+1*4] + ldr r2, [sp, #4*16+3*4] + ldr r4, [r0, #16*4] + sub r2, r2, #1 + and r4, r4, r2 + add r1, r1, r4, lsl #7 + add r2, r0, #16*4 + add r3, r1, #16*4 + mov r12, sp + ldmia r3!, {r8-r11} + ldmia r2, {r4-r7} + eor r8, r8, r4 + eor r9, r9, r5 + eor r10, r10, r6 + eor r11, r11, r7 + ldmia r0, {r4-r7} + stmia r2!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + ldmia r1!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r3!, {r8-r11} + ldmia r2, {r4-r7} + eor r8, r8, r4 + eor r9, r9, r5 + eor r10, r10, r6 + eor r11, r11, r7 + ldmia r0, {r4-r7} + stmia r2!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + ldmia r1!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r3!, {r8-r11} + ldmia r2, {r4-r7} + eor r8, r8, r4 + eor r9, r9, r5 + eor r10, r10, r6 + eor r11, r11, r7 + ldmia r0, {r4-r7} + stmia r2!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + ldmia r1!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r3!, {r8-r11} + ldmia r2, {r4-r7} + eor r8, r8, r4 + eor r9, r9, r5 + eor r10, r10, r6 + eor r11, r11, r7 + ldmia r0, {r4-r7} + stmia r2!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + ldmia r1!, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r0!, {r4-r7} + stmia r12!, {r4-r7} + + ldr r1, [sp, #4*16+1*4] + ldr r2, [sp, #4*16+3*4] + add r1, r1, r2, lsl #7 + add r3, r1, r2, lsl #7 + sub r2, r2, #1 + vmov r6, r7, d8 + and r6, r6, r2 + add r6, r1, r6, lsl #7 + vmov r7, r8, d24 + add lr, sp, #128 + vldmia lr, {q0-q3} + pld [r6] + pld [r6, #8*4] + pld [r6, #16*4] + pld [r6, #24*4] + vldmia r6, {q8-q15} + and r7, r7, r2 + add r7, r3, r7, lsl #7 + veor.u32 q8, q8, q0 + veor.u32 q9, q9, q1 + veor.u32 q10, q10, q2 + veor.u32 q11, q11, q3 + pld [r7] + pld [r7, #8*4] + pld [r7, #16*4] + pld [r7, #24*4] + veor.u32 q12, q12, q4 + veor.u32 q13, q13, q5 + veor.u32 q14, q14, q6 + veor.u32 q15, q15, q7 + vldmia r7, {q0-q7} + vstmia lr, {q8-q15} + add r12, sp, #256 + vldmia r12, {q8-q15} + veor.u32 q8, q8, q0 + veor.u32 q9, q9, q1 + veor.u32 q10, q10, q2 + veor.u32 q11, q11, q3 + veor.u32 q12, q12, q4 + veor.u32 q13, q13, q5 + veor.u32 q14, q14, q6 + veor.u32 q15, q15, q7 + + vldmia lr, {q0-q7} + veor.u32 q0, q0, q4 + veor.u32 q1, q1, q5 + veor.u32 q2, q2, q6 + veor.u32 q3, q3, q7 + vstmia lr, {q0-q3} + veor.u32 q8, q8, q12 + veor.u32 q9, q9, q13 + veor.u32 q10, q10, q14 + veor.u32 q11, q11, q15 + vstmia r12, {q8-q15} + + ldmia sp, {r0-r12, lr} + ldrd r10, [sp, #14*4] + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + stmia sp, {r0-r5} + strd r8, [sp, #8*4] + str r12, [sp, #12*4] + str lr, [sp, #13*4] + + ldr r0, [sp, #4*16+0*4] + mov r12, sp + add r2, r0, #16*4 + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + ldmia r12, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + ldmia r2, {r8-r11} + eor r4, r4, r8 + eor r5, r5, r9 + eor r6, r6, r10 + eor r7, r7, r11 + stmia r2!, {r4-r7} + stmia r12!, {r4-r7} + + add lr, sp, #128 + vldmia lr, {q4-q7} + vadd.u32 q4, q4, q0 + vadd.u32 q5, q5, q1 + vadd.u32 q6, q6, q2 + vadd.u32 q7, q7, q3 + add r12, sp, #256 + vldmia r12, {q12-q15} + vstmia lr, {q4-q7} + vadd.u32 q12, q12, q8 + vadd.u32 q13, q13, q9 + vadd.u32 q14, q14, q10 + vadd.u32 q15, q15, q11 + + add r4, sp, #128+4*16 + vldmia r4, {q0-q3} + vstmia r12, {q12-q15} + veor.u32 q0, q0, q4 + veor.u32 q1, q1, q5 + veor.u32 q2, q2, q6 + veor.u32 q3, q3, q7 + add r5, sp, #256+4*16 + vldmia r5, {q8-q11} + vstmia r4, {q0-q3} + veor.u32 q8, q8, q12 + veor.u32 q9, q9, q13 + veor.u32 q10, q10, q14 + veor.u32 q11, q11, q15 + vmov q12, q8 + vmov q13, q9 + vmov q14, q10 + vmov q15, q11 + + ldmia sp, {r0-r12, lr} + ldrd r10, [sp, #14*4] + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + ldrd r6, [sp, #6*4] + vadd.u32 q4, q0, q1 + add r6, r2, r6 + vadd.u32 q6, q8, q9 + add r7, r3, r7 + vshl.u32 q5, q4, #7 + eor r10, r10, r6, ror #25 + vshl.u32 q7, q6, #7 + add r6, r0, r4 + vshr.u32 q4, q4, #32-7 + eor r11, r11, r7, ror #25 + vshr.u32 q6, q6, #32-7 + add r7, r1, r5 + veor.u32 q3, q3, q5 + strd r10, [sp, #14*4] + veor.u32 q11, q11, q7 + eor r12, r12, r6, ror #25 + veor.u32 q3, q3, q4 + eor lr, lr, r7, ror #25 + veor.u32 q11, q11, q6 + + ldrd r6, [sp, #10*4] + vadd.u32 q4, q3, q0 + add r2, r10, r2 + vadd.u32 q6, q11, q8 + add r3, r11, r3 + vshl.u32 q5, q4, #9 + eor r6, r6, r2, ror #23 + vshl.u32 q7, q6, #9 + add r2, r12, r0 + vshr.u32 q4, q4, #32-9 + eor r7, r7, r3, ror #23 + vshr.u32 q6, q6, #32-9 + add r3, lr, r1 + veor.u32 q2, q2, q5 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q7 + eor r8, r8, r2, ror #23 + veor.u32 q2, q2, q4 + eor r9, r9, r3, ror #23 + veor.u32 q10, q10, q6 + + ldrd r2, [sp, #6*4] + vadd.u32 q4, q2, q3 + add r10, r6, r10 + vadd.u32 q6, q10, q11 + add r11, r7, r11 + vext.u32 q3, q3, q3, #3 + eor r2, r2, r10, ror #19 + vshl.u32 q5, q4, #13 + add r10, r8, r12 + vext.u32 q11, q11, q11, #3 + eor r3, r3, r11, ror #19 + vshl.u32 q7, q6, #13 + add r11, r9, lr + vshr.u32 q4, q4, #32-13 + eor r4, r4, r10, ror #19 + vshr.u32 q6, q6, #32-13 + eor r5, r5, r11, ror #19 + veor.u32 q1, q1, q5 + veor.u32 q9, q9, q7 + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + ldrd r10, [sp, #2*4] + vadd.u32 q4, q1, q2 + add r6, r2, r6 + vadd.u32 q6, q9, q10 + add r7, r3, r7 + vswp.u32 d4, d5 + eor r10, r10, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, r4, r8 + vswp.u32 d20, d21 + eor r11, r11, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r5, r9 + vshr.u32 q4, q4, #32-18 + eor r0, r0, r6, ror #14 + vshr.u32 q6, q6, #32-18 + eor r1, r1, r7, ror #14 + veor.u32 q0, q0, q5 + ldrd r6, [sp, #14*4] + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + + + strd r2, [sp, #6*4] + vadd.u32 q4, q0, q3 + strd r10, [sp, #2*4] + vadd.u32 q6, q8, q11 + add r6, r11, r6 + vext.u32 q1, q1, q1, #1 + add r7, r0, r7 + vshl.u32 q5, q4, #7 + eor r4, r4, r6, ror #25 + vext.u32 q9, q9, q9, #1 + add r6, r1, r12 + vshl.u32 q7, q6, #7 + eor r5, r5, r7, ror #25 + vshr.u32 q4, q4, #32-7 + add r7, r10, lr + vshr.u32 q6, q6, #32-7 + eor r2, r2, r6, ror #25 + veor.u32 q1, q1, q5 + eor r3, r3, r7, ror #25 + veor.u32 q9, q9, q7 + strd r2, [sp, #6*4] + veor.u32 q1, q1, q4 + veor.u32 q9, q9, q6 + + add r10, r3, r10 + vadd.u32 q4, q1, q0 + ldrd r6, [sp, #10*4] + vadd.u32 q6, q9, q8 + add r11, r4, r11 + vshl.u32 q5, q4, #9 + eor r8, r8, r10, ror #23 + vshl.u32 q7, q6, #9 + add r10, r5, r0 + vshr.u32 q4, q4, #32-9 + eor r9, r9, r11, ror #23 + vshr.u32 q6, q6, #32-9 + add r11, r2, r1 + veor.u32 q2, q2, q5 + eor r6, r6, r10, ror #23 + veor.u32 q10, q10, q7 + eor r7, r7, r11, ror #23 + veor.u32 q2, q2, q4 + strd r6, [sp, #10*4] + veor.u32 q10, q10, q6 + + add r2, r7, r2 + vadd.u32 q4, q2, q1 + ldrd r10, [sp, #14*4] + vadd.u32 q6, q10, q9 + add r3, r8, r3 + vext.u32 q1, q1, q1, #3 + eor r12, r12, r2, ror #19 + vshl.u32 q5, q4, #13 + add r2, r9, r4 + vext.u32 q9, q9, q9, #3 + eor lr, lr, r3, ror #19 + vshl.u32 q7, q6, #13 + add r3, r6, r5 + vshr.u32 q4, q4, #32-13 + eor r10, r10, r2, ror #19 + vshr.u32 q6, q6, #32-13 + eor r11, r11, r3, ror #19 + veor.u32 q3, q3, q5 + veor.u32 q11, q11, q7 + veor.u32 q3, q3, q4 + veor.u32 q11, q11, q6 + + ldrd r2, [sp, #2*4] + vadd.u32 q4, q3, q2 + add r6, r11, r6 + vadd.u32 q6, q11, q10 + add r7, r12, r7 + vswp.u32 d4, d5 + eor r0, r0, r6, ror #14 + vshl.u32 q5, q4, #18 + add r6, lr, r8 + vswp.u32 d20, d21 + eor r1, r1, r7, ror #14 + vshl.u32 q7, q6, #18 + add r7, r10, r9 + vext.u32 q3, q3, q3, #1 + eor r2, r2, r6, ror #14 + vshr.u32 q4, q4, #32-18 + eor r3, r3, r7, ror #14 + vshr.u32 q6, q6, #32-18 + strd r2, [sp, #2*4] + vext.u32 q11, q11, q11, #1 + strd r10, [sp, #14*4] + veor.u32 q0, q0, q5 + veor.u32 q8, q8, q7 + veor.u32 q0, q0, q4 + veor.u32 q8, q8, q6 + stmia sp, {r0-r5} + strd r8, [sp, #8*4] + str r12, [sp, #12*4] + str lr, [sp, #13*4] + + ldr r0, [sp, #4*16+0*4] + ldr r3, [sp, #4*16+1*4] + ldr r2, [sp, #4*16+3*4] + mov r1, sp + add r0, r0, #16*4 + sub r2, r2, #1 + ldmia r1!, {r4-r7} + ldmia r0, {r8-r11} + add r4, r4, r8 + add r5, r5, r9 + add r6, r6, r10 + add r7, r7, r11 + stmia r0!, {r4-r7} + and r4, r4, r2 + add r3, r3, r4, lsl #7 + pld [r3, #16*4] + pld [r3] + pld [r3, #24*4] + pld [r3, #8*4] + ldmia r1!, {r2-r7} + ldmia r0, {r8-r12, lr} + add r2, r2, r8 + add r3, r3, r9 + add r4, r4, r10 + add r5, r5, r11 + add r6, r6, r12 + add r7, r7, lr + stmia r0!, {r2-r7} + ldmia r1!, {r2-r7} + ldmia r0, {r8-r12, lr} + add r2, r2, r8 + add r3, r3, r9 + add r4, r4, r10 + add r5, r5, r11 + add r6, r6, r12 + add r7, r7, lr + stmia r0!, {r2-r7} + + add lr, sp, #128 + add r4, sp, #128+4*16 + vldmia r4, {q4-q7} + vadd.u32 q4, q4, q0 + vadd.u32 q5, q5, q1 + vadd.u32 q6, q6, q2 + vadd.u32 q7, q7, q3 + vstmia r4, {q4-q7} + vadd.u32 q12, q12, q8 + vadd.u32 q13, q13, q9 + vadd.u32 q14, q14, q10 + vadd.u32 q15, q15, q11 + add r5, sp, #256+4*16 + vstmia r5, {q12-q15} + + ldr r2, [sp, #4*16+2*4] + subs r2, r2, #1 + bne scrypt_core_3way_loop2 + + ldr r0, [sp, #4*16+0*4] + vldmia r0, {q8-q15} + vmov.u64 q0, #0xffffffff + vmov.u32 q1, q8 + vmov.u32 q2, q12 + vbif.u32 q8, q9, q0 + vbif.u32 q12, q13, q0 + vbif.u32 q9, q10, q0 + vbif.u32 q13, q14, q0 + vbif.u32 q10, q11, q0 + vbif.u32 q14, q15, q0 + vbif.u32 q11, q1, q0 + vbif.u32 q15, q2, q0 + add r12, sp, #8*16 + vldmia r12!, {q0-q7} + vswp.u32 d17, d21 + vswp.u32 d25, d29 + vswp.u32 d18, d22 + vswp.u32 d26, d30 + vstmia r0!, {q8-q15} + vmov.u64 q8, #0xffffffff + vmov.u32 q9, q0 + vmov.u32 q10, q4 + vbif.u32 q0, q1, q8 + vbif.u32 q4, q5, q8 + vbif.u32 q1, q2, q8 + vbif.u32 q5, q6, q8 + vbif.u32 q2, q3, q8 + vbif.u32 q6, q7, q8 + vbif.u32 q3, q9, q8 + vbif.u32 q7, q10, q8 + vldmia r12, {q8-q15} + vswp.u32 d1, d5 + vswp.u32 d9, d13 + vswp.u32 d2, d6 + vswp.u32 d10, d14 + vstmia r0!, {q0-q7} + vmov.u64 q0, #0xffffffff + vmov.u32 q1, q8 + vmov.u32 q2, q12 + vbif.u32 q8, q9, q0 + vbif.u32 q12, q13, q0 + vbif.u32 q9, q10, q0 + vbif.u32 q13, q14, q0 + vbif.u32 q10, q11, q0 + vbif.u32 q14, q15, q0 + vbif.u32 q11, q1, q0 + vbif.u32 q15, q2, q0 + vswp.u32 d17, d21 + vswp.u32 d25, d29 + vswp.u32 d18, d22 + vswp.u32 d26, d30 + vstmia r0, {q8-q15} + + ldr sp, [sp, #4*16+4*4] + vpop {q4-q7} + ldmfd sp!, {r4-r11, pc} + +#endif /* __ARM_NEON__ */ + +#endif diff --git a/src/crypto/scrypt-armv8.c b/src/crypto/scrypt-armv8.c new file mode 100644 index 0000000000..ad1e991af1 --- /dev/null +++ b/src/crypto/scrypt-armv8.c @@ -0,0 +1,1223 @@ +/* + * Copyright 2009 Colin Percival, 2011 ArtForz, 2011-2014 pooler + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file was originally written by Colin Percival as part of the Tarsnap + * online backup system. + */ + +#include +#include +#include +#include + +#include + +void sha256_init(uint32_t *state); +void sha256_transform(uint32_t *state, const uint32_t *block, int swap); +void scrypt_core(uint32_t* X, uint32_t* V, int N); + +#define _ALIGN(x) __attribute__ ((aligned(x))) + + +#if defined(__aarch64__) + +#include + +static inline void xor_salsa8(uint32_t B[16], const uint32_t Bx[16]) +{ + uint32_t x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15; + int i; + + x00 = (B[ 0] ^= Bx[ 0]); + x01 = (B[ 1] ^= Bx[ 1]); + x02 = (B[ 2] ^= Bx[ 2]); + x03 = (B[ 3] ^= Bx[ 3]); + x04 = (B[ 4] ^= Bx[ 4]); + x05 = (B[ 5] ^= Bx[ 5]); + x06 = (B[ 6] ^= Bx[ 6]); + x07 = (B[ 7] ^= Bx[ 7]); + x08 = (B[ 8] ^= Bx[ 8]); + x09 = (B[ 9] ^= Bx[ 9]); + x10 = (B[10] ^= Bx[10]); + x11 = (B[11] ^= Bx[11]); + x12 = (B[12] ^= Bx[12]); + x13 = (B[13] ^= Bx[13]); + x14 = (B[14] ^= Bx[14]); + x15 = (B[15] ^= Bx[15]); + for (i = 0; i < 8; i += 2) { +#define R(a, b) (((a) << (b)) | ((a) >> (32 - (b)))) + /* Operate on columns. */ + x04 ^= R(x00+x12, 7); x09 ^= R(x05+x01, 7); + x14 ^= R(x10+x06, 7); x03 ^= R(x15+x11, 7); + + x08 ^= R(x04+x00, 9); x13 ^= R(x09+x05, 9); + x02 ^= R(x14+x10, 9); x07 ^= R(x03+x15, 9); + + x12 ^= R(x08+x04,13); x01 ^= R(x13+x09,13); + x06 ^= R(x02+x14,13); x11 ^= R(x07+x03,13); + + x00 ^= R(x12+x08,18); x05 ^= R(x01+x13,18); + x10 ^= R(x06+x02,18); x15 ^= R(x11+x07,18); + + /* Operate on rows. */ + x01 ^= R(x00+x03, 7); x06 ^= R(x05+x04, 7); + x11 ^= R(x10+x09, 7); x12 ^= R(x15+x14, 7); + + x02 ^= R(x01+x00, 9); x07 ^= R(x06+x05, 9); + x08 ^= R(x11+x10, 9); x13 ^= R(x12+x15, 9); + + x03 ^= R(x02+x01,13); x04 ^= R(x07+x06,13); + x09 ^= R(x08+x11,13); x14 ^= R(x13+x12,13); + + x00 ^= R(x03+x02,18); x05 ^= R(x04+x07,18); + x10 ^= R(x09+x08,18); x15 ^= R(x14+x13,18); +#undef R + } + B[ 0] += x00; + B[ 1] += x01; + B[ 2] += x02; + B[ 3] += x03; + B[ 4] += x04; + B[ 5] += x05; + B[ 6] += x06; + B[ 7] += x07; + B[ 8] += x08; + B[ 9] += x09; + B[10] += x10; + B[11] += x11; + B[12] += x12; + B[13] += x13; + B[14] += x14; + B[15] += x15; +} + + +static inline void xor_salsa8_prefetch(uint32_t B[16], const uint32_t Bx[16], uint32_t* V, uint32_t N) +{ + uint32_t x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15; + int i; + + x00 = (B[ 0] ^= Bx[ 0]); + x01 = (B[ 1] ^= Bx[ 1]); + x02 = (B[ 2] ^= Bx[ 2]); + x03 = (B[ 3] ^= Bx[ 3]); + x04 = (B[ 4] ^= Bx[ 4]); + x05 = (B[ 5] ^= Bx[ 5]); + x06 = (B[ 6] ^= Bx[ 6]); + x07 = (B[ 7] ^= Bx[ 7]); + x08 = (B[ 8] ^= Bx[ 8]); + x09 = (B[ 9] ^= Bx[ 9]); + x10 = (B[10] ^= Bx[10]); + x11 = (B[11] ^= Bx[11]); + x12 = (B[12] ^= Bx[12]); + x13 = (B[13] ^= Bx[13]); + x14 = (B[14] ^= Bx[14]); + x15 = (B[15] ^= Bx[15]); + for (i = 0; i < 8; i += 2) { +#define R(a, b) (((a) << (b)) | ((a) >> (32 - (b)))) + /* Operate on columns. */ + x04 ^= R(x00+x12, 7); x09 ^= R(x05+x01, 7); + x14 ^= R(x10+x06, 7); x03 ^= R(x15+x11, 7); + + x08 ^= R(x04+x00, 9); x13 ^= R(x09+x05, 9); + x02 ^= R(x14+x10, 9); x07 ^= R(x03+x15, 9); + + x12 ^= R(x08+x04,13); x01 ^= R(x13+x09,13); + x06 ^= R(x02+x14,13); x11 ^= R(x07+x03,13); + + x00 ^= R(x12+x08,18); x05 ^= R(x01+x13,18); + x10 ^= R(x06+x02,18); x15 ^= R(x11+x07,18); + + /* Operate on rows. */ + x01 ^= R(x00+x03, 7); x06 ^= R(x05+x04, 7); + x11 ^= R(x10+x09, 7); x12 ^= R(x15+x14, 7); + + x02 ^= R(x01+x00, 9); x07 ^= R(x06+x05, 9); + x08 ^= R(x11+x10, 9); x13 ^= R(x12+x15, 9); + + x03 ^= R(x02+x01,13); x04 ^= R(x07+x06,13); + x09 ^= R(x08+x11,13); x14 ^= R(x13+x12,13); + + x00 ^= R(x03+x02,18); x05 ^= R(x04+x07,18); + x10 ^= R(x09+x08,18); x15 ^= R(x14+x13,18); +#undef R + } + B[ 0] += x00; + uint32_t one = 32 * (B[0] & (N - 1)); + __builtin_prefetch(&V[one + 0]); + __builtin_prefetch(&V[one + 8]); + __builtin_prefetch(&V[one + 16]); + __builtin_prefetch(&V[one + 24]); + asm("":::"memory"); + B[ 1] += x01; + B[ 2] += x02; + B[ 3] += x03; + B[ 4] += x04; + B[ 5] += x05; + B[ 6] += x06; + B[ 7] += x07; + B[ 8] += x08; + B[ 9] += x09; + B[10] += x10; + B[11] += x11; + B[12] += x12; + B[13] += x13; + B[14] += x14; + B[15] += x15; +} + +void scrypt_core(uint32_t *X, uint32_t *V, int N) +{ + int i; + + for (i = 0; i < N; i++) { + memcpy(&V[i * 32], X, 128); + xor_salsa8(&X[0], &X[16]); + xor_salsa8(&X[16], &X[0]); + } + for (i = 0; i < N; i++) { + uint32_t j = 32 * (X[16] & (N - 1)); + for (uint8_t k = 0; k < 32; k++) + X[k] ^= V[j + k]; + xor_salsa8(&X[0], &X[16]); + xor_salsa8_prefetch(&X[16], &X[0], V, N); + } +} + + +static inline void scrypt_shuffle(uint32_t B[16]) +{ + uint32_t x0 = B[0]; + uint32_t x1 = B[1]; + uint32_t x2 = B[2]; + uint32_t x3 = B[3]; + uint32_t x4 = B[4]; + uint32_t x5 = B[5]; + uint32_t x6 = B[6]; + uint32_t x7 = B[7]; + uint32_t x8 = B[8]; + uint32_t x9 = B[9]; + uint32_t x10 = B[10]; + uint32_t x11 = B[11]; + uint32_t x12 = B[12]; + uint32_t x13 = B[13]; + uint32_t x14 = B[14]; + uint32_t x15 = B[15]; + + B[0] = x0; B[1] = x5; B[2] = x10; B[3] = x15; + B[4] = x12; B[5] = x1; B[6] = x6; B[7] = x11; + B[8] = x8; B[9] = x13; B[10] = x2; B[11] = x7; + B[12] = x4; B[13] = x9; B[14] = x14; B[15] = x3; +} + +void scrypt_core_3way(uint32_t B[32 * 3], uint32_t *V, uint32_t N) +{ + uint32_t* W = V; + + scrypt_shuffle(&B[0 + 0]); + scrypt_shuffle(&B[16 + 0]); + scrypt_shuffle(&B[0 + 32]); + scrypt_shuffle(&B[16 + 32]); + scrypt_shuffle(&B[0 + 64]); + scrypt_shuffle(&B[16 + 64]); + + uint32x4x4_t q_a, q_b, q_c, q_tmp; + uint32x4x4_t ba_a, bb_a, bc_a, ba_b, bb_b, bc_b; + + ba_a.val[0] = vld1q_u32(&B[( 0) / 4]); + ba_a.val[1] = vld1q_u32(&B[(16) / 4]); + ba_a.val[2] = vld1q_u32(&B[(32) / 4]); + ba_a.val[3] = vld1q_u32(&B[(48) / 4]); + ba_b.val[0] = vld1q_u32(&B[(0 + 64 + 0) / 4]); + ba_b.val[1] = vld1q_u32(&B[(0 + 64 + 16) / 4]); + ba_b.val[2] = vld1q_u32(&B[(0 + 64 + 32) / 4]); + ba_b.val[3] = vld1q_u32(&B[(0 + 64 + 48) / 4]); + + bb_a.val[0] = vld1q_u32(&B[(128 + 0) / 4]); + bb_a.val[1] = vld1q_u32(&B[(128 + 16) / 4]); + bb_a.val[2] = vld1q_u32(&B[(128 + 32) / 4]); + bb_a.val[3] = vld1q_u32(&B[(128 + 48) / 4]); + bb_b.val[0] = vld1q_u32(&B[(128 + 64 + 0) / 4]); + bb_b.val[1] = vld1q_u32(&B[(128 + 64 + 16) / 4]); + bb_b.val[2] = vld1q_u32(&B[(128 + 64 + 32) / 4]); + bb_b.val[3] = vld1q_u32(&B[(128 + 64 + 48) / 4]); + + bc_a.val[0] = vld1q_u32(&B[(256 + 0) / 4]); + bc_a.val[1] = vld1q_u32(&B[(256 + 16) / 4]); + bc_a.val[2] = vld1q_u32(&B[(256 + 32) / 4]); + bc_a.val[3] = vld1q_u32(&B[(256 + 48) / 4]); + bc_b.val[0] = vld1q_u32(&B[(256 + 64 + 0) / 4]); + bc_b.val[1] = vld1q_u32(&B[(256 + 64 + 16) / 4]); + bc_b.val[2] = vld1q_u32(&B[(256 + 64 + 32) / 4]); + bc_b.val[3] = vld1q_u32(&B[(256 + 64 + 48) / 4]); + + // prep + + vst1q_u32(&V[( 0) / 4], ba_a.val[0]); + vst1q_u32(&V[(16) / 4], ba_a.val[1]); + vst1q_u32(&V[(32) / 4], ba_a.val[2]); + vst1q_u32(&V[(48) / 4], ba_a.val[3]); + vst1q_u32(&V[(64) / 4], ba_b.val[0]); + vst1q_u32(&V[(80) / 4], ba_b.val[1]); + vst1q_u32(&V[(96) / 4], ba_b.val[2]); + vst1q_u32(&V[(112) / 4], ba_b.val[3]); + + vst1q_u32(&V[(128 + 0) / 4], bb_a.val[0]); + vst1q_u32(&V[(128 + 16) / 4], bb_a.val[1]); + vst1q_u32(&V[(128 + 32) / 4], bb_a.val[2]); + vst1q_u32(&V[(128 + 48) / 4], bb_a.val[3]); + vst1q_u32(&V[(128 + 64) / 4], bb_b.val[0]); + vst1q_u32(&V[(128 + 80) / 4], bb_b.val[1]); + vst1q_u32(&V[(128 + 96) / 4], bb_b.val[2]); + vst1q_u32(&V[(128 + 112) / 4], bb_b.val[3]); + + vst1q_u32(&V[(256 + 0) / 4], bc_a.val[0]); + vst1q_u32(&V[(256 + 16) / 4], bc_a.val[1]); + vst1q_u32(&V[(256 + 32) / 4], bc_a.val[2]); + vst1q_u32(&V[(256 + 48) / 4], bc_a.val[3]); + vst1q_u32(&V[(256 + 64) / 4], bc_b.val[0]); + vst1q_u32(&V[(256 + 80) / 4], bc_b.val[1]); + vst1q_u32(&V[(256 + 96) / 4], bc_b.val[2]); + vst1q_u32(&V[(256 + 112) / 4],bc_b.val[3]); + + V += 96; + + for (int n = 0; n < N; n++) + { + // loop 1 part a + q_a.val[0] = veorq_u32(ba_b.val[0], ba_a.val[0]); + q_a.val[1] = veorq_u32(ba_b.val[1], ba_a.val[1]); + q_a.val[2] = veorq_u32(ba_b.val[2], ba_a.val[2]); + q_a.val[3] = veorq_u32(ba_b.val[3], ba_a.val[3]); + + q_b.val[0] = veorq_u32(bb_b.val[0], bb_a.val[0]); + q_b.val[1] = veorq_u32(bb_b.val[1], bb_a.val[1]); + q_b.val[2] = veorq_u32(bb_b.val[2], bb_a.val[2]); + q_b.val[3] = veorq_u32(bb_b.val[3], bb_a.val[3]); + + q_c.val[0] = veorq_u32(bc_b.val[0], bc_a.val[0]); + q_c.val[1] = veorq_u32(bc_b.val[1], bc_a.val[1]); + q_c.val[2] = veorq_u32(bc_b.val[2], bc_a.val[2]); + q_c.val[3] = veorq_u32(bc_b.val[3], bc_a.val[3]); + + ba_a = q_a; + bb_a = q_b; + bc_a = q_c; + + for (int i = 0; i < 4; i ++) + { + q_tmp.val[0] = vaddq_u32(q_a.val[0], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 7); + q_tmp.val[2] = vaddq_u32(q_b.val[0], q_b.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 25); + q_a.val[3] = veorq_u32(q_tmp.val[1], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 7); + q_tmp.val[3] = vaddq_u32(q_c.val[0], q_c.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 25); + q_b.val[3] = veorq_u32(q_tmp.val[1], q_b.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 7); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 25); + q_c.val[3] = veorq_u32(q_tmp.val[1], q_c.val[3]); + + q_tmp.val[0] = vaddq_u32(q_a.val[3], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 9); + q_tmp.val[2] = vaddq_u32(q_b.val[3], q_b.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 23); + q_a.val[2] = veorq_u32(q_tmp.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 9); + q_tmp.val[3] = vaddq_u32(q_c.val[3], q_c.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 23); + q_b.val[2] = veorq_u32(q_tmp.val[1], q_b.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 9); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 23); + q_c.val[2] = veorq_u32(q_tmp.val[1], q_c.val[2]); + + q_tmp.val[0] = vaddq_u32(q_a.val[2], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 13); + q_tmp.val[2] = vaddq_u32(q_b.val[2], q_b.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 19); + q_a.val[1] = veorq_u32(q_tmp.val[1], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 13); + q_tmp.val[3] = vaddq_u32(q_c.val[2], q_c.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 19); + q_b.val[1] = veorq_u32(q_tmp.val[1], q_b.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 13); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 19); + q_c.val[1] = veorq_u32(q_tmp.val[1], q_c.val[1]); + + q_a.val[3] = vextq_u32(q_a.val[3], q_a.val[3], 3); + q_b.val[3] = vextq_u32(q_b.val[3], q_b.val[3], 3); + q_c.val[3] = vextq_u32(q_c.val[3], q_c.val[3], 3); + + q_tmp.val[0] = vaddq_u32(q_a.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 18); + q_tmp.val[2] = vaddq_u32(q_b.val[1], q_b.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 14); + q_a.val[0] = veorq_u32(q_tmp.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 18); + q_tmp.val[3] = vaddq_u32(q_c.val[1], q_c.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 14); + q_b.val[0] = veorq_u32(q_tmp.val[1], q_b.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 18); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 14); + q_c.val[0] = veorq_u32(q_tmp.val[1], q_c.val[0]); + + q_a.val[2] = vextq_u32(q_a.val[2], q_a.val[2], 2); + q_b.val[2] = vextq_u32(q_b.val[2], q_b.val[2], 2); + q_c.val[2] = vextq_u32(q_c.val[2], q_c.val[2], 2); + + q_tmp.val[0] = vaddq_u32(q_a.val[0], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 7); + q_tmp.val[2] = vaddq_u32(q_b.val[0], q_b.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 25); + q_a.val[1] = vextq_u32(q_a.val[1], q_a.val[1], 1); + q_a.val[1] = veorq_u32(q_tmp.val[1], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 7); + q_tmp.val[3] = vaddq_u32(q_c.val[0], q_c.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 25); + q_b.val[1] = vextq_u32(q_b.val[1], q_b.val[1], 1); + q_b.val[1] = veorq_u32(q_tmp.val[1], q_b.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 7); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 25); + q_c.val[1] = vextq_u32(q_c.val[1], q_c.val[1], 1); + q_c.val[1] = veorq_u32(q_tmp.val[1], q_c.val[1]); + + q_tmp.val[0] = vaddq_u32(q_a.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 9); + q_tmp.val[2] = vaddq_u32(q_b.val[1], q_b.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 23); + q_a.val[2] = veorq_u32(q_tmp.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 9); + q_tmp.val[3] = vaddq_u32(q_c.val[1], q_c.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 23); + q_b.val[2] = veorq_u32(q_tmp.val[1], q_b.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 9); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 23); + q_c.val[2] = veorq_u32(q_tmp.val[1], q_c.val[2]); + + q_tmp.val[0] = vaddq_u32(q_a.val[2], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 13); + q_tmp.val[2] = vaddq_u32(q_b.val[2], q_b.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 19); + q_a.val[3] = veorq_u32(q_tmp.val[1], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 13); + q_tmp.val[3] = vaddq_u32(q_c.val[2], q_c.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 19); + q_b.val[3] = veorq_u32(q_tmp.val[1], q_b.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 13); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 19); + q_c.val[3] = veorq_u32(q_tmp.val[1], q_c.val[3]); + q_a.val[1] = vextq_u32(q_a.val[1], q_a.val[1], 3); + q_b.val[1] = vextq_u32(q_b.val[1], q_b.val[1], 3); + q_c.val[1] = vextq_u32(q_c.val[1], q_c.val[1], 3); + + q_tmp.val[0] = vaddq_u32(q_a.val[3], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 18); + q_tmp.val[2] = vaddq_u32(q_b.val[3], q_b.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 14); + q_a.val[2] = vextq_u32(q_a.val[2], q_a.val[2], 2); + q_b.val[2] = vextq_u32(q_b.val[2], q_b.val[2], 2); + q_a.val[0] = veorq_u32(q_tmp.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 18); + q_tmp.val[3] = vaddq_u32(q_c.val[3], q_c.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 14); + q_c.val[2] = vextq_u32(q_c.val[2], q_c.val[2], 2); + q_b.val[3] = vextq_u32(q_b.val[3], q_b.val[3], 1); + q_b.val[0] = veorq_u32(q_tmp.val[1], q_b.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 18); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 14); + q_a.val[3] = vextq_u32(q_a.val[3], q_a.val[3], 1); + q_c.val[3] = vextq_u32(q_c.val[3], q_c.val[3], 1); + q_c.val[0] = veorq_u32(q_tmp.val[1], q_c.val[0]); + } + ba_a.val[0] = vaddq_u32(ba_a.val[0], q_a.val[0]); + ba_a.val[1] = vaddq_u32(ba_a.val[1], q_a.val[1]); + ba_a.val[2] = vaddq_u32(ba_a.val[2], q_a.val[2]); + ba_a.val[3] = vaddq_u32(ba_a.val[3], q_a.val[3]); + + q_a = ba_a; + + bb_a.val[0] = vaddq_u32(bb_a.val[0], q_b.val[0]); + bb_a.val[1] = vaddq_u32(bb_a.val[1], q_b.val[1]); + bb_a.val[2] = vaddq_u32(bb_a.val[2], q_b.val[2]); + bb_a.val[3] = vaddq_u32(bb_a.val[3], q_b.val[3]); + + q_b = bb_a; + + bc_a.val[0] = vaddq_u32(bc_a.val[0], q_c.val[0]); + bc_a.val[1] = vaddq_u32(bc_a.val[1], q_c.val[1]); + bc_a.val[2] = vaddq_u32(bc_a.val[2], q_c.val[2]); + bc_a.val[3] = vaddq_u32(bc_a.val[3], q_c.val[3]); + + q_c = bc_a; + + for (int i = 0; i < 4; i++) + { + vst1q_u32(&V[ (i * 4) ], ba_a.val[i]); + vst1q_u32(&V[(32 + (i * 4))], bb_a.val[i]); + vst1q_u32(&V[(64 + (i * 4))], bc_a.val[i]); + } + + // loop 1 part b + + q_a.val[0] = veorq_u32(ba_b.val[0], q_a.val[0]); + q_a.val[1] = veorq_u32(ba_b.val[1], q_a.val[1]); + q_a.val[2] = veorq_u32(ba_b.val[2], q_a.val[2]); + q_a.val[3] = veorq_u32(ba_b.val[3], q_a.val[3]); + ba_b = q_a; + + q_b.val[0] = veorq_u32(bb_b.val[0], q_b.val[0]); + q_b.val[1] = veorq_u32(bb_b.val[1], q_b.val[1]); + q_b.val[2] = veorq_u32(bb_b.val[2], q_b.val[2]); + q_b.val[3] = veorq_u32(bb_b.val[3], q_b.val[3]); + bb_b = q_b; + + q_c.val[0] = veorq_u32(bc_b.val[0], q_c.val[0]); + q_c.val[1] = veorq_u32(bc_b.val[1], q_c.val[1]); + q_c.val[2] = veorq_u32(bc_b.val[2], q_c.val[2]); + q_c.val[3] = veorq_u32(bc_b.val[3], q_c.val[3]); + bc_b = q_c; + + + for (int i = 0; i < 4; i ++) + { + q_tmp.val[0] = vaddq_u32(q_a.val[0], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 7); + q_tmp.val[2] = vaddq_u32(q_b.val[0], q_b.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 25); + q_a.val[3] = veorq_u32(q_tmp.val[1], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 7); + q_tmp.val[3] = vaddq_u32(q_c.val[0], q_c.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 25); + q_b.val[3] = veorq_u32(q_tmp.val[1], q_b.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 7); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 25); + q_c.val[3] = veorq_u32(q_tmp.val[1], q_c.val[3]); + + q_tmp.val[0] = vaddq_u32(q_a.val[3], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 9); + q_tmp.val[2] = vaddq_u32(q_b.val[3], q_b.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 23); + q_a.val[2] = veorq_u32(q_tmp.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 9); + q_tmp.val[3] = vaddq_u32(q_c.val[3], q_c.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 23); + q_b.val[2] = veorq_u32(q_tmp.val[1], q_b.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 9); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 23); + q_c.val[2] = veorq_u32(q_tmp.val[1], q_c.val[2]); + + q_tmp.val[0] = vaddq_u32(q_a.val[2], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 13); + q_tmp.val[2] = vaddq_u32(q_b.val[2], q_b.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 19); + q_a.val[1] = veorq_u32(q_tmp.val[1], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 13); + q_tmp.val[3] = vaddq_u32(q_c.val[2], q_c.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 19); + q_b.val[1] = veorq_u32(q_tmp.val[1], q_b.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 13); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 19); + q_c.val[1] = veorq_u32(q_tmp.val[1], q_c.val[1]); + + q_a.val[3] = vextq_u32(q_a.val[3], q_a.val[3], 3); + q_b.val[3] = vextq_u32(q_b.val[3], q_b.val[3], 3); + q_c.val[3] = vextq_u32(q_c.val[3], q_c.val[3], 3); + + q_tmp.val[0] = vaddq_u32(q_a.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 18); + q_tmp.val[2] = vaddq_u32(q_b.val[1], q_b.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 14); + q_a.val[0] = veorq_u32(q_tmp.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 18); + q_tmp.val[3] = vaddq_u32(q_c.val[1], q_c.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 14); + q_b.val[0] = veorq_u32(q_tmp.val[1], q_b.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 18); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 14); + q_c.val[0] = veorq_u32(q_tmp.val[1], q_c.val[0]); + + q_a.val[2] = vextq_u32(q_a.val[2], q_a.val[2], 2); + q_b.val[2] = vextq_u32(q_b.val[2], q_b.val[2], 2); + q_c.val[2] = vextq_u32(q_c.val[2], q_c.val[2], 2); + + q_tmp.val[0] = vaddq_u32(q_a.val[0], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 7); + q_tmp.val[2] = vaddq_u32(q_b.val[0], q_b.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 25); + q_a.val[1] = vextq_u32(q_a.val[1], q_a.val[1], 1); + q_a.val[1] = veorq_u32(q_tmp.val[1], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 7); + q_tmp.val[3] = vaddq_u32(q_c.val[0], q_c.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 25); + q_b.val[1] = vextq_u32(q_b.val[1], q_b.val[1], 1); + q_b.val[1] = veorq_u32(q_tmp.val[1], q_b.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 7); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 25); + q_c.val[1] = vextq_u32(q_c.val[1], q_c.val[1], 1); + q_c.val[1] = veorq_u32(q_tmp.val[1], q_c.val[1]); + + q_tmp.val[0] = vaddq_u32(q_a.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 9); + q_tmp.val[2] = vaddq_u32(q_b.val[1], q_b.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 23); + q_a.val[2] = veorq_u32(q_tmp.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 9); + q_tmp.val[3] = vaddq_u32(q_c.val[1], q_c.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 23); + q_b.val[2] = veorq_u32(q_tmp.val[1], q_b.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 9); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 23); + q_c.val[2] = veorq_u32(q_tmp.val[1], q_c.val[2]); + + q_tmp.val[0] = vaddq_u32(q_a.val[2], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 13); + q_tmp.val[2] = vaddq_u32(q_b.val[2], q_b.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 19); + q_a.val[3] = veorq_u32(q_tmp.val[1], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 13); + q_tmp.val[3] = vaddq_u32(q_c.val[2], q_c.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 19); + q_b.val[3] = veorq_u32(q_tmp.val[1], q_b.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 13); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 19); + q_c.val[3] = veorq_u32(q_tmp.val[1], q_c.val[3]); + q_a.val[1] = vextq_u32(q_a.val[1], q_a.val[1], 3); + q_b.val[1] = vextq_u32(q_b.val[1], q_b.val[1], 3); + q_c.val[1] = vextq_u32(q_c.val[1], q_c.val[1], 3); + + q_tmp.val[0] = vaddq_u32(q_a.val[3], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 18); + q_tmp.val[2] = vaddq_u32(q_b.val[3], q_b.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 14); + q_a.val[2] = vextq_u32(q_a.val[2], q_a.val[2], 2); + q_b.val[2] = vextq_u32(q_b.val[2], q_b.val[2], 2); + q_a.val[0] = veorq_u32(q_tmp.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 18); + q_tmp.val[3] = vaddq_u32(q_c.val[3], q_c.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 14); + q_c.val[2] = vextq_u32(q_c.val[2], q_c.val[2], 2); + q_b.val[3] = vextq_u32(q_b.val[3], q_b.val[3], 1); + q_b.val[0] = veorq_u32(q_tmp.val[1], q_b.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 18); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 14); + q_a.val[3] = vextq_u32(q_a.val[3], q_a.val[3], 1); + q_c.val[3] = vextq_u32(q_c.val[3], q_c.val[3], 1); + q_c.val[0] = veorq_u32(q_tmp.val[1], q_c.val[0]); + } + + ba_b.val[0] = vaddq_u32(q_a.val[0], ba_b.val[0]); + ba_b.val[1] = vaddq_u32(q_a.val[1], ba_b.val[1]); + ba_b.val[2] = vaddq_u32(q_a.val[2], ba_b.val[2]); + ba_b.val[3] = vaddq_u32(q_a.val[3], ba_b.val[3]); + bb_b.val[0] = vaddq_u32(q_b.val[0], bb_b.val[0]); + bb_b.val[1] = vaddq_u32(q_b.val[1], bb_b.val[1]); + bb_b.val[2] = vaddq_u32(q_b.val[2], bb_b.val[2]); + bb_b.val[3] = vaddq_u32(q_b.val[3], bb_b.val[3]); + bc_b.val[0] = vaddq_u32(q_c.val[0], bc_b.val[0]); + bc_b.val[1] = vaddq_u32(q_c.val[1], bc_b.val[1]); + bc_b.val[2] = vaddq_u32(q_c.val[2], bc_b.val[2]); + bc_b.val[3] = vaddq_u32(q_c.val[3], bc_b.val[3]); + for (int i = 0; i < 4; i++) + { + vst1q_u32(&V[( 16 + (i * 4))], ba_b.val[i]); + vst1q_u32(&V[(32 + 16 + (i * 4))], bb_b.val[i]); + vst1q_u32(&V[(64 + 16 + (i * 4))], bc_b.val[i]); + } + V += 96; + } + V = W; + + // loop 2 + + uint32x4x4_t x; + + uint32_t one = 32 * (3 * (ba_b.val[0][0] & (N - 1)) + 0); + uint32_t two = 32 * (3 * (bb_b.val[0][0] & (N - 1)) + 1); + uint32_t three = 32 * (3 * (bc_b.val[0][0] & (N - 1)) + 2); + x.val[0] = vld1q_u32(&W[one + 0]); + x.val[1] = vld1q_u32(&W[one + 4]); + x.val[2] = vld1q_u32(&W[one + 8]); + x.val[3] = vld1q_u32(&W[one + 12]); + + for (int n = 0; n < N; n++) + { + // loop 2 part a + + ba_a.val[0] = veorq_u32(ba_a.val[0], x.val[0]); + x.val[0] = vld1q_u32(&W[one + 16 + 0]); + ba_a.val[1] = veorq_u32(ba_a.val[1], x.val[1]); + x.val[1] = vld1q_u32(&W[one + 16 + 4]); + ba_a.val[2] = veorq_u32(ba_a.val[2], x.val[2]); + x.val[2] = vld1q_u32(&W[one + 16 + 8]); + ba_a.val[3] = veorq_u32(ba_a.val[3], x.val[3]); + + ba_b.val[0] = veorq_u32(ba_b.val[0], x.val[0]); + ba_b.val[1] = veorq_u32(ba_b.val[1], x.val[1]); + x.val[3] = vld1q_u32(&W[one + 16 + 12]); + ba_b.val[2] = veorq_u32(ba_b.val[2], x.val[2]); + ba_b.val[3] = veorq_u32(ba_b.val[3], x.val[3]); + x.val[0] = vld1q_u32(&W[two + 0]); + q_a.val[0] = veorq_u32(ba_b.val[0], ba_a.val[0]); + q_a.val[1] = veorq_u32(ba_b.val[1], ba_a.val[1]); + x.val[1] = vld1q_u32(&W[two + 4]); + q_a.val[2] = veorq_u32(ba_b.val[2], ba_a.val[2]); + q_a.val[3] = veorq_u32(ba_b.val[3], ba_a.val[3]); + x.val[2] = vld1q_u32(&W[two + 8]); + ba_a = q_a; + + x.val[3] = vld1q_u32(&W[two + 12]); + + bb_a.val[0] = veorq_u32(bb_a.val[0], x.val[0]); + x.val[0] = vld1q_u32(&W[two + 16 + 0]); + bb_a.val[1] = veorq_u32(bb_a.val[1], x.val[1]); + x.val[1] = vld1q_u32(&W[two + 16 + 4]); + bb_a.val[2] = veorq_u32(bb_a.val[2], x.val[2]); + x.val[2] = vld1q_u32(&W[two + 16 + 8]); + bb_a.val[3] = veorq_u32(bb_a.val[3], x.val[3]); + bb_b.val[0] = veorq_u32(bb_b.val[0], x.val[0]); + x.val[3] = vld1q_u32(&W[two + 16 + 12]); + bb_b.val[1] = veorq_u32(bb_b.val[1], x.val[1]); + x.val[0] = vld1q_u32(&W[three + 0]); + bb_b.val[2] = veorq_u32(bb_b.val[2], x.val[2]); + bb_b.val[3] = veorq_u32(bb_b.val[3], x.val[3]); + x.val[1] = vld1q_u32(&W[three + 4]); + q_b.val[0] = veorq_u32(bb_b.val[0], bb_a.val[0]); + q_b.val[1] = veorq_u32(bb_b.val[1], bb_a.val[1]); + x.val[2] = vld1q_u32(&W[three + 8]); + q_b.val[2] = veorq_u32(bb_b.val[2], bb_a.val[2]); + q_b.val[3] = veorq_u32(bb_b.val[3], bb_a.val[3]); + x.val[3] = vld1q_u32(&W[three + 12]); + bb_a = q_b; + + bc_a.val[0] = veorq_u32(bc_a.val[0], x.val[0]); + x.val[0] = vld1q_u32(&W[three + 16 + 0]); + bc_a.val[1] = veorq_u32(bc_a.val[1], x.val[1]); + x.val[1] = vld1q_u32(&W[three + 16 + 4]); + bc_a.val[2] = veorq_u32(bc_a.val[2], x.val[2]); + x.val[2] = vld1q_u32(&W[three + 16 + 8]); + bc_a.val[3] = veorq_u32(bc_a.val[3], x.val[3]); + bc_b.val[0] = veorq_u32(bc_b.val[0], x.val[0]); + x.val[3] = vld1q_u32(&W[three + 16 + 12]); + bc_b.val[1] = veorq_u32(bc_b.val[1], x.val[1]); + bc_b.val[2] = veorq_u32(bc_b.val[2], x.val[2]); + bc_b.val[3] = veorq_u32(bc_b.val[3], x.val[3]); + q_c.val[0] = veorq_u32(bc_b.val[0], bc_a.val[0]); + q_c.val[1] = veorq_u32(bc_b.val[1], bc_a.val[1]); + q_c.val[2] = veorq_u32(bc_b.val[2], bc_a.val[2]); + q_c.val[3] = veorq_u32(bc_b.val[3], bc_a.val[3]); + bc_a = q_c; + + for (int i = 0; i < 4; i++) + { + q_tmp.val[0] = vaddq_u32(q_a.val[0], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 7); + q_tmp.val[2] = vaddq_u32(q_b.val[0], q_b.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 25); + q_a.val[3] = veorq_u32(q_tmp.val[1], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 7); + q_tmp.val[3] = vaddq_u32(q_c.val[0], q_c.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 25); + q_b.val[3] = veorq_u32(q_tmp.val[1], q_b.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 7); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 25); + q_c.val[3] = veorq_u32(q_tmp.val[1], q_c.val[3]); + + q_tmp.val[0] = vaddq_u32(q_a.val[3], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 9); + q_tmp.val[2] = vaddq_u32(q_b.val[3], q_b.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 23); + q_a.val[2] = veorq_u32(q_tmp.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 9); + q_tmp.val[3] = vaddq_u32(q_c.val[3], q_c.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 23); + q_b.val[2] = veorq_u32(q_tmp.val[1], q_b.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 9); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 23); + q_c.val[2] = veorq_u32(q_tmp.val[1], q_c.val[2]); + + q_tmp.val[0] = vaddq_u32(q_a.val[2], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 13); + q_tmp.val[2] = vaddq_u32(q_b.val[2], q_b.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 19); + q_a.val[1] = veorq_u32(q_tmp.val[1], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 13); + q_tmp.val[3] = vaddq_u32(q_c.val[2], q_c.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 19); + q_b.val[1] = veorq_u32(q_tmp.val[1], q_b.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 13); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 19); + q_c.val[1] = veorq_u32(q_tmp.val[1], q_c.val[1]); + + q_a.val[3] = vextq_u32(q_a.val[3], q_a.val[3], 3); + q_b.val[3] = vextq_u32(q_b.val[3], q_b.val[3], 3); + q_c.val[3] = vextq_u32(q_c.val[3], q_c.val[3], 3); + + q_tmp.val[0] = vaddq_u32(q_a.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 18); + q_tmp.val[2] = vaddq_u32(q_b.val[1], q_b.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 14); + q_a.val[0] = veorq_u32(q_tmp.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 18); + q_tmp.val[3] = vaddq_u32(q_c.val[1], q_c.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 14); + q_b.val[0] = veorq_u32(q_tmp.val[1], q_b.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 18); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 14); + q_c.val[0] = veorq_u32(q_tmp.val[1], q_c.val[0]); + + q_a.val[2] = vextq_u32(q_a.val[2], q_a.val[2], 2); + q_b.val[2] = vextq_u32(q_b.val[2], q_b.val[2], 2); + q_c.val[2] = vextq_u32(q_c.val[2], q_c.val[2], 2); + + q_tmp.val[0] = vaddq_u32(q_a.val[0], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 7); + q_tmp.val[2] = vaddq_u32(q_b.val[0], q_b.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 25); + q_a.val[1] = vextq_u32(q_a.val[1], q_a.val[1], 1); + q_a.val[1] = veorq_u32(q_tmp.val[1], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 7); + q_tmp.val[3] = vaddq_u32(q_c.val[0], q_c.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 25); + q_b.val[1] = vextq_u32(q_b.val[1], q_b.val[1], 1); + q_b.val[1] = veorq_u32(q_tmp.val[1], q_b.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 7); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 25); + q_c.val[1] = vextq_u32(q_c.val[1], q_c.val[1], 1); + q_c.val[1] = veorq_u32(q_tmp.val[1], q_c.val[1]); + + q_tmp.val[0] = vaddq_u32(q_a.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 9); + q_tmp.val[2] = vaddq_u32(q_b.val[1], q_b.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 23); + q_a.val[2] = veorq_u32(q_tmp.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 9); + q_tmp.val[3] = vaddq_u32(q_c.val[1], q_c.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 23); + q_b.val[2] = veorq_u32(q_tmp.val[1], q_b.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 9); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 23); + q_c.val[2] = veorq_u32(q_tmp.val[1], q_c.val[2]); + + q_tmp.val[0] = vaddq_u32(q_a.val[2], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 13); + q_tmp.val[2] = vaddq_u32(q_b.val[2], q_b.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 19); + q_a.val[3] = veorq_u32(q_tmp.val[1], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 13); + q_tmp.val[3] = vaddq_u32(q_c.val[2], q_c.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 19); + q_b.val[3] = veorq_u32(q_tmp.val[1], q_b.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 13); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 19); + q_c.val[3] = veorq_u32(q_tmp.val[1], q_c.val[3]); + q_a.val[1] = vextq_u32(q_a.val[1], q_a.val[1], 3); + q_b.val[1] = vextq_u32(q_b.val[1], q_b.val[1], 3); + q_c.val[1] = vextq_u32(q_c.val[1], q_c.val[1], 3); + + q_tmp.val[0] = vaddq_u32(q_a.val[3], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 18); + q_tmp.val[2] = vaddq_u32(q_b.val[3], q_b.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 14); + q_a.val[2] = vextq_u32(q_a.val[2], q_a.val[2], 2); + q_b.val[2] = vextq_u32(q_b.val[2], q_b.val[2], 2); + q_a.val[0] = veorq_u32(q_tmp.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 18); + q_tmp.val[3] = vaddq_u32(q_c.val[3], q_c.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 14); + q_c.val[2] = vextq_u32(q_c.val[2], q_c.val[2], 2); + q_b.val[3] = vextq_u32(q_b.val[3], q_b.val[3], 1); + q_b.val[0] = veorq_u32(q_tmp.val[1], q_b.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 18); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 14); + q_a.val[3] = vextq_u32(q_a.val[3], q_a.val[3], 1); + q_c.val[3] = vextq_u32(q_c.val[3], q_c.val[3], 1); + q_c.val[0] = veorq_u32(q_tmp.val[1], q_c.val[0]); + } + ba_a.val[0] = vaddq_u32(ba_a.val[0], q_a.val[0]); + ba_a.val[1] = vaddq_u32(ba_a.val[1], q_a.val[1]); + ba_a.val[2] = vaddq_u32(ba_a.val[2], q_a.val[2]); + ba_a.val[3] = vaddq_u32(ba_a.val[3], q_a.val[3]); + + q_a = ba_a; + + bb_a.val[0] = vaddq_u32(bb_a.val[0], q_b.val[0]); + bb_a.val[1] = vaddq_u32(bb_a.val[1], q_b.val[1]); + bb_a.val[2] = vaddq_u32(bb_a.val[2], q_b.val[2]); + bb_a.val[3] = vaddq_u32(bb_a.val[3], q_b.val[3]); + q_b = bb_a; + + bc_a.val[0] = vaddq_u32(bc_a.val[0], q_c.val[0]); + bc_a.val[1] = vaddq_u32(bc_a.val[1], q_c.val[1]); + bc_a.val[2] = vaddq_u32(bc_a.val[2], q_c.val[2]); + bc_a.val[3] = vaddq_u32(bc_a.val[3], q_c.val[3]); + q_c = bc_a; + + // loop 2 b + + q_a.val[0] = veorq_u32(ba_b.val[0], q_a.val[0]); + q_a.val[1] = veorq_u32(ba_b.val[1], q_a.val[1]); + q_a.val[2] = veorq_u32(ba_b.val[2], q_a.val[2]); + q_a.val[3] = veorq_u32(ba_b.val[3], q_a.val[3]); + ba_b = q_a; + + q_b.val[0] = veorq_u32(bb_b.val[0], q_b.val[0]); + q_b.val[1] = veorq_u32(bb_b.val[1], q_b.val[1]); + q_b.val[2] = veorq_u32(bb_b.val[2], q_b.val[2]); + q_b.val[3] = veorq_u32(bb_b.val[3], q_b.val[3]); + bb_b = q_b; + + q_c.val[0] = veorq_u32(bc_b.val[0], q_c.val[0]); + q_c.val[1] = veorq_u32(bc_b.val[1], q_c.val[1]); + q_c.val[2] = veorq_u32(bc_b.val[2], q_c.val[2]); + q_c.val[3] = veorq_u32(bc_b.val[3], q_c.val[3]); + bc_b = q_c; + + + for (int i = 0; i < 3; i++) + { + q_tmp.val[0] = vaddq_u32(q_a.val[0], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 7); + q_tmp.val[2] = vaddq_u32(q_b.val[0], q_b.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 25); + q_a.val[3] = veorq_u32(q_tmp.val[1], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 7); + q_tmp.val[3] = vaddq_u32(q_c.val[0], q_c.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 25); + q_b.val[3] = veorq_u32(q_tmp.val[1], q_b.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 7); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 25); + q_c.val[3] = veorq_u32(q_tmp.val[1], q_c.val[3]); + + q_tmp.val[0] = vaddq_u32(q_a.val[3], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 9); + q_tmp.val[2] = vaddq_u32(q_b.val[3], q_b.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 23); + q_a.val[2] = veorq_u32(q_tmp.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 9); + q_tmp.val[3] = vaddq_u32(q_c.val[3], q_c.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 23); + q_b.val[2] = veorq_u32(q_tmp.val[1], q_b.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 9); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 23); + q_c.val[2] = veorq_u32(q_tmp.val[1], q_c.val[2]); + + q_tmp.val[0] = vaddq_u32(q_a.val[2], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 13); + q_tmp.val[2] = vaddq_u32(q_b.val[2], q_b.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 19); + q_a.val[1] = veorq_u32(q_tmp.val[1], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 13); + q_tmp.val[3] = vaddq_u32(q_c.val[2], q_c.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 19); + q_b.val[1] = veorq_u32(q_tmp.val[1], q_b.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 13); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 19); + q_c.val[1] = veorq_u32(q_tmp.val[1], q_c.val[1]); + + q_a.val[3] = vextq_u32(q_a.val[3], q_a.val[3], 3); + q_b.val[3] = vextq_u32(q_b.val[3], q_b.val[3], 3); + q_c.val[3] = vextq_u32(q_c.val[3], q_c.val[3], 3); + + q_tmp.val[0] = vaddq_u32(q_a.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 18); + q_tmp.val[2] = vaddq_u32(q_b.val[1], q_b.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 14); + q_a.val[0] = veorq_u32(q_tmp.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 18); + q_tmp.val[3] = vaddq_u32(q_c.val[1], q_c.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 14); + q_b.val[0] = veorq_u32(q_tmp.val[1], q_b.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 18); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 14); + q_c.val[0] = veorq_u32(q_tmp.val[1], q_c.val[0]); + + q_a.val[2] = vextq_u32(q_a.val[2], q_a.val[2], 2); + q_b.val[2] = vextq_u32(q_b.val[2], q_b.val[2], 2); + q_c.val[2] = vextq_u32(q_c.val[2], q_c.val[2], 2); + + q_tmp.val[0] = vaddq_u32(q_a.val[0], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 7); + q_tmp.val[2] = vaddq_u32(q_b.val[0], q_b.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 25); + q_a.val[1] = vextq_u32(q_a.val[1], q_a.val[1], 1); + q_a.val[1] = veorq_u32(q_tmp.val[1], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 7); + q_tmp.val[3] = vaddq_u32(q_c.val[0], q_c.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 25); + q_b.val[1] = vextq_u32(q_b.val[1], q_b.val[1], 1); + q_b.val[1] = veorq_u32(q_tmp.val[1], q_b.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 7); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 25); + q_c.val[1] = vextq_u32(q_c.val[1], q_c.val[1], 1); + q_c.val[1] = veorq_u32(q_tmp.val[1], q_c.val[1]); + + q_tmp.val[0] = vaddq_u32(q_a.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 9); + q_tmp.val[2] = vaddq_u32(q_b.val[1], q_b.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 23); + q_a.val[2] = veorq_u32(q_tmp.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 9); + q_tmp.val[3] = vaddq_u32(q_c.val[1], q_c.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 23); + q_b.val[2] = veorq_u32(q_tmp.val[1], q_b.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 9); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 23); + q_c.val[2] = veorq_u32(q_tmp.val[1], q_c.val[2]); + + q_tmp.val[0] = vaddq_u32(q_a.val[2], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 13); + q_tmp.val[2] = vaddq_u32(q_b.val[2], q_b.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 19); + q_a.val[3] = veorq_u32(q_tmp.val[1], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 13); + q_tmp.val[3] = vaddq_u32(q_c.val[2], q_c.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 19); + q_b.val[3] = veorq_u32(q_tmp.val[1], q_b.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 13); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 19); + q_c.val[3] = veorq_u32(q_tmp.val[1], q_c.val[3]); + q_a.val[1] = vextq_u32(q_a.val[1], q_a.val[1], 3); + q_b.val[1] = vextq_u32(q_b.val[1], q_b.val[1], 3); + q_c.val[1] = vextq_u32(q_c.val[1], q_c.val[1], 3); + + q_tmp.val[0] = vaddq_u32(q_a.val[3], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 18); + q_tmp.val[2] = vaddq_u32(q_b.val[3], q_b.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 14); + q_a.val[2] = vextq_u32(q_a.val[2], q_a.val[2], 2); + q_b.val[2] = vextq_u32(q_b.val[2], q_b.val[2], 2); + q_a.val[0] = veorq_u32(q_tmp.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 18); + q_tmp.val[3] = vaddq_u32(q_c.val[3], q_c.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 14); + q_c.val[2] = vextq_u32(q_c.val[2], q_c.val[2], 2); + q_b.val[3] = vextq_u32(q_b.val[3], q_b.val[3], 1); + q_b.val[0] = veorq_u32(q_tmp.val[1], q_b.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 18); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 14); + q_a.val[3] = vextq_u32(q_a.val[3], q_a.val[3], 1); + q_c.val[3] = vextq_u32(q_c.val[3], q_c.val[3], 1); + q_c.val[0] = veorq_u32(q_tmp.val[1], q_c.val[0]); + } + { + //1 + q_tmp.val[0] = vaddq_u32(q_a.val[0], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 7); + q_tmp.val[2] = vaddq_u32(q_b.val[0], q_b.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 25); + q_a.val[3] = veorq_u32(q_tmp.val[1], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 7); + q_tmp.val[3] = vaddq_u32(q_c.val[0], q_c.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 25); + q_b.val[3] = veorq_u32(q_tmp.val[1], q_b.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 7); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 25); + q_c.val[3] = veorq_u32(q_tmp.val[1], q_c.val[3]); + //2 + q_tmp.val[0] = vaddq_u32(q_a.val[3], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 9); + q_tmp.val[2] = vaddq_u32(q_b.val[3], q_b.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 23); + q_a.val[2] = veorq_u32(q_tmp.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 9); + q_tmp.val[3] = vaddq_u32(q_c.val[3], q_c.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 23); + q_b.val[2] = veorq_u32(q_tmp.val[1], q_b.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 9); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 23); + q_c.val[2] = veorq_u32(q_tmp.val[1], q_c.val[2]); + //3 + q_tmp.val[0] = vaddq_u32(q_a.val[2], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 13); + q_tmp.val[2] = vaddq_u32(q_b.val[2], q_b.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 19); + q_a.val[1] = veorq_u32(q_tmp.val[1], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 13); + q_tmp.val[3] = vaddq_u32(q_c.val[2], q_c.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 19); + q_b.val[1] = veorq_u32(q_tmp.val[1], q_b.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 13); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 19); + q_c.val[1] = veorq_u32(q_tmp.val[1], q_c.val[1]); + + q_a.val[3] = vextq_u32(q_a.val[3], q_a.val[3], 3); + q_b.val[3] = vextq_u32(q_b.val[3], q_b.val[3], 3); + q_c.val[3] = vextq_u32(q_c.val[3], q_c.val[3], 3); + //4 + q_tmp.val[0] = vaddq_u32(q_a.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 18); + q_tmp.val[2] = vaddq_u32(q_b.val[1], q_b.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 14); + q_a.val[0] = veorq_u32(q_tmp.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 18); + q_tmp.val[3] = vaddq_u32(q_c.val[1], q_c.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 14); + q_b.val[0] = veorq_u32(q_tmp.val[1], q_b.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 18); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 14); + q_c.val[0] = veorq_u32(q_tmp.val[1], q_c.val[0]); + + q_a.val[2] = vextq_u32(q_a.val[2], q_a.val[2], 2); + q_b.val[2] = vextq_u32(q_b.val[2], q_b.val[2], 2); + q_c.val[2] = vextq_u32(q_c.val[2], q_c.val[2], 2); + //5 + q_tmp.val[0] = vaddq_u32(q_a.val[0], q_a.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 7); + q_tmp.val[2] = vaddq_u32(q_b.val[0], q_b.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 25); + q_a.val[1] = vextq_u32(q_a.val[1], q_a.val[1], 1); + q_a.val[1] = veorq_u32(q_tmp.val[1], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 7); + q_tmp.val[3] = vaddq_u32(q_c.val[0], q_c.val[3]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 25); + q_b.val[1] = vextq_u32(q_b.val[1], q_b.val[1], 1); + q_b.val[1] = veorq_u32(q_tmp.val[1], q_b.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 7); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 25); + q_c.val[1] = vextq_u32(q_c.val[1], q_c.val[1], 1); + q_c.val[1] = veorq_u32(q_tmp.val[1], q_c.val[1]); + //6 + q_tmp.val[0] = vaddq_u32(q_a.val[1], q_a.val[0]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 9); + q_tmp.val[2] = vaddq_u32(q_b.val[1], q_b.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 23); + q_a.val[2] = veorq_u32(q_tmp.val[1], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 9); + q_tmp.val[3] = vaddq_u32(q_c.val[1], q_c.val[0]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 23); + q_b.val[2] = veorq_u32(q_tmp.val[1], q_b.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 9); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 23); + q_c.val[2] = veorq_u32(q_tmp.val[1], q_c.val[2]); + //7 + q_tmp.val[0] = vaddq_u32(q_a.val[2], q_a.val[1]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 13); + q_tmp.val[2] = vaddq_u32(q_b.val[2], q_b.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 19); + q_a.val[3] = veorq_u32(q_tmp.val[1], q_a.val[3]); + q_a.val[1] = vextq_u32(q_a.val[1], q_a.val[1], 3); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 13); + q_tmp.val[3] = vaddq_u32(q_c.val[2], q_c.val[1]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 19); + q_b.val[3] = veorq_u32(q_tmp.val[1], q_b.val[3]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 13); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 19); + q_c.val[3] = veorq_u32(q_tmp.val[1], q_c.val[3]); + q_b.val[1] = vextq_u32(q_b.val[1], q_b.val[1], 3); + q_c.val[1] = vextq_u32(q_c.val[1], q_c.val[1], 3); + + //8 + q_tmp.val[0] = vaddq_u32(q_a.val[3], q_a.val[2]); + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[0], 18); + q_tmp.val[2] = vaddq_u32(q_b.val[3], q_b.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[0], 14); + q_a.val[0] = veorq_u32(q_tmp.val[1], q_a.val[0]); + ba_b.val[0] = vaddq_u32(q_a.val[0], ba_b.val[0]); + one = 32 * (3 * (ba_b.val[0][0] & (N - 1)) + 0); + __builtin_prefetch(&W[one + 0]); + __builtin_prefetch(&W[one + 8]); + __builtin_prefetch(&W[one + 16]); + __builtin_prefetch(&W[one + 24]); + + q_a.val[2] = vextq_u32(q_a.val[2], q_a.val[2], 2); + q_b.val[2] = vextq_u32(q_b.val[2], q_b.val[2], 2); + + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[2], 18); + q_tmp.val[3] = vaddq_u32(q_c.val[3], q_c.val[2]); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[2], 14); + q_c.val[2] = vextq_u32(q_c.val[2], q_c.val[2], 2); + q_b.val[3] = vextq_u32(q_b.val[3], q_b.val[3], 1); + q_b.val[0] = veorq_u32(q_tmp.val[1], q_b.val[0]); + bb_b.val[0] = vaddq_u32(q_b.val[0], bb_b.val[0]); + two = 32 * (3 * (bb_b.val[0][0] & (N - 1)) + 1); + __builtin_prefetch(&W[two + 0]); + __builtin_prefetch(&W[two + 8]); + __builtin_prefetch(&W[two + 16]); + __builtin_prefetch(&W[two + 24]); + + q_tmp.val[1] = vshlq_n_u32(q_tmp.val[3], 18); + q_tmp.val[1] = vsriq_n_u32(q_tmp.val[1], q_tmp.val[3], 14); + q_a.val[3] = vextq_u32(q_a.val[3], q_a.val[3], 1); + q_c.val[3] = vextq_u32(q_c.val[3], q_c.val[3], 1); + q_c.val[0] = veorq_u32(q_tmp.val[1], q_c.val[0]); + bc_b.val[0] = vaddq_u32(q_c.val[0], bc_b.val[0]); + three = 32 * (3 * (bc_b.val[0][0] & (N - 1)) + 2); + __builtin_prefetch(&W[three + 0]); + __builtin_prefetch(&W[three + 8]); + __builtin_prefetch(&W[three + 16]); + __builtin_prefetch(&W[three + 24]); + } + + x.val[0] = vld1q_u32(&W[one + 0]); + ba_b.val[1] = vaddq_u32(q_a.val[1], ba_b.val[1]); + ba_b.val[2] = vaddq_u32(q_a.val[2], ba_b.val[2]); + ba_b.val[3] = vaddq_u32(q_a.val[3], ba_b.val[3]); + x.val[1] = vld1q_u32(&W[one + 4]); + bb_b.val[1] = vaddq_u32(q_b.val[1], bb_b.val[1]); + bb_b.val[2] = vaddq_u32(q_b.val[2], bb_b.val[2]); + bb_b.val[3] = vaddq_u32(q_b.val[3], bb_b.val[3]); + x.val[2] = vld1q_u32(&W[one + 8]); + bc_b.val[1] = vaddq_u32(q_c.val[1], bc_b.val[1]); + bc_b.val[2] = vaddq_u32(q_c.val[2], bc_b.val[2]); + bc_b.val[3] = vaddq_u32(q_c.val[3], bc_b.val[3]); + x.val[3] = vld1q_u32(&W[one + 12]); + } + + vst1q_u32(&B[0], ba_a.val[0]); + vst1q_u32(&B[4], ba_a.val[1]); + vst1q_u32(&B[8], ba_a.val[2]); + vst1q_u32(&B[12], ba_a.val[3]); + vst1q_u32(&B[16 + 0], ba_b.val[0]); + vst1q_u32(&B[16 + 4], ba_b.val[1]); + vst1q_u32(&B[16 + 8], ba_b.val[2]); + vst1q_u32(&B[16 + 12], ba_b.val[3]); + + vst1q_u32(&B[32 + 0], bb_a.val[0]); + vst1q_u32(&B[32 + 4], bb_a.val[1]); + vst1q_u32(&B[32 + 8], bb_a.val[2]); + vst1q_u32(&B[32 + 12], bb_a.val[3]); + vst1q_u32(&B[32 + 16 + 0], bb_b.val[0]); + vst1q_u32(&B[32 + 16 + 4], bb_b.val[1]); + vst1q_u32(&B[32 + 16 + 8], bb_b.val[2]); + vst1q_u32(&B[32 + 16 + 12], bb_b.val[3]); + + vst1q_u32(&B[64 + 0], bc_a.val[0]); + vst1q_u32(&B[64 + 4], bc_a.val[1]); + vst1q_u32(&B[64 + 8], bc_a.val[2]); + vst1q_u32(&B[64 + 12], bc_a.val[3]); + vst1q_u32(&B[64 + 16 + 0], bc_b.val[0]); + vst1q_u32(&B[64 + 16 + 4], bc_b.val[1]); + vst1q_u32(&B[64 + 16 + 8], bc_b.val[2]); + vst1q_u32(&B[64 + 16 + 12], bc_b.val[3]); + + scrypt_shuffle(&B[0 + 0]); + scrypt_shuffle(&B[16 + 0]); + scrypt_shuffle(&B[0 + 32]); + scrypt_shuffle(&B[16 + 32]); + scrypt_shuffle(&B[0 + 64]); + scrypt_shuffle(&B[16 + 64]); +} +#endif diff --git a/src/crypto/scrypt-x64.S b/src/crypto/scrypt-x64.S new file mode 100644 index 0000000000..58fd42bbc0 --- /dev/null +++ b/src/crypto/scrypt-x64.S @@ -0,0 +1,14252 @@ +/* + * Copyright 2011-2014 pooler@litecoinpool.org + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#if defined(__linux__) && defined(__ELF__) + .section .note.GNU-stack,"",%progbits +#endif + +#if defined(__x86_64__) + + .text + .p2align 6 + .globl scrypt_best_throughput + .globl _scrypt_best_throughput +scrypt_best_throughput: +_scrypt_best_throughput: + pushq %rbx +#if defined(USE_AVX2) + /* Check for AVX and OSXSAVE support */ + movl $1, %eax + cpuid + andl $0x18000000, %ecx + cmpl $0x18000000, %ecx + jne scrypt_best_throughput_no_avx2 + /* Check for AVX2 support */ + movl $7, %eax + xorl %ecx, %ecx + cpuid + andl $0x00000020, %ebx + cmpl $0x00000020, %ebx + jne scrypt_best_throughput_no_avx2 + /* Check for XMM and YMM state support */ + xorl %ecx, %ecx + xgetbv + andl $0x00000006, %eax + cmpl $0x00000006, %eax + jne scrypt_best_throughput_no_avx2 + movl $6, %eax + jmp scrypt_best_throughput_exit +scrypt_best_throughput_no_avx2: +#endif + /* Check for AuthenticAMD */ + xorq %rax, %rax + cpuid + movl $3, %eax + cmpl $0x444d4163, %ecx + jne scrypt_best_throughput_not_amd + cmpl $0x69746e65, %edx + jne scrypt_best_throughput_not_amd + cmpl $0x68747541, %ebx + jne scrypt_best_throughput_not_amd + /* Check for AMD K8 or Bobcat */ + movl $1, %eax + cpuid + andl $0x0ff00000, %eax + jz scrypt_best_throughput_one + cmpl $0x00500000, %eax + je scrypt_best_throughput_one + movl $3, %eax + jmp scrypt_best_throughput_exit +scrypt_best_throughput_not_amd: + /* Check for GenuineIntel */ + cmpl $0x6c65746e, %ecx + jne scrypt_best_throughput_exit + cmpl $0x49656e69, %edx + jne scrypt_best_throughput_exit + cmpl $0x756e6547, %ebx + jne scrypt_best_throughput_exit + /* Check for Intel Atom */ + movl $1, %eax + cpuid + movl %eax, %edx + andl $0x0ff00f00, %eax + cmpl $0x00000600, %eax + movl $3, %eax + jnz scrypt_best_throughput_exit + andl $0x000f00f0, %edx + cmpl $0x000100c0, %edx + je scrypt_best_throughput_one + cmpl $0x00020060, %edx + je scrypt_best_throughput_one + cmpl $0x00030060, %edx + jne scrypt_best_throughput_exit +scrypt_best_throughput_one: + movl $1, %eax +scrypt_best_throughput_exit: + popq %rbx + ret + + + + + + .text + .p2align 6 +salsa8_core_gen: + /* 0: %rdx, %rdi, %rcx, %rsi */ + movq 8(%rsp), %rdi + movq %rdi, %rdx + shrq $32, %rdi + movq 16(%rsp), %rsi + movq %rsi, %rcx + shrq $32, %rsi + /* 1: %r9, 72(%rsp), %rax, %r8 */ + movq 24(%rsp), %r8 + movq %r8, %r9 + shrq $32, %r8 + movq %r8, 72(%rsp) + movq 32(%rsp), %r8 + movq %r8, %rax + shrq $32, %r8 + /* 2: %r11, %r10, 48(%rsp), %r12 */ + movq 40(%rsp), %r10 + movq %r10, %r11 + shrq $32, %r10 + movq 48(%rsp), %r12 + /* movq %r12, %r13 */ + /* movq %r13, 48(%rsp) */ + shrq $32, %r12 + /* 3: %r14, %r13, %rbx, 88(%rsp) */ + movq 56(%rsp), %r13 + movq %r13, %r14 + shrq $32, %r13 + movq 64(%rsp), %r15 + movq %r15, %rbx + shrq $32, %r15 + movq %r15, 88(%rsp) + + movq 72(%rsp), %r15 + + leaq (%r14, %rdx), %rbp + roll $7, %ebp + xorl %ebp, %r9d + leaq (%rdi, %r15), %rbp + roll $7, %ebp + xorl %ebp, %r10d + leaq (%rdx, %r9), %rbp + roll $9, %ebp + xorl %ebp, %r11d + leaq (%r15, %r10), %rbp + roll $9, %ebp + xorl %ebp, %r13d + + leaq (%r9, %r11), %rbp + roll $13, %ebp + xorl %ebp, %r14d + leaq (%r10, %r13), %rbp + roll $13, %ebp + xorl %ebp, %edi + leaq (%r11, %r14), %rbp + roll $18, %ebp + xorl %ebp, %edx + leaq (%r13, %rdi), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq 48(%rsp), %rbp + movq %r15, 72(%rsp) + + leaq (%rax, %rbp), %r15 + roll $7, %r15d + xorl %r15d, %ebx + leaq (%rbp, %rbx), %r15 + roll $9, %r15d + xorl %r15d, %ecx + leaq (%rbx, %rcx), %r15 + roll $13, %r15d + xorl %r15d, %eax + leaq (%rcx, %rax), %r15 + roll $18, %r15d + xorl %r15d, %ebp + + movq 88(%rsp), %r15 + movq %rbp, 48(%rsp) + + leaq (%r12, %r15), %rbp + roll $7, %ebp + xorl %ebp, %esi + leaq (%r15, %rsi), %rbp + roll $9, %ebp + xorl %ebp, %r8d + leaq (%rsi, %r8), %rbp + roll $13, %ebp + xorl %ebp, %r12d + leaq (%r8, %r12), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq %r15, 88(%rsp) + movq 72(%rsp), %r15 + + leaq (%rsi, %rdx), %rbp + roll $7, %ebp + xorl %ebp, %edi + leaq (%r9, %r15), %rbp + roll $7, %ebp + xorl %ebp, %eax + leaq (%rdx, %rdi), %rbp + roll $9, %ebp + xorl %ebp, %ecx + leaq (%r15, %rax), %rbp + roll $9, %ebp + xorl %ebp, %r8d + + leaq (%rdi, %rcx), %rbp + roll $13, %ebp + xorl %ebp, %esi + leaq (%rax, %r8), %rbp + roll $13, %ebp + xorl %ebp, %r9d + leaq (%rcx, %rsi), %rbp + roll $18, %ebp + xorl %ebp, %edx + leaq (%r8, %r9), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq 48(%rsp), %rbp + movq %r15, 72(%rsp) + + leaq (%r10, %rbp), %r15 + roll $7, %r15d + xorl %r15d, %r12d + leaq (%rbp, %r12), %r15 + roll $9, %r15d + xorl %r15d, %r11d + leaq (%r12, %r11), %r15 + roll $13, %r15d + xorl %r15d, %r10d + leaq (%r11, %r10), %r15 + roll $18, %r15d + xorl %r15d, %ebp + + movq 88(%rsp), %r15 + movq %rbp, 48(%rsp) + + leaq (%rbx, %r15), %rbp + roll $7, %ebp + xorl %ebp, %r14d + leaq (%r15, %r14), %rbp + roll $9, %ebp + xorl %ebp, %r13d + leaq (%r14, %r13), %rbp + roll $13, %ebp + xorl %ebp, %ebx + leaq (%r13, %rbx), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq %r15, 88(%rsp) + movq 72(%rsp), %r15 + + leaq (%r14, %rdx), %rbp + roll $7, %ebp + xorl %ebp, %r9d + leaq (%rdi, %r15), %rbp + roll $7, %ebp + xorl %ebp, %r10d + leaq (%rdx, %r9), %rbp + roll $9, %ebp + xorl %ebp, %r11d + leaq (%r15, %r10), %rbp + roll $9, %ebp + xorl %ebp, %r13d + + leaq (%r9, %r11), %rbp + roll $13, %ebp + xorl %ebp, %r14d + leaq (%r10, %r13), %rbp + roll $13, %ebp + xorl %ebp, %edi + leaq (%r11, %r14), %rbp + roll $18, %ebp + xorl %ebp, %edx + leaq (%r13, %rdi), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq 48(%rsp), %rbp + movq %r15, 72(%rsp) + + leaq (%rax, %rbp), %r15 + roll $7, %r15d + xorl %r15d, %ebx + leaq (%rbp, %rbx), %r15 + roll $9, %r15d + xorl %r15d, %ecx + leaq (%rbx, %rcx), %r15 + roll $13, %r15d + xorl %r15d, %eax + leaq (%rcx, %rax), %r15 + roll $18, %r15d + xorl %r15d, %ebp + + movq 88(%rsp), %r15 + movq %rbp, 48(%rsp) + + leaq (%r12, %r15), %rbp + roll $7, %ebp + xorl %ebp, %esi + leaq (%r15, %rsi), %rbp + roll $9, %ebp + xorl %ebp, %r8d + leaq (%rsi, %r8), %rbp + roll $13, %ebp + xorl %ebp, %r12d + leaq (%r8, %r12), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq %r15, 88(%rsp) + movq 72(%rsp), %r15 + + leaq (%rsi, %rdx), %rbp + roll $7, %ebp + xorl %ebp, %edi + leaq (%r9, %r15), %rbp + roll $7, %ebp + xorl %ebp, %eax + leaq (%rdx, %rdi), %rbp + roll $9, %ebp + xorl %ebp, %ecx + leaq (%r15, %rax), %rbp + roll $9, %ebp + xorl %ebp, %r8d + + leaq (%rdi, %rcx), %rbp + roll $13, %ebp + xorl %ebp, %esi + leaq (%rax, %r8), %rbp + roll $13, %ebp + xorl %ebp, %r9d + leaq (%rcx, %rsi), %rbp + roll $18, %ebp + xorl %ebp, %edx + leaq (%r8, %r9), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq 48(%rsp), %rbp + movq %r15, 72(%rsp) + + leaq (%r10, %rbp), %r15 + roll $7, %r15d + xorl %r15d, %r12d + leaq (%rbp, %r12), %r15 + roll $9, %r15d + xorl %r15d, %r11d + leaq (%r12, %r11), %r15 + roll $13, %r15d + xorl %r15d, %r10d + leaq (%r11, %r10), %r15 + roll $18, %r15d + xorl %r15d, %ebp + + movq 88(%rsp), %r15 + movq %rbp, 48(%rsp) + + leaq (%rbx, %r15), %rbp + roll $7, %ebp + xorl %ebp, %r14d + leaq (%r15, %r14), %rbp + roll $9, %ebp + xorl %ebp, %r13d + leaq (%r14, %r13), %rbp + roll $13, %ebp + xorl %ebp, %ebx + leaq (%r13, %rbx), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq %r15, 88(%rsp) + movq 72(%rsp), %r15 + + leaq (%r14, %rdx), %rbp + roll $7, %ebp + xorl %ebp, %r9d + leaq (%rdi, %r15), %rbp + roll $7, %ebp + xorl %ebp, %r10d + leaq (%rdx, %r9), %rbp + roll $9, %ebp + xorl %ebp, %r11d + leaq (%r15, %r10), %rbp + roll $9, %ebp + xorl %ebp, %r13d + + leaq (%r9, %r11), %rbp + roll $13, %ebp + xorl %ebp, %r14d + leaq (%r10, %r13), %rbp + roll $13, %ebp + xorl %ebp, %edi + leaq (%r11, %r14), %rbp + roll $18, %ebp + xorl %ebp, %edx + leaq (%r13, %rdi), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq 48(%rsp), %rbp + movq %r15, 72(%rsp) + + leaq (%rax, %rbp), %r15 + roll $7, %r15d + xorl %r15d, %ebx + leaq (%rbp, %rbx), %r15 + roll $9, %r15d + xorl %r15d, %ecx + leaq (%rbx, %rcx), %r15 + roll $13, %r15d + xorl %r15d, %eax + leaq (%rcx, %rax), %r15 + roll $18, %r15d + xorl %r15d, %ebp + + movq 88(%rsp), %r15 + movq %rbp, 48(%rsp) + + leaq (%r12, %r15), %rbp + roll $7, %ebp + xorl %ebp, %esi + leaq (%r15, %rsi), %rbp + roll $9, %ebp + xorl %ebp, %r8d + leaq (%rsi, %r8), %rbp + roll $13, %ebp + xorl %ebp, %r12d + leaq (%r8, %r12), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq %r15, 88(%rsp) + movq 72(%rsp), %r15 + + leaq (%rsi, %rdx), %rbp + roll $7, %ebp + xorl %ebp, %edi + leaq (%r9, %r15), %rbp + roll $7, %ebp + xorl %ebp, %eax + leaq (%rdx, %rdi), %rbp + roll $9, %ebp + xorl %ebp, %ecx + leaq (%r15, %rax), %rbp + roll $9, %ebp + xorl %ebp, %r8d + + leaq (%rdi, %rcx), %rbp + roll $13, %ebp + xorl %ebp, %esi + leaq (%rax, %r8), %rbp + roll $13, %ebp + xorl %ebp, %r9d + leaq (%rcx, %rsi), %rbp + roll $18, %ebp + xorl %ebp, %edx + leaq (%r8, %r9), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq 48(%rsp), %rbp + movq %r15, 72(%rsp) + + leaq (%r10, %rbp), %r15 + roll $7, %r15d + xorl %r15d, %r12d + leaq (%rbp, %r12), %r15 + roll $9, %r15d + xorl %r15d, %r11d + leaq (%r12, %r11), %r15 + roll $13, %r15d + xorl %r15d, %r10d + leaq (%r11, %r10), %r15 + roll $18, %r15d + xorl %r15d, %ebp + + movq 88(%rsp), %r15 + movq %rbp, 48(%rsp) + + leaq (%rbx, %r15), %rbp + roll $7, %ebp + xorl %ebp, %r14d + leaq (%r15, %r14), %rbp + roll $9, %ebp + xorl %ebp, %r13d + leaq (%r14, %r13), %rbp + roll $13, %ebp + xorl %ebp, %ebx + leaq (%r13, %rbx), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq %r15, 88(%rsp) + movq 72(%rsp), %r15 + + leaq (%r14, %rdx), %rbp + roll $7, %ebp + xorl %ebp, %r9d + leaq (%rdi, %r15), %rbp + roll $7, %ebp + xorl %ebp, %r10d + leaq (%rdx, %r9), %rbp + roll $9, %ebp + xorl %ebp, %r11d + leaq (%r15, %r10), %rbp + roll $9, %ebp + xorl %ebp, %r13d + + leaq (%r9, %r11), %rbp + roll $13, %ebp + xorl %ebp, %r14d + leaq (%r10, %r13), %rbp + roll $13, %ebp + xorl %ebp, %edi + leaq (%r11, %r14), %rbp + roll $18, %ebp + xorl %ebp, %edx + leaq (%r13, %rdi), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq 48(%rsp), %rbp + movq %r15, 72(%rsp) + + leaq (%rax, %rbp), %r15 + roll $7, %r15d + xorl %r15d, %ebx + leaq (%rbp, %rbx), %r15 + roll $9, %r15d + xorl %r15d, %ecx + leaq (%rbx, %rcx), %r15 + roll $13, %r15d + xorl %r15d, %eax + leaq (%rcx, %rax), %r15 + roll $18, %r15d + xorl %r15d, %ebp + + movq 88(%rsp), %r15 + movq %rbp, 48(%rsp) + + leaq (%r12, %r15), %rbp + roll $7, %ebp + xorl %ebp, %esi + leaq (%r15, %rsi), %rbp + roll $9, %ebp + xorl %ebp, %r8d + leaq (%rsi, %r8), %rbp + roll $13, %ebp + xorl %ebp, %r12d + leaq (%r8, %r12), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq %r15, 88(%rsp) + movq 72(%rsp), %r15 + + leaq (%rsi, %rdx), %rbp + roll $7, %ebp + xorl %ebp, %edi + leaq (%r9, %r15), %rbp + roll $7, %ebp + xorl %ebp, %eax + leaq (%rdx, %rdi), %rbp + roll $9, %ebp + xorl %ebp, %ecx + leaq (%r15, %rax), %rbp + roll $9, %ebp + xorl %ebp, %r8d + + leaq (%rdi, %rcx), %rbp + roll $13, %ebp + xorl %ebp, %esi + leaq (%rax, %r8), %rbp + roll $13, %ebp + xorl %ebp, %r9d + leaq (%rcx, %rsi), %rbp + roll $18, %ebp + xorl %ebp, %edx + leaq (%r8, %r9), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq 48(%rsp), %rbp + movq %r15, 72(%rsp) + + leaq (%r10, %rbp), %r15 + roll $7, %r15d + xorl %r15d, %r12d + leaq (%rbp, %r12), %r15 + roll $9, %r15d + xorl %r15d, %r11d + leaq (%r12, %r11), %r15 + roll $13, %r15d + xorl %r15d, %r10d + leaq (%r11, %r10), %r15 + roll $18, %r15d + xorl %r15d, %ebp + + movq 88(%rsp), %r15 + movq %rbp, 48(%rsp) + + leaq (%rbx, %r15), %rbp + roll $7, %ebp + xorl %ebp, %r14d + leaq (%r15, %r14), %rbp + roll $9, %ebp + xorl %ebp, %r13d + leaq (%r14, %r13), %rbp + roll $13, %ebp + xorl %ebp, %ebx + leaq (%r13, %rbx), %rbp + roll $18, %ebp + xorl %ebp, %r15d + + movq %r15, 88(%rsp) + + shlq $32, %rdi + xorq %rdi, %rdx + movq %rdx, 24(%rsp) + + shlq $32, %rsi + xorq %rsi, %rcx + movq %rcx, 32(%rsp) + + movl 72(%rsp), %edi + shlq $32, %rdi + xorq %rdi, %r9 + movq %r9, 40(%rsp) + + movl 48(%rsp), %ebp + shlq $32, %r8 + xorq %r8, %rax + movq %rax, 48(%rsp) + + shlq $32, %r10 + xorq %r10, %r11 + movq %r11, 56(%rsp) + + shlq $32, %r12 + xorq %r12, %rbp + movq %rbp, 64(%rsp) + + shlq $32, %r13 + xorq %r13, %r14 + movq %r14, 72(%rsp) + + movdqa 24(%rsp), %xmm0 + + shlq $32, %r15 + xorq %r15, %rbx + movq %rbx, 80(%rsp) + + movdqa 40(%rsp), %xmm1 + movdqa 56(%rsp), %xmm2 + movdqa 72(%rsp), %xmm3 + + ret + + + .text + .p2align 6 + .globl scrypt_core + .globl _scrypt_core +scrypt_core: +_scrypt_core: + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 +#if defined(_WIN64) || defined(__CYGWIN__) + subq $176, %rsp + movdqa %xmm6, 8(%rsp) + movdqa %xmm7, 24(%rsp) + movdqa %xmm8, 40(%rsp) + movdqa %xmm9, 56(%rsp) + movdqa %xmm10, 72(%rsp) + movdqa %xmm11, 88(%rsp) + movdqa %xmm12, 104(%rsp) + movdqa %xmm13, 120(%rsp) + movdqa %xmm14, 136(%rsp) + movdqa %xmm15, 152(%rsp) + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi +#else + movq %rdx, %r8 +#endif + + + /* GenuineIntel processors have fast SIMD */ + xorl %eax, %eax + cpuid + cmpl $0x6c65746e, %ecx + jne scrypt_core_gen + cmpl $0x49656e69, %edx + jne scrypt_core_gen + cmpl $0x756e6547, %ebx + je scrypt_core_xmm + + .p2align 6 +scrypt_core_gen: + subq $136, %rsp + movdqa 0(%rdi), %xmm8 + movdqa 16(%rdi), %xmm9 + movdqa 32(%rdi), %xmm10 + movdqa 48(%rdi), %xmm11 + movdqa 64(%rdi), %xmm12 + movdqa 80(%rdi), %xmm13 + movdqa 96(%rdi), %xmm14 + movdqa 112(%rdi), %xmm15 + + movq %r8, %rcx + shlq $7, %rcx + addq %rsi, %rcx + movq %r8, 96(%rsp) + movq %rdi, 104(%rsp) + movq %rsi, 112(%rsp) + movq %rcx, 120(%rsp) +scrypt_core_gen_loop1: + movdqa %xmm8, 0(%rsi) + movdqa %xmm9, 16(%rsi) + movdqa %xmm10, 32(%rsi) + movdqa %xmm11, 48(%rsi) + movdqa %xmm12, 64(%rsi) + movdqa %xmm13, 80(%rsi) + movdqa %xmm14, 96(%rsi) + movdqa %xmm15, 112(%rsi) + + pxor %xmm12, %xmm8 + pxor %xmm13, %xmm9 + pxor %xmm14, %xmm10 + pxor %xmm15, %xmm11 + movdqa %xmm8, 0(%rsp) + movdqa %xmm9, 16(%rsp) + movdqa %xmm10, 32(%rsp) + movdqa %xmm11, 48(%rsp) + movq %rsi, 128(%rsp) + call salsa8_core_gen + paddd %xmm0, %xmm8 + paddd %xmm1, %xmm9 + paddd %xmm2, %xmm10 + paddd %xmm3, %xmm11 + + pxor %xmm8, %xmm12 + pxor %xmm9, %xmm13 + pxor %xmm10, %xmm14 + pxor %xmm11, %xmm15 + movdqa %xmm12, 0(%rsp) + movdqa %xmm13, 16(%rsp) + movdqa %xmm14, 32(%rsp) + movdqa %xmm15, 48(%rsp) + call salsa8_core_gen + movq 128(%rsp), %rsi + paddd %xmm0, %xmm12 + paddd %xmm1, %xmm13 + paddd %xmm2, %xmm14 + paddd %xmm3, %xmm15 + + addq $128, %rsi + movq 120(%rsp), %rcx + cmpq %rcx, %rsi + jne scrypt_core_gen_loop1 + + movq 96(%rsp), %r8 + movq %r8, %rcx + subl $1, %r8d + movq %r8, 96(%rsp) + movd %xmm12, %edx +scrypt_core_gen_loop2: + movq 112(%rsp), %rsi + andl %r8d, %edx + shll $7, %edx + addq %rsi, %rdx + movdqa 0(%rdx), %xmm0 + movdqa 16(%rdx), %xmm1 + movdqa 32(%rdx), %xmm2 + movdqa 48(%rdx), %xmm3 + movdqa 64(%rdx), %xmm4 + movdqa 80(%rdx), %xmm5 + movdqa 96(%rdx), %xmm6 + movdqa 112(%rdx), %xmm7 + pxor %xmm0, %xmm8 + pxor %xmm1, %xmm9 + pxor %xmm2, %xmm10 + pxor %xmm3, %xmm11 + pxor %xmm4, %xmm12 + pxor %xmm5, %xmm13 + pxor %xmm6, %xmm14 + pxor %xmm7, %xmm15 + + pxor %xmm12, %xmm8 + pxor %xmm13, %xmm9 + pxor %xmm14, %xmm10 + pxor %xmm15, %xmm11 + movdqa %xmm8, 0(%rsp) + movdqa %xmm9, 16(%rsp) + movdqa %xmm10, 32(%rsp) + movdqa %xmm11, 48(%rsp) + movq %rcx, 128(%rsp) + call salsa8_core_gen + paddd %xmm0, %xmm8 + paddd %xmm1, %xmm9 + paddd %xmm2, %xmm10 + paddd %xmm3, %xmm11 + + pxor %xmm8, %xmm12 + pxor %xmm9, %xmm13 + pxor %xmm10, %xmm14 + pxor %xmm11, %xmm15 + movdqa %xmm12, 0(%rsp) + movdqa %xmm13, 16(%rsp) + movdqa %xmm14, 32(%rsp) + movdqa %xmm15, 48(%rsp) + call salsa8_core_gen + movq 96(%rsp), %r8 + movq 128(%rsp), %rcx + addl 0(%rsp), %edx + paddd %xmm0, %xmm12 + paddd %xmm1, %xmm13 + paddd %xmm2, %xmm14 + paddd %xmm3, %xmm15 + + subq $1, %rcx + ja scrypt_core_gen_loop2 + + movq 104(%rsp), %rdi + movdqa %xmm8, 0(%rdi) + movdqa %xmm9, 16(%rdi) + movdqa %xmm10, 32(%rdi) + movdqa %xmm11, 48(%rdi) + movdqa %xmm12, 64(%rdi) + movdqa %xmm13, 80(%rdi) + movdqa %xmm14, 96(%rdi) + movdqa %xmm15, 112(%rdi) + + addq $136, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + popq %rdi + movdqa 8(%rsp), %xmm6 + movdqa 24(%rsp), %xmm7 + movdqa 40(%rsp), %xmm8 + movdqa 56(%rsp), %xmm9 + movdqa 72(%rsp), %xmm10 + movdqa 88(%rsp), %xmm11 + movdqa 104(%rsp), %xmm12 + movdqa 120(%rsp), %xmm13 + movdqa 136(%rsp), %xmm14 + movdqa 152(%rsp), %xmm15 + addq $176, %rsp +#endif + popq %r15 + popq %r14 + popq %r13 + popq %r12 + popq %rbp + popq %rbx + ret + + + + + .p2align 6 +scrypt_core_xmm: + pcmpeqw %xmm1, %xmm1 + psrlq $32, %xmm1 + + movdqa 0(%rdi), %xmm8 + movdqa 16(%rdi), %xmm11 + movdqa 32(%rdi), %xmm10 + movdqa 48(%rdi), %xmm9 + movdqa %xmm8, %xmm0 + pxor %xmm11, %xmm8 + pand %xmm1, %xmm8 + pxor %xmm11, %xmm8 + pxor %xmm10, %xmm11 + pand %xmm1, %xmm11 + pxor %xmm10, %xmm11 + pxor %xmm9, %xmm10 + pand %xmm1, %xmm10 + pxor %xmm9, %xmm10 + pxor %xmm0, %xmm9 + pand %xmm1, %xmm9 + pxor %xmm0, %xmm9 + movdqa %xmm8, %xmm0 + pshufd $0x4e, %xmm10, %xmm10 + punpcklqdq %xmm10, %xmm8 + punpckhqdq %xmm0, %xmm10 + movdqa %xmm11, %xmm0 + pshufd $0x4e, %xmm9, %xmm9 + punpcklqdq %xmm9, %xmm11 + punpckhqdq %xmm0, %xmm9 + + movdqa 64(%rdi), %xmm12 + movdqa 80(%rdi), %xmm15 + movdqa 96(%rdi), %xmm14 + movdqa 112(%rdi), %xmm13 + movdqa %xmm12, %xmm0 + pxor %xmm15, %xmm12 + pand %xmm1, %xmm12 + pxor %xmm15, %xmm12 + pxor %xmm14, %xmm15 + pand %xmm1, %xmm15 + pxor %xmm14, %xmm15 + pxor %xmm13, %xmm14 + pand %xmm1, %xmm14 + pxor %xmm13, %xmm14 + pxor %xmm0, %xmm13 + pand %xmm1, %xmm13 + pxor %xmm0, %xmm13 + movdqa %xmm12, %xmm0 + pshufd $0x4e, %xmm14, %xmm14 + punpcklqdq %xmm14, %xmm12 + punpckhqdq %xmm0, %xmm14 + movdqa %xmm15, %xmm0 + pshufd $0x4e, %xmm13, %xmm13 + punpcklqdq %xmm13, %xmm15 + punpckhqdq %xmm0, %xmm13 + + movq %rsi, %rdx + movq %r8, %rcx + shlq $7, %rcx + addq %rsi, %rcx +scrypt_core_xmm_loop1: + pxor %xmm12, %xmm8 + pxor %xmm13, %xmm9 + pxor %xmm14, %xmm10 + pxor %xmm15, %xmm11 + movdqa %xmm8, 0(%rdx) + movdqa %xmm9, 16(%rdx) + movdqa %xmm10, 32(%rdx) + movdqa %xmm11, 48(%rdx) + movdqa %xmm12, 64(%rdx) + movdqa %xmm13, 80(%rdx) + movdqa %xmm14, 96(%rdx) + movdqa %xmm15, 112(%rdx) + + movdqa %xmm8, %xmm0 + movdqa %xmm9, %xmm1 + movdqa %xmm10, %xmm2 + movdqa %xmm11, %xmm3 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + paddd %xmm0, %xmm8 + paddd %xmm1, %xmm9 + paddd %xmm2, %xmm10 + paddd %xmm3, %xmm11 + + pxor %xmm8, %xmm12 + pxor %xmm9, %xmm13 + pxor %xmm10, %xmm14 + pxor %xmm11, %xmm15 + movdqa %xmm12, %xmm0 + movdqa %xmm13, %xmm1 + movdqa %xmm14, %xmm2 + movdqa %xmm15, %xmm3 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + paddd %xmm0, %xmm12 + paddd %xmm1, %xmm13 + paddd %xmm2, %xmm14 + paddd %xmm3, %xmm15 + + addq $128, %rdx + cmpq %rcx, %rdx + jne scrypt_core_xmm_loop1 + + movq %r8, %rcx + subl $1, %r8d +scrypt_core_xmm_loop2: + movd %xmm12, %edx + andl %r8d, %edx + shll $7, %edx + pxor 0(%rsi, %rdx), %xmm8 + pxor 16(%rsi, %rdx), %xmm9 + pxor 32(%rsi, %rdx), %xmm10 + pxor 48(%rsi, %rdx), %xmm11 + + pxor %xmm12, %xmm8 + pxor %xmm13, %xmm9 + pxor %xmm14, %xmm10 + pxor %xmm15, %xmm11 + movdqa %xmm8, %xmm0 + movdqa %xmm9, %xmm1 + movdqa %xmm10, %xmm2 + movdqa %xmm11, %xmm3 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + paddd %xmm0, %xmm8 + paddd %xmm1, %xmm9 + paddd %xmm2, %xmm10 + paddd %xmm3, %xmm11 + + pxor 64(%rsi, %rdx), %xmm12 + pxor 80(%rsi, %rdx), %xmm13 + pxor 96(%rsi, %rdx), %xmm14 + pxor 112(%rsi, %rdx), %xmm15 + pxor %xmm8, %xmm12 + pxor %xmm9, %xmm13 + pxor %xmm10, %xmm14 + pxor %xmm11, %xmm15 + movdqa %xmm12, %xmm0 + movdqa %xmm13, %xmm1 + movdqa %xmm14, %xmm2 + movdqa %xmm15, %xmm3 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + paddd %xmm0, %xmm12 + paddd %xmm1, %xmm13 + paddd %xmm2, %xmm14 + paddd %xmm3, %xmm15 + + subq $1, %rcx + ja scrypt_core_xmm_loop2 + + pcmpeqw %xmm1, %xmm1 + psrlq $32, %xmm1 + + movdqa %xmm8, %xmm0 + pxor %xmm9, %xmm8 + pand %xmm1, %xmm8 + pxor %xmm9, %xmm8 + pxor %xmm10, %xmm9 + pand %xmm1, %xmm9 + pxor %xmm10, %xmm9 + pxor %xmm11, %xmm10 + pand %xmm1, %xmm10 + pxor %xmm11, %xmm10 + pxor %xmm0, %xmm11 + pand %xmm1, %xmm11 + pxor %xmm0, %xmm11 + movdqa %xmm8, %xmm0 + pshufd $0x4e, %xmm10, %xmm10 + punpcklqdq %xmm10, %xmm8 + punpckhqdq %xmm0, %xmm10 + movdqa %xmm9, %xmm0 + pshufd $0x4e, %xmm11, %xmm11 + punpcklqdq %xmm11, %xmm9 + punpckhqdq %xmm0, %xmm11 + movdqa %xmm8, 0(%rdi) + movdqa %xmm11, 16(%rdi) + movdqa %xmm10, 32(%rdi) + movdqa %xmm9, 48(%rdi) + + movdqa %xmm12, %xmm0 + pxor %xmm13, %xmm12 + pand %xmm1, %xmm12 + pxor %xmm13, %xmm12 + pxor %xmm14, %xmm13 + pand %xmm1, %xmm13 + pxor %xmm14, %xmm13 + pxor %xmm15, %xmm14 + pand %xmm1, %xmm14 + pxor %xmm15, %xmm14 + pxor %xmm0, %xmm15 + pand %xmm1, %xmm15 + pxor %xmm0, %xmm15 + movdqa %xmm12, %xmm0 + pshufd $0x4e, %xmm14, %xmm14 + punpcklqdq %xmm14, %xmm12 + punpckhqdq %xmm0, %xmm14 + movdqa %xmm13, %xmm0 + pshufd $0x4e, %xmm15, %xmm15 + punpcklqdq %xmm15, %xmm13 + punpckhqdq %xmm0, %xmm15 + movdqa %xmm12, 64(%rdi) + movdqa %xmm15, 80(%rdi) + movdqa %xmm14, 96(%rdi) + movdqa %xmm13, 112(%rdi) + +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + popq %rdi + movdqa 8(%rsp), %xmm6 + movdqa 24(%rsp), %xmm7 + movdqa 40(%rsp), %xmm8 + movdqa 56(%rsp), %xmm9 + movdqa 72(%rsp), %xmm10 + movdqa 88(%rsp), %xmm11 + movdqa 104(%rsp), %xmm12 + movdqa 120(%rsp), %xmm13 + movdqa 136(%rsp), %xmm14 + movdqa 152(%rsp), %xmm15 + addq $176, %rsp +#endif + popq %r15 + popq %r14 + popq %r13 + popq %r12 + popq %rbp + popq %rbx + ret + + +#if defined(USE_AVX) + +#endif /* USE_AVX */ + + .text + .p2align 6 + .globl scrypt_core_3way + .globl _scrypt_core_3way +scrypt_core_3way: +_scrypt_core_3way: + pushq %rbx + pushq %rbp +#if defined(_WIN64) || defined(__CYGWIN__) + subq $176, %rsp + movdqa %xmm6, 8(%rsp) + movdqa %xmm7, 24(%rsp) + movdqa %xmm8, 40(%rsp) + movdqa %xmm9, 56(%rsp) + movdqa %xmm10, 72(%rsp) + movdqa %xmm11, 88(%rsp) + movdqa %xmm12, 104(%rsp) + movdqa %xmm13, 120(%rsp) + movdqa %xmm14, 136(%rsp) + movdqa %xmm15, 152(%rsp) + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi +#else + movq %rdx, %r8 +#endif + subq $392, %rsp + + +#if !defined(USE_AVX) + jmp scrypt_core_3way_xmm +#else + /* Check for AVX and OSXSAVE support */ + movl $1, %eax + cpuid + andl $0x18000000, %ecx + cmpl $0x18000000, %ecx + jne scrypt_core_3way_xmm + /* Check for XMM and YMM state support */ + xorl %ecx, %ecx + xgetbv + andl $0x00000006, %eax + cmpl $0x00000006, %eax + jne scrypt_core_3way_xmm +#if defined(USE_XOP) + /* Check for XOP support */ + movl $0x80000001, %eax + cpuid + andl $0x00000800, %ecx + jnz scrypt_core_3way_xop +#endif + +scrypt_core_3way_avx: + movl 0+60(%rdi), %eax + movl 0+44(%rdi), %ebx + movl 0+28(%rdi), %ecx + movl 0+12(%rdi), %edx + movl %eax, 0+12(%rsp) + movl %ebx, 0+28(%rsp) + movl %ecx, 0+44(%rsp) + movl %edx, 0+60(%rsp) + movl 0+40(%rdi), %eax + movl 0+8(%rdi), %ebx + movl 0+48(%rdi), %ecx + movl 0+16(%rdi), %edx + movl %eax, 0+8(%rsp) + movl %ebx, 0+40(%rsp) + movl %ecx, 0+16(%rsp) + movl %edx, 0+48(%rsp) + movl 0+20(%rdi), %eax + movl 0+4(%rdi), %ebx + movl 0+52(%rdi), %ecx + movl 0+36(%rdi), %edx + movl %eax, 0+4(%rsp) + movl %ebx, 0+20(%rsp) + movl %ecx, 0+36(%rsp) + movl %edx, 0+52(%rsp) + movl 0+0(%rdi), %eax + movl 0+24(%rdi), %ebx + movl 0+32(%rdi), %ecx + movl 0+56(%rdi), %edx + movl %eax, 0+0(%rsp) + movl %ebx, 0+24(%rsp) + movl %ecx, 0+32(%rsp) + movl %edx, 0+56(%rsp) + movl 64+60(%rdi), %eax + movl 64+44(%rdi), %ebx + movl 64+28(%rdi), %ecx + movl 64+12(%rdi), %edx + movl %eax, 64+12(%rsp) + movl %ebx, 64+28(%rsp) + movl %ecx, 64+44(%rsp) + movl %edx, 64+60(%rsp) + movl 64+40(%rdi), %eax + movl 64+8(%rdi), %ebx + movl 64+48(%rdi), %ecx + movl 64+16(%rdi), %edx + movl %eax, 64+8(%rsp) + movl %ebx, 64+40(%rsp) + movl %ecx, 64+16(%rsp) + movl %edx, 64+48(%rsp) + movl 64+20(%rdi), %eax + movl 64+4(%rdi), %ebx + movl 64+52(%rdi), %ecx + movl 64+36(%rdi), %edx + movl %eax, 64+4(%rsp) + movl %ebx, 64+20(%rsp) + movl %ecx, 64+36(%rsp) + movl %edx, 64+52(%rsp) + movl 64+0(%rdi), %eax + movl 64+24(%rdi), %ebx + movl 64+32(%rdi), %ecx + movl 64+56(%rdi), %edx + movl %eax, 64+0(%rsp) + movl %ebx, 64+24(%rsp) + movl %ecx, 64+32(%rsp) + movl %edx, 64+56(%rsp) + movl 128+60(%rdi), %eax + movl 128+44(%rdi), %ebx + movl 128+28(%rdi), %ecx + movl 128+12(%rdi), %edx + movl %eax, 128+12(%rsp) + movl %ebx, 128+28(%rsp) + movl %ecx, 128+44(%rsp) + movl %edx, 128+60(%rsp) + movl 128+40(%rdi), %eax + movl 128+8(%rdi), %ebx + movl 128+48(%rdi), %ecx + movl 128+16(%rdi), %edx + movl %eax, 128+8(%rsp) + movl %ebx, 128+40(%rsp) + movl %ecx, 128+16(%rsp) + movl %edx, 128+48(%rsp) + movl 128+20(%rdi), %eax + movl 128+4(%rdi), %ebx + movl 128+52(%rdi), %ecx + movl 128+36(%rdi), %edx + movl %eax, 128+4(%rsp) + movl %ebx, 128+20(%rsp) + movl %ecx, 128+36(%rsp) + movl %edx, 128+52(%rsp) + movl 128+0(%rdi), %eax + movl 128+24(%rdi), %ebx + movl 128+32(%rdi), %ecx + movl 128+56(%rdi), %edx + movl %eax, 128+0(%rsp) + movl %ebx, 128+24(%rsp) + movl %ecx, 128+32(%rsp) + movl %edx, 128+56(%rsp) + movl 192+60(%rdi), %eax + movl 192+44(%rdi), %ebx + movl 192+28(%rdi), %ecx + movl 192+12(%rdi), %edx + movl %eax, 192+12(%rsp) + movl %ebx, 192+28(%rsp) + movl %ecx, 192+44(%rsp) + movl %edx, 192+60(%rsp) + movl 192+40(%rdi), %eax + movl 192+8(%rdi), %ebx + movl 192+48(%rdi), %ecx + movl 192+16(%rdi), %edx + movl %eax, 192+8(%rsp) + movl %ebx, 192+40(%rsp) + movl %ecx, 192+16(%rsp) + movl %edx, 192+48(%rsp) + movl 192+20(%rdi), %eax + movl 192+4(%rdi), %ebx + movl 192+52(%rdi), %ecx + movl 192+36(%rdi), %edx + movl %eax, 192+4(%rsp) + movl %ebx, 192+20(%rsp) + movl %ecx, 192+36(%rsp) + movl %edx, 192+52(%rsp) + movl 192+0(%rdi), %eax + movl 192+24(%rdi), %ebx + movl 192+32(%rdi), %ecx + movl 192+56(%rdi), %edx + movl %eax, 192+0(%rsp) + movl %ebx, 192+24(%rsp) + movl %ecx, 192+32(%rsp) + movl %edx, 192+56(%rsp) + movl 256+60(%rdi), %eax + movl 256+44(%rdi), %ebx + movl 256+28(%rdi), %ecx + movl 256+12(%rdi), %edx + movl %eax, 256+12(%rsp) + movl %ebx, 256+28(%rsp) + movl %ecx, 256+44(%rsp) + movl %edx, 256+60(%rsp) + movl 256+40(%rdi), %eax + movl 256+8(%rdi), %ebx + movl 256+48(%rdi), %ecx + movl 256+16(%rdi), %edx + movl %eax, 256+8(%rsp) + movl %ebx, 256+40(%rsp) + movl %ecx, 256+16(%rsp) + movl %edx, 256+48(%rsp) + movl 256+20(%rdi), %eax + movl 256+4(%rdi), %ebx + movl 256+52(%rdi), %ecx + movl 256+36(%rdi), %edx + movl %eax, 256+4(%rsp) + movl %ebx, 256+20(%rsp) + movl %ecx, 256+36(%rsp) + movl %edx, 256+52(%rsp) + movl 256+0(%rdi), %eax + movl 256+24(%rdi), %ebx + movl 256+32(%rdi), %ecx + movl 256+56(%rdi), %edx + movl %eax, 256+0(%rsp) + movl %ebx, 256+24(%rsp) + movl %ecx, 256+32(%rsp) + movl %edx, 256+56(%rsp) + movl 320+60(%rdi), %eax + movl 320+44(%rdi), %ebx + movl 320+28(%rdi), %ecx + movl 320+12(%rdi), %edx + movl %eax, 320+12(%rsp) + movl %ebx, 320+28(%rsp) + movl %ecx, 320+44(%rsp) + movl %edx, 320+60(%rsp) + movl 320+40(%rdi), %eax + movl 320+8(%rdi), %ebx + movl 320+48(%rdi), %ecx + movl 320+16(%rdi), %edx + movl %eax, 320+8(%rsp) + movl %ebx, 320+40(%rsp) + movl %ecx, 320+16(%rsp) + movl %edx, 320+48(%rsp) + movl 320+20(%rdi), %eax + movl 320+4(%rdi), %ebx + movl 320+52(%rdi), %ecx + movl 320+36(%rdi), %edx + movl %eax, 320+4(%rsp) + movl %ebx, 320+20(%rsp) + movl %ecx, 320+36(%rsp) + movl %edx, 320+52(%rsp) + movl 320+0(%rdi), %eax + movl 320+24(%rdi), %ebx + movl 320+32(%rdi), %ecx + movl 320+56(%rdi), %edx + movl %eax, 320+0(%rsp) + movl %ebx, 320+24(%rsp) + movl %ecx, 320+32(%rsp) + movl %edx, 320+56(%rsp) + + movdqa 64(%rsp), %xmm0 + movdqa 80(%rsp), %xmm1 + movdqa 96(%rsp), %xmm2 + movdqa 112(%rsp), %xmm3 + movdqa 128+64(%rsp), %xmm8 + movdqa 128+80(%rsp), %xmm9 + movdqa 128+96(%rsp), %xmm10 + movdqa 128+112(%rsp), %xmm11 + movdqa 256+64(%rsp), %xmm12 + movdqa 256+80(%rsp), %xmm13 + movdqa 256+96(%rsp), %xmm14 + movdqa 256+112(%rsp), %xmm15 + + movq %rsi, %rbx + leaq (%r8, %r8, 2), %rax + shlq $7, %rax + addq %rsi, %rax +scrypt_core_3way_avx_loop1: + movdqa %xmm0, 64(%rbx) + movdqa %xmm1, 80(%rbx) + movdqa %xmm2, 96(%rbx) + movdqa %xmm3, 112(%rbx) + pxor 0(%rsp), %xmm0 + pxor 16(%rsp), %xmm1 + pxor 32(%rsp), %xmm2 + pxor 48(%rsp), %xmm3 + movdqa %xmm8, 128+64(%rbx) + movdqa %xmm9, 128+80(%rbx) + movdqa %xmm10, 128+96(%rbx) + movdqa %xmm11, 128+112(%rbx) + pxor 128+0(%rsp), %xmm8 + pxor 128+16(%rsp), %xmm9 + pxor 128+32(%rsp), %xmm10 + pxor 128+48(%rsp), %xmm11 + movdqa %xmm12, 256+64(%rbx) + movdqa %xmm13, 256+80(%rbx) + movdqa %xmm14, 256+96(%rbx) + movdqa %xmm15, 256+112(%rbx) + pxor 256+0(%rsp), %xmm12 + pxor 256+16(%rsp), %xmm13 + pxor 256+32(%rsp), %xmm14 + pxor 256+48(%rsp), %xmm15 + movdqa %xmm0, 0(%rbx) + movdqa %xmm1, 16(%rbx) + movdqa %xmm2, 32(%rbx) + movdqa %xmm3, 48(%rbx) + movdqa %xmm8, 128+0(%rbx) + movdqa %xmm9, 128+16(%rbx) + movdqa %xmm10, 128+32(%rbx) + movdqa %xmm11, 128+48(%rbx) + movdqa %xmm12, 256+0(%rbx) + movdqa %xmm13, 256+16(%rbx) + movdqa %xmm14, 256+32(%rbx) + movdqa %xmm15, 256+48(%rbx) + + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + paddd 0(%rbx), %xmm0 + paddd 16(%rbx), %xmm1 + paddd 32(%rbx), %xmm2 + paddd 48(%rbx), %xmm3 + paddd 128+0(%rbx), %xmm8 + paddd 128+16(%rbx), %xmm9 + paddd 128+32(%rbx), %xmm10 + paddd 128+48(%rbx), %xmm11 + paddd 256+0(%rbx), %xmm12 + paddd 256+16(%rbx), %xmm13 + paddd 256+32(%rbx), %xmm14 + paddd 256+48(%rbx), %xmm15 + movdqa %xmm0, 0(%rsp) + movdqa %xmm1, 16(%rsp) + movdqa %xmm2, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm8, 128+0(%rsp) + movdqa %xmm9, 128+16(%rsp) + movdqa %xmm10, 128+32(%rsp) + movdqa %xmm11, 128+48(%rsp) + movdqa %xmm12, 256+0(%rsp) + movdqa %xmm13, 256+16(%rsp) + movdqa %xmm14, 256+32(%rsp) + movdqa %xmm15, 256+48(%rsp) + + pxor 64(%rbx), %xmm0 + pxor 80(%rbx), %xmm1 + pxor 96(%rbx), %xmm2 + pxor 112(%rbx), %xmm3 + pxor 128+64(%rbx), %xmm8 + pxor 128+80(%rbx), %xmm9 + pxor 128+96(%rbx), %xmm10 + pxor 128+112(%rbx), %xmm11 + pxor 256+64(%rbx), %xmm12 + pxor 256+80(%rbx), %xmm13 + pxor 256+96(%rbx), %xmm14 + pxor 256+112(%rbx), %xmm15 + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + paddd 64(%rsp), %xmm0 + paddd 80(%rsp), %xmm1 + paddd 96(%rsp), %xmm2 + paddd 112(%rsp), %xmm3 + paddd 128+64(%rsp), %xmm8 + paddd 128+80(%rsp), %xmm9 + paddd 128+96(%rsp), %xmm10 + paddd 128+112(%rsp), %xmm11 + paddd 256+64(%rsp), %xmm12 + paddd 256+80(%rsp), %xmm13 + paddd 256+96(%rsp), %xmm14 + paddd 256+112(%rsp), %xmm15 + + addq $3*128, %rbx + cmpq %rax, %rbx + jne scrypt_core_3way_avx_loop1 + + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + + movq %r8, %rcx + subq $1, %r8 +scrypt_core_3way_avx_loop2: + movd %xmm0, %ebp + movd %xmm8, %ebx + movd %xmm12, %eax + pxor 0(%rsp), %xmm0 + pxor 16(%rsp), %xmm1 + pxor 32(%rsp), %xmm2 + pxor 48(%rsp), %xmm3 + pxor 128+0(%rsp), %xmm8 + pxor 128+16(%rsp), %xmm9 + pxor 128+32(%rsp), %xmm10 + pxor 128+48(%rsp), %xmm11 + pxor 256+0(%rsp), %xmm12 + pxor 256+16(%rsp), %xmm13 + pxor 256+32(%rsp), %xmm14 + pxor 256+48(%rsp), %xmm15 + andl %r8d, %ebp + leaq (%rbp, %rbp, 2), %rbp + shll $7, %ebp + andl %r8d, %ebx + leaq 1(%rbx, %rbx, 2), %rbx + shll $7, %ebx + andl %r8d, %eax + leaq 2(%rax, %rax, 2), %rax + shll $7, %eax + pxor 0(%rsi, %rbp), %xmm0 + pxor 16(%rsi, %rbp), %xmm1 + pxor 32(%rsi, %rbp), %xmm2 + pxor 48(%rsi, %rbp), %xmm3 + pxor 0(%rsi, %rbx), %xmm8 + pxor 16(%rsi, %rbx), %xmm9 + pxor 32(%rsi, %rbx), %xmm10 + pxor 48(%rsi, %rbx), %xmm11 + pxor 0(%rsi, %rax), %xmm12 + pxor 16(%rsi, %rax), %xmm13 + pxor 32(%rsi, %rax), %xmm14 + pxor 48(%rsi, %rax), %xmm15 + + movdqa %xmm0, 0(%rsp) + movdqa %xmm1, 16(%rsp) + movdqa %xmm2, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm8, 128+0(%rsp) + movdqa %xmm9, 128+16(%rsp) + movdqa %xmm10, 128+32(%rsp) + movdqa %xmm11, 128+48(%rsp) + movdqa %xmm12, 256+0(%rsp) + movdqa %xmm13, 256+16(%rsp) + movdqa %xmm14, 256+32(%rsp) + movdqa %xmm15, 256+48(%rsp) + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + paddd 0(%rsp), %xmm0 + paddd 16(%rsp), %xmm1 + paddd 32(%rsp), %xmm2 + paddd 48(%rsp), %xmm3 + paddd 128+0(%rsp), %xmm8 + paddd 128+16(%rsp), %xmm9 + paddd 128+32(%rsp), %xmm10 + paddd 128+48(%rsp), %xmm11 + paddd 256+0(%rsp), %xmm12 + paddd 256+16(%rsp), %xmm13 + paddd 256+32(%rsp), %xmm14 + paddd 256+48(%rsp), %xmm15 + movdqa %xmm0, 0(%rsp) + movdqa %xmm1, 16(%rsp) + movdqa %xmm2, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm8, 128+0(%rsp) + movdqa %xmm9, 128+16(%rsp) + movdqa %xmm10, 128+32(%rsp) + movdqa %xmm11, 128+48(%rsp) + movdqa %xmm12, 256+0(%rsp) + movdqa %xmm13, 256+16(%rsp) + movdqa %xmm14, 256+32(%rsp) + movdqa %xmm15, 256+48(%rsp) + + pxor 64(%rsi, %rbp), %xmm0 + pxor 80(%rsi, %rbp), %xmm1 + pxor 96(%rsi, %rbp), %xmm2 + pxor 112(%rsi, %rbp), %xmm3 + pxor 64(%rsi, %rbx), %xmm8 + pxor 80(%rsi, %rbx), %xmm9 + pxor 96(%rsi, %rbx), %xmm10 + pxor 112(%rsi, %rbx), %xmm11 + pxor 64(%rsi, %rax), %xmm12 + pxor 80(%rsi, %rax), %xmm13 + pxor 96(%rsi, %rax), %xmm14 + pxor 112(%rsi, %rax), %xmm15 + pxor 64(%rsp), %xmm0 + pxor 80(%rsp), %xmm1 + pxor 96(%rsp), %xmm2 + pxor 112(%rsp), %xmm3 + pxor 128+64(%rsp), %xmm8 + pxor 128+80(%rsp), %xmm9 + pxor 128+96(%rsp), %xmm10 + pxor 128+112(%rsp), %xmm11 + pxor 256+64(%rsp), %xmm12 + pxor 256+80(%rsp), %xmm13 + pxor 256+96(%rsp), %xmm14 + pxor 256+112(%rsp), %xmm15 + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vpslld $7, %xmm4, %xmm5 + vpsrld $25, %xmm4, %xmm4 + vpshufd $0x39, %xmm1, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpslld $7, %xmm6, %xmm5 + vpsrld $25, %xmm6, %xmm6 + vpshufd $0x39, %xmm9, %xmm9 + vpxor %xmm5, %xmm9, %xmm9 + vpxor %xmm6, %xmm9, %xmm9 + vpslld $7, %xmm7, %xmm5 + vpsrld $25, %xmm7, %xmm7 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm5, %xmm13, %xmm13 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vpslld $9, %xmm4, %xmm5 + vpsrld $23, %xmm4, %xmm4 + vpxor %xmm5, %xmm2, %xmm2 + vpxor %xmm4, %xmm2, %xmm2 + vpslld $9, %xmm6, %xmm5 + vpsrld $23, %xmm6, %xmm6 + vpxor %xmm5, %xmm10, %xmm10 + vpxor %xmm6, %xmm10, %xmm10 + vpslld $9, %xmm7, %xmm5 + vpsrld $23, %xmm7, %xmm7 + vpxor %xmm5, %xmm14, %xmm14 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vpslld $13, %xmm4, %xmm5 + vpsrld $19, %xmm4, %xmm4 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm5, %xmm3, %xmm3 + vpxor %xmm4, %xmm3, %xmm3 + vpslld $13, %xmm6, %xmm5 + vpsrld $19, %xmm6, %xmm6 + vpxor %xmm5, %xmm11, %xmm11 + vpxor %xmm6, %xmm11, %xmm11 + vpslld $13, %xmm7, %xmm5 + vpsrld $19, %xmm7, %xmm7 + vpxor %xmm5, %xmm15, %xmm15 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vpslld $18, %xmm4, %xmm5 + vpsrld $14, %xmm4, %xmm4 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpxor %xmm5, %xmm0, %xmm0 + vpxor %xmm4, %xmm0, %xmm0 + vpslld $18, %xmm6, %xmm5 + vpsrld $14, %xmm6, %xmm6 + vpshufd $0x4e, %xmm14, %xmm14 + vpshufd $0x39, %xmm11, %xmm11 + vpxor %xmm5, %xmm8, %xmm8 + vpxor %xmm6, %xmm8, %xmm8 + vpslld $18, %xmm7, %xmm5 + vpsrld $14, %xmm7, %xmm7 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm15, %xmm15 + vpxor %xmm5, %xmm12, %xmm12 + vpxor %xmm7, %xmm12, %xmm12 + paddd 64(%rsp), %xmm0 + paddd 80(%rsp), %xmm1 + paddd 96(%rsp), %xmm2 + paddd 112(%rsp), %xmm3 + paddd 128+64(%rsp), %xmm8 + paddd 128+80(%rsp), %xmm9 + paddd 128+96(%rsp), %xmm10 + paddd 128+112(%rsp), %xmm11 + paddd 256+64(%rsp), %xmm12 + paddd 256+80(%rsp), %xmm13 + paddd 256+96(%rsp), %xmm14 + paddd 256+112(%rsp), %xmm15 + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + + subq $1, %rcx + ja scrypt_core_3way_avx_loop2 + + movl 0+60(%rsp), %eax + movl 0+44(%rsp), %ebx + movl 0+28(%rsp), %ecx + movl 0+12(%rsp), %edx + movl %eax, 0+12(%rdi) + movl %ebx, 0+28(%rdi) + movl %ecx, 0+44(%rdi) + movl %edx, 0+60(%rdi) + movl 0+40(%rsp), %eax + movl 0+8(%rsp), %ebx + movl 0+48(%rsp), %ecx + movl 0+16(%rsp), %edx + movl %eax, 0+8(%rdi) + movl %ebx, 0+40(%rdi) + movl %ecx, 0+16(%rdi) + movl %edx, 0+48(%rdi) + movl 0+20(%rsp), %eax + movl 0+4(%rsp), %ebx + movl 0+52(%rsp), %ecx + movl 0+36(%rsp), %edx + movl %eax, 0+4(%rdi) + movl %ebx, 0+20(%rdi) + movl %ecx, 0+36(%rdi) + movl %edx, 0+52(%rdi) + movl 0+0(%rsp), %eax + movl 0+24(%rsp), %ebx + movl 0+32(%rsp), %ecx + movl 0+56(%rsp), %edx + movl %eax, 0+0(%rdi) + movl %ebx, 0+24(%rdi) + movl %ecx, 0+32(%rdi) + movl %edx, 0+56(%rdi) + movl 64+60(%rsp), %eax + movl 64+44(%rsp), %ebx + movl 64+28(%rsp), %ecx + movl 64+12(%rsp), %edx + movl %eax, 64+12(%rdi) + movl %ebx, 64+28(%rdi) + movl %ecx, 64+44(%rdi) + movl %edx, 64+60(%rdi) + movl 64+40(%rsp), %eax + movl 64+8(%rsp), %ebx + movl 64+48(%rsp), %ecx + movl 64+16(%rsp), %edx + movl %eax, 64+8(%rdi) + movl %ebx, 64+40(%rdi) + movl %ecx, 64+16(%rdi) + movl %edx, 64+48(%rdi) + movl 64+20(%rsp), %eax + movl 64+4(%rsp), %ebx + movl 64+52(%rsp), %ecx + movl 64+36(%rsp), %edx + movl %eax, 64+4(%rdi) + movl %ebx, 64+20(%rdi) + movl %ecx, 64+36(%rdi) + movl %edx, 64+52(%rdi) + movl 64+0(%rsp), %eax + movl 64+24(%rsp), %ebx + movl 64+32(%rsp), %ecx + movl 64+56(%rsp), %edx + movl %eax, 64+0(%rdi) + movl %ebx, 64+24(%rdi) + movl %ecx, 64+32(%rdi) + movl %edx, 64+56(%rdi) + movl 128+60(%rsp), %eax + movl 128+44(%rsp), %ebx + movl 128+28(%rsp), %ecx + movl 128+12(%rsp), %edx + movl %eax, 128+12(%rdi) + movl %ebx, 128+28(%rdi) + movl %ecx, 128+44(%rdi) + movl %edx, 128+60(%rdi) + movl 128+40(%rsp), %eax + movl 128+8(%rsp), %ebx + movl 128+48(%rsp), %ecx + movl 128+16(%rsp), %edx + movl %eax, 128+8(%rdi) + movl %ebx, 128+40(%rdi) + movl %ecx, 128+16(%rdi) + movl %edx, 128+48(%rdi) + movl 128+20(%rsp), %eax + movl 128+4(%rsp), %ebx + movl 128+52(%rsp), %ecx + movl 128+36(%rsp), %edx + movl %eax, 128+4(%rdi) + movl %ebx, 128+20(%rdi) + movl %ecx, 128+36(%rdi) + movl %edx, 128+52(%rdi) + movl 128+0(%rsp), %eax + movl 128+24(%rsp), %ebx + movl 128+32(%rsp), %ecx + movl 128+56(%rsp), %edx + movl %eax, 128+0(%rdi) + movl %ebx, 128+24(%rdi) + movl %ecx, 128+32(%rdi) + movl %edx, 128+56(%rdi) + movl 192+60(%rsp), %eax + movl 192+44(%rsp), %ebx + movl 192+28(%rsp), %ecx + movl 192+12(%rsp), %edx + movl %eax, 192+12(%rdi) + movl %ebx, 192+28(%rdi) + movl %ecx, 192+44(%rdi) + movl %edx, 192+60(%rdi) + movl 192+40(%rsp), %eax + movl 192+8(%rsp), %ebx + movl 192+48(%rsp), %ecx + movl 192+16(%rsp), %edx + movl %eax, 192+8(%rdi) + movl %ebx, 192+40(%rdi) + movl %ecx, 192+16(%rdi) + movl %edx, 192+48(%rdi) + movl 192+20(%rsp), %eax + movl 192+4(%rsp), %ebx + movl 192+52(%rsp), %ecx + movl 192+36(%rsp), %edx + movl %eax, 192+4(%rdi) + movl %ebx, 192+20(%rdi) + movl %ecx, 192+36(%rdi) + movl %edx, 192+52(%rdi) + movl 192+0(%rsp), %eax + movl 192+24(%rsp), %ebx + movl 192+32(%rsp), %ecx + movl 192+56(%rsp), %edx + movl %eax, 192+0(%rdi) + movl %ebx, 192+24(%rdi) + movl %ecx, 192+32(%rdi) + movl %edx, 192+56(%rdi) + movl 256+60(%rsp), %eax + movl 256+44(%rsp), %ebx + movl 256+28(%rsp), %ecx + movl 256+12(%rsp), %edx + movl %eax, 256+12(%rdi) + movl %ebx, 256+28(%rdi) + movl %ecx, 256+44(%rdi) + movl %edx, 256+60(%rdi) + movl 256+40(%rsp), %eax + movl 256+8(%rsp), %ebx + movl 256+48(%rsp), %ecx + movl 256+16(%rsp), %edx + movl %eax, 256+8(%rdi) + movl %ebx, 256+40(%rdi) + movl %ecx, 256+16(%rdi) + movl %edx, 256+48(%rdi) + movl 256+20(%rsp), %eax + movl 256+4(%rsp), %ebx + movl 256+52(%rsp), %ecx + movl 256+36(%rsp), %edx + movl %eax, 256+4(%rdi) + movl %ebx, 256+20(%rdi) + movl %ecx, 256+36(%rdi) + movl %edx, 256+52(%rdi) + movl 256+0(%rsp), %eax + movl 256+24(%rsp), %ebx + movl 256+32(%rsp), %ecx + movl 256+56(%rsp), %edx + movl %eax, 256+0(%rdi) + movl %ebx, 256+24(%rdi) + movl %ecx, 256+32(%rdi) + movl %edx, 256+56(%rdi) + movl 320+60(%rsp), %eax + movl 320+44(%rsp), %ebx + movl 320+28(%rsp), %ecx + movl 320+12(%rsp), %edx + movl %eax, 320+12(%rdi) + movl %ebx, 320+28(%rdi) + movl %ecx, 320+44(%rdi) + movl %edx, 320+60(%rdi) + movl 320+40(%rsp), %eax + movl 320+8(%rsp), %ebx + movl 320+48(%rsp), %ecx + movl 320+16(%rsp), %edx + movl %eax, 320+8(%rdi) + movl %ebx, 320+40(%rdi) + movl %ecx, 320+16(%rdi) + movl %edx, 320+48(%rdi) + movl 320+20(%rsp), %eax + movl 320+4(%rsp), %ebx + movl 320+52(%rsp), %ecx + movl 320+36(%rsp), %edx + movl %eax, 320+4(%rdi) + movl %ebx, 320+20(%rdi) + movl %ecx, 320+36(%rdi) + movl %edx, 320+52(%rdi) + movl 320+0(%rsp), %eax + movl 320+24(%rsp), %ebx + movl 320+32(%rsp), %ecx + movl 320+56(%rsp), %edx + movl %eax, 320+0(%rdi) + movl %ebx, 320+24(%rdi) + movl %ecx, 320+32(%rdi) + movl %edx, 320+56(%rdi) + + addq $392, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + popq %rdi + movdqa 8(%rsp), %xmm6 + movdqa 24(%rsp), %xmm7 + movdqa 40(%rsp), %xmm8 + movdqa 56(%rsp), %xmm9 + movdqa 72(%rsp), %xmm10 + movdqa 88(%rsp), %xmm11 + movdqa 104(%rsp), %xmm12 + movdqa 120(%rsp), %xmm13 + movdqa 136(%rsp), %xmm14 + movdqa 152(%rsp), %xmm15 + addq $176, %rsp +#endif + popq %rbp + popq %rbx + ret + +#if defined(USE_XOP) + + + .p2align 6 +scrypt_core_3way_xop: + movl 0+60(%rdi), %eax + movl 0+44(%rdi), %ebx + movl 0+28(%rdi), %ecx + movl 0+12(%rdi), %edx + movl %eax, 0+12(%rsp) + movl %ebx, 0+28(%rsp) + movl %ecx, 0+44(%rsp) + movl %edx, 0+60(%rsp) + movl 0+40(%rdi), %eax + movl 0+8(%rdi), %ebx + movl 0+48(%rdi), %ecx + movl 0+16(%rdi), %edx + movl %eax, 0+8(%rsp) + movl %ebx, 0+40(%rsp) + movl %ecx, 0+16(%rsp) + movl %edx, 0+48(%rsp) + movl 0+20(%rdi), %eax + movl 0+4(%rdi), %ebx + movl 0+52(%rdi), %ecx + movl 0+36(%rdi), %edx + movl %eax, 0+4(%rsp) + movl %ebx, 0+20(%rsp) + movl %ecx, 0+36(%rsp) + movl %edx, 0+52(%rsp) + movl 0+0(%rdi), %eax + movl 0+24(%rdi), %ebx + movl 0+32(%rdi), %ecx + movl 0+56(%rdi), %edx + movl %eax, 0+0(%rsp) + movl %ebx, 0+24(%rsp) + movl %ecx, 0+32(%rsp) + movl %edx, 0+56(%rsp) + movl 64+60(%rdi), %eax + movl 64+44(%rdi), %ebx + movl 64+28(%rdi), %ecx + movl 64+12(%rdi), %edx + movl %eax, 64+12(%rsp) + movl %ebx, 64+28(%rsp) + movl %ecx, 64+44(%rsp) + movl %edx, 64+60(%rsp) + movl 64+40(%rdi), %eax + movl 64+8(%rdi), %ebx + movl 64+48(%rdi), %ecx + movl 64+16(%rdi), %edx + movl %eax, 64+8(%rsp) + movl %ebx, 64+40(%rsp) + movl %ecx, 64+16(%rsp) + movl %edx, 64+48(%rsp) + movl 64+20(%rdi), %eax + movl 64+4(%rdi), %ebx + movl 64+52(%rdi), %ecx + movl 64+36(%rdi), %edx + movl %eax, 64+4(%rsp) + movl %ebx, 64+20(%rsp) + movl %ecx, 64+36(%rsp) + movl %edx, 64+52(%rsp) + movl 64+0(%rdi), %eax + movl 64+24(%rdi), %ebx + movl 64+32(%rdi), %ecx + movl 64+56(%rdi), %edx + movl %eax, 64+0(%rsp) + movl %ebx, 64+24(%rsp) + movl %ecx, 64+32(%rsp) + movl %edx, 64+56(%rsp) + movl 128+60(%rdi), %eax + movl 128+44(%rdi), %ebx + movl 128+28(%rdi), %ecx + movl 128+12(%rdi), %edx + movl %eax, 128+12(%rsp) + movl %ebx, 128+28(%rsp) + movl %ecx, 128+44(%rsp) + movl %edx, 128+60(%rsp) + movl 128+40(%rdi), %eax + movl 128+8(%rdi), %ebx + movl 128+48(%rdi), %ecx + movl 128+16(%rdi), %edx + movl %eax, 128+8(%rsp) + movl %ebx, 128+40(%rsp) + movl %ecx, 128+16(%rsp) + movl %edx, 128+48(%rsp) + movl 128+20(%rdi), %eax + movl 128+4(%rdi), %ebx + movl 128+52(%rdi), %ecx + movl 128+36(%rdi), %edx + movl %eax, 128+4(%rsp) + movl %ebx, 128+20(%rsp) + movl %ecx, 128+36(%rsp) + movl %edx, 128+52(%rsp) + movl 128+0(%rdi), %eax + movl 128+24(%rdi), %ebx + movl 128+32(%rdi), %ecx + movl 128+56(%rdi), %edx + movl %eax, 128+0(%rsp) + movl %ebx, 128+24(%rsp) + movl %ecx, 128+32(%rsp) + movl %edx, 128+56(%rsp) + movl 192+60(%rdi), %eax + movl 192+44(%rdi), %ebx + movl 192+28(%rdi), %ecx + movl 192+12(%rdi), %edx + movl %eax, 192+12(%rsp) + movl %ebx, 192+28(%rsp) + movl %ecx, 192+44(%rsp) + movl %edx, 192+60(%rsp) + movl 192+40(%rdi), %eax + movl 192+8(%rdi), %ebx + movl 192+48(%rdi), %ecx + movl 192+16(%rdi), %edx + movl %eax, 192+8(%rsp) + movl %ebx, 192+40(%rsp) + movl %ecx, 192+16(%rsp) + movl %edx, 192+48(%rsp) + movl 192+20(%rdi), %eax + movl 192+4(%rdi), %ebx + movl 192+52(%rdi), %ecx + movl 192+36(%rdi), %edx + movl %eax, 192+4(%rsp) + movl %ebx, 192+20(%rsp) + movl %ecx, 192+36(%rsp) + movl %edx, 192+52(%rsp) + movl 192+0(%rdi), %eax + movl 192+24(%rdi), %ebx + movl 192+32(%rdi), %ecx + movl 192+56(%rdi), %edx + movl %eax, 192+0(%rsp) + movl %ebx, 192+24(%rsp) + movl %ecx, 192+32(%rsp) + movl %edx, 192+56(%rsp) + movl 256+60(%rdi), %eax + movl 256+44(%rdi), %ebx + movl 256+28(%rdi), %ecx + movl 256+12(%rdi), %edx + movl %eax, 256+12(%rsp) + movl %ebx, 256+28(%rsp) + movl %ecx, 256+44(%rsp) + movl %edx, 256+60(%rsp) + movl 256+40(%rdi), %eax + movl 256+8(%rdi), %ebx + movl 256+48(%rdi), %ecx + movl 256+16(%rdi), %edx + movl %eax, 256+8(%rsp) + movl %ebx, 256+40(%rsp) + movl %ecx, 256+16(%rsp) + movl %edx, 256+48(%rsp) + movl 256+20(%rdi), %eax + movl 256+4(%rdi), %ebx + movl 256+52(%rdi), %ecx + movl 256+36(%rdi), %edx + movl %eax, 256+4(%rsp) + movl %ebx, 256+20(%rsp) + movl %ecx, 256+36(%rsp) + movl %edx, 256+52(%rsp) + movl 256+0(%rdi), %eax + movl 256+24(%rdi), %ebx + movl 256+32(%rdi), %ecx + movl 256+56(%rdi), %edx + movl %eax, 256+0(%rsp) + movl %ebx, 256+24(%rsp) + movl %ecx, 256+32(%rsp) + movl %edx, 256+56(%rsp) + movl 320+60(%rdi), %eax + movl 320+44(%rdi), %ebx + movl 320+28(%rdi), %ecx + movl 320+12(%rdi), %edx + movl %eax, 320+12(%rsp) + movl %ebx, 320+28(%rsp) + movl %ecx, 320+44(%rsp) + movl %edx, 320+60(%rsp) + movl 320+40(%rdi), %eax + movl 320+8(%rdi), %ebx + movl 320+48(%rdi), %ecx + movl 320+16(%rdi), %edx + movl %eax, 320+8(%rsp) + movl %ebx, 320+40(%rsp) + movl %ecx, 320+16(%rsp) + movl %edx, 320+48(%rsp) + movl 320+20(%rdi), %eax + movl 320+4(%rdi), %ebx + movl 320+52(%rdi), %ecx + movl 320+36(%rdi), %edx + movl %eax, 320+4(%rsp) + movl %ebx, 320+20(%rsp) + movl %ecx, 320+36(%rsp) + movl %edx, 320+52(%rsp) + movl 320+0(%rdi), %eax + movl 320+24(%rdi), %ebx + movl 320+32(%rdi), %ecx + movl 320+56(%rdi), %edx + movl %eax, 320+0(%rsp) + movl %ebx, 320+24(%rsp) + movl %ecx, 320+32(%rsp) + movl %edx, 320+56(%rsp) + + movdqa 64(%rsp), %xmm0 + movdqa 80(%rsp), %xmm1 + movdqa 96(%rsp), %xmm2 + movdqa 112(%rsp), %xmm3 + movdqa 128+64(%rsp), %xmm8 + movdqa 128+80(%rsp), %xmm9 + movdqa 128+96(%rsp), %xmm10 + movdqa 128+112(%rsp), %xmm11 + movdqa 256+64(%rsp), %xmm12 + movdqa 256+80(%rsp), %xmm13 + movdqa 256+96(%rsp), %xmm14 + movdqa 256+112(%rsp), %xmm15 + + movq %rsi, %rbx + leaq (%r8, %r8, 2), %rax + shlq $7, %rax + addq %rsi, %rax +scrypt_core_3way_xop_loop1: + movdqa %xmm0, 64(%rbx) + movdqa %xmm1, 80(%rbx) + movdqa %xmm2, 96(%rbx) + movdqa %xmm3, 112(%rbx) + pxor 0(%rsp), %xmm0 + pxor 16(%rsp), %xmm1 + pxor 32(%rsp), %xmm2 + pxor 48(%rsp), %xmm3 + movdqa %xmm8, 128+64(%rbx) + movdqa %xmm9, 128+80(%rbx) + movdqa %xmm10, 128+96(%rbx) + movdqa %xmm11, 128+112(%rbx) + pxor 128+0(%rsp), %xmm8 + pxor 128+16(%rsp), %xmm9 + pxor 128+32(%rsp), %xmm10 + pxor 128+48(%rsp), %xmm11 + movdqa %xmm12, 256+64(%rbx) + movdqa %xmm13, 256+80(%rbx) + movdqa %xmm14, 256+96(%rbx) + movdqa %xmm15, 256+112(%rbx) + pxor 256+0(%rsp), %xmm12 + pxor 256+16(%rsp), %xmm13 + pxor 256+32(%rsp), %xmm14 + pxor 256+48(%rsp), %xmm15 + movdqa %xmm0, 0(%rbx) + movdqa %xmm1, 16(%rbx) + movdqa %xmm2, 32(%rbx) + movdqa %xmm3, 48(%rbx) + movdqa %xmm8, 128+0(%rbx) + movdqa %xmm9, 128+16(%rbx) + movdqa %xmm10, 128+32(%rbx) + movdqa %xmm11, 128+48(%rbx) + movdqa %xmm12, 256+0(%rbx) + movdqa %xmm13, 256+16(%rbx) + movdqa %xmm14, 256+32(%rbx) + movdqa %xmm15, 256+48(%rbx) + + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + paddd 0(%rbx), %xmm0 + paddd 16(%rbx), %xmm1 + paddd 32(%rbx), %xmm2 + paddd 48(%rbx), %xmm3 + paddd 128+0(%rbx), %xmm8 + paddd 128+16(%rbx), %xmm9 + paddd 128+32(%rbx), %xmm10 + paddd 128+48(%rbx), %xmm11 + paddd 256+0(%rbx), %xmm12 + paddd 256+16(%rbx), %xmm13 + paddd 256+32(%rbx), %xmm14 + paddd 256+48(%rbx), %xmm15 + movdqa %xmm0, 0(%rsp) + movdqa %xmm1, 16(%rsp) + movdqa %xmm2, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm8, 128+0(%rsp) + movdqa %xmm9, 128+16(%rsp) + movdqa %xmm10, 128+32(%rsp) + movdqa %xmm11, 128+48(%rsp) + movdqa %xmm12, 256+0(%rsp) + movdqa %xmm13, 256+16(%rsp) + movdqa %xmm14, 256+32(%rsp) + movdqa %xmm15, 256+48(%rsp) + + pxor 64(%rbx), %xmm0 + pxor 80(%rbx), %xmm1 + pxor 96(%rbx), %xmm2 + pxor 112(%rbx), %xmm3 + pxor 128+64(%rbx), %xmm8 + pxor 128+80(%rbx), %xmm9 + pxor 128+96(%rbx), %xmm10 + pxor 128+112(%rbx), %xmm11 + pxor 256+64(%rbx), %xmm12 + pxor 256+80(%rbx), %xmm13 + pxor 256+96(%rbx), %xmm14 + pxor 256+112(%rbx), %xmm15 + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + paddd 64(%rsp), %xmm0 + paddd 80(%rsp), %xmm1 + paddd 96(%rsp), %xmm2 + paddd 112(%rsp), %xmm3 + paddd 128+64(%rsp), %xmm8 + paddd 128+80(%rsp), %xmm9 + paddd 128+96(%rsp), %xmm10 + paddd 128+112(%rsp), %xmm11 + paddd 256+64(%rsp), %xmm12 + paddd 256+80(%rsp), %xmm13 + paddd 256+96(%rsp), %xmm14 + paddd 256+112(%rsp), %xmm15 + + addq $3*128, %rbx + cmpq %rax, %rbx + jne scrypt_core_3way_xop_loop1 + + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + + movq %r8, %rcx + subq $1, %r8 +scrypt_core_3way_xop_loop2: + movd %xmm0, %ebp + movd %xmm8, %ebx + movd %xmm12, %eax + pxor 0(%rsp), %xmm0 + pxor 16(%rsp), %xmm1 + pxor 32(%rsp), %xmm2 + pxor 48(%rsp), %xmm3 + pxor 128+0(%rsp), %xmm8 + pxor 128+16(%rsp), %xmm9 + pxor 128+32(%rsp), %xmm10 + pxor 128+48(%rsp), %xmm11 + pxor 256+0(%rsp), %xmm12 + pxor 256+16(%rsp), %xmm13 + pxor 256+32(%rsp), %xmm14 + pxor 256+48(%rsp), %xmm15 + andl %r8d, %ebp + leaq (%rbp, %rbp, 2), %rbp + shll $7, %ebp + andl %r8d, %ebx + leaq 1(%rbx, %rbx, 2), %rbx + shll $7, %ebx + andl %r8d, %eax + leaq 2(%rax, %rax, 2), %rax + shll $7, %eax + pxor 0(%rsi, %rbp), %xmm0 + pxor 16(%rsi, %rbp), %xmm1 + pxor 32(%rsi, %rbp), %xmm2 + pxor 48(%rsi, %rbp), %xmm3 + pxor 0(%rsi, %rbx), %xmm8 + pxor 16(%rsi, %rbx), %xmm9 + pxor 32(%rsi, %rbx), %xmm10 + pxor 48(%rsi, %rbx), %xmm11 + pxor 0(%rsi, %rax), %xmm12 + pxor 16(%rsi, %rax), %xmm13 + pxor 32(%rsi, %rax), %xmm14 + pxor 48(%rsi, %rax), %xmm15 + + movdqa %xmm0, 0(%rsp) + movdqa %xmm1, 16(%rsp) + movdqa %xmm2, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm8, 128+0(%rsp) + movdqa %xmm9, 128+16(%rsp) + movdqa %xmm10, 128+32(%rsp) + movdqa %xmm11, 128+48(%rsp) + movdqa %xmm12, 256+0(%rsp) + movdqa %xmm13, 256+16(%rsp) + movdqa %xmm14, 256+32(%rsp) + movdqa %xmm15, 256+48(%rsp) + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + paddd 0(%rsp), %xmm0 + paddd 16(%rsp), %xmm1 + paddd 32(%rsp), %xmm2 + paddd 48(%rsp), %xmm3 + paddd 128+0(%rsp), %xmm8 + paddd 128+16(%rsp), %xmm9 + paddd 128+32(%rsp), %xmm10 + paddd 128+48(%rsp), %xmm11 + paddd 256+0(%rsp), %xmm12 + paddd 256+16(%rsp), %xmm13 + paddd 256+32(%rsp), %xmm14 + paddd 256+48(%rsp), %xmm15 + movdqa %xmm0, 0(%rsp) + movdqa %xmm1, 16(%rsp) + movdqa %xmm2, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm8, 128+0(%rsp) + movdqa %xmm9, 128+16(%rsp) + movdqa %xmm10, 128+32(%rsp) + movdqa %xmm11, 128+48(%rsp) + movdqa %xmm12, 256+0(%rsp) + movdqa %xmm13, 256+16(%rsp) + movdqa %xmm14, 256+32(%rsp) + movdqa %xmm15, 256+48(%rsp) + + pxor 64(%rsi, %rbp), %xmm0 + pxor 80(%rsi, %rbp), %xmm1 + pxor 96(%rsi, %rbp), %xmm2 + pxor 112(%rsi, %rbp), %xmm3 + pxor 64(%rsi, %rbx), %xmm8 + pxor 80(%rsi, %rbx), %xmm9 + pxor 96(%rsi, %rbx), %xmm10 + pxor 112(%rsi, %rbx), %xmm11 + pxor 64(%rsi, %rax), %xmm12 + pxor 80(%rsi, %rax), %xmm13 + pxor 96(%rsi, %rax), %xmm14 + pxor 112(%rsi, %rax), %xmm15 + pxor 64(%rsp), %xmm0 + pxor 80(%rsp), %xmm1 + pxor 96(%rsp), %xmm2 + pxor 112(%rsp), %xmm3 + pxor 128+64(%rsp), %xmm8 + pxor 128+80(%rsp), %xmm9 + pxor 128+96(%rsp), %xmm10 + pxor 128+112(%rsp), %xmm11 + pxor 256+64(%rsp), %xmm12 + pxor 256+80(%rsp), %xmm13 + pxor 256+96(%rsp), %xmm14 + pxor 256+112(%rsp), %xmm15 + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + vpaddd %xmm0, %xmm1, %xmm4 + vpaddd %xmm8, %xmm9, %xmm6 + vpaddd %xmm12, %xmm13, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm0, %xmm4 + vpaddd %xmm11, %xmm8, %xmm6 + vpaddd %xmm15, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm3, %xmm4 + vpaddd %xmm10, %xmm11, %xmm6 + vpaddd %xmm14, %xmm15, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm3, %xmm3 + vpshufd $0x93, %xmm11, %xmm11 + vpshufd $0x93, %xmm15, %xmm15 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm2, %xmm4 + vpaddd %xmm9, %xmm10, %xmm6 + vpaddd %xmm13, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm7, %xmm12, %xmm12 + + vpaddd %xmm0, %xmm3, %xmm4 + vpaddd %xmm8, %xmm11, %xmm6 + vpaddd %xmm12, %xmm15, %xmm7 + vprotd $7, %xmm4, %xmm4 + vprotd $7, %xmm6, %xmm6 + vprotd $7, %xmm7, %xmm7 + vpshufd $0x39, %xmm1, %xmm1 + vpshufd $0x39, %xmm9, %xmm9 + vpshufd $0x39, %xmm13, %xmm13 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm6, %xmm9, %xmm9 + vpxor %xmm7, %xmm13, %xmm13 + + vpaddd %xmm1, %xmm0, %xmm4 + vpaddd %xmm9, %xmm8, %xmm6 + vpaddd %xmm13, %xmm12, %xmm7 + vprotd $9, %xmm4, %xmm4 + vprotd $9, %xmm6, %xmm6 + vprotd $9, %xmm7, %xmm7 + vpxor %xmm4, %xmm2, %xmm2 + vpxor %xmm6, %xmm10, %xmm10 + vpxor %xmm7, %xmm14, %xmm14 + + vpaddd %xmm2, %xmm1, %xmm4 + vpaddd %xmm10, %xmm9, %xmm6 + vpaddd %xmm14, %xmm13, %xmm7 + vprotd $13, %xmm4, %xmm4 + vprotd $13, %xmm6, %xmm6 + vprotd $13, %xmm7, %xmm7 + vpshufd $0x93, %xmm1, %xmm1 + vpshufd $0x93, %xmm9, %xmm9 + vpshufd $0x93, %xmm13, %xmm13 + vpxor %xmm4, %xmm3, %xmm3 + vpxor %xmm6, %xmm11, %xmm11 + vpxor %xmm7, %xmm15, %xmm15 + + vpaddd %xmm3, %xmm2, %xmm4 + vpaddd %xmm11, %xmm10, %xmm6 + vpaddd %xmm15, %xmm14, %xmm7 + vprotd $18, %xmm4, %xmm4 + vprotd $18, %xmm6, %xmm6 + vprotd $18, %xmm7, %xmm7 + vpshufd $0x4e, %xmm2, %xmm2 + vpshufd $0x4e, %xmm10, %xmm10 + vpshufd $0x4e, %xmm14, %xmm14 + vpxor %xmm4, %xmm0, %xmm0 + vpxor %xmm6, %xmm8, %xmm8 + vpxor %xmm7, %xmm12, %xmm12 + vpshufd $0x39, %xmm3, %xmm3 + vpshufd $0x39, %xmm11, %xmm11 + vpshufd $0x39, %xmm15, %xmm15 + paddd 64(%rsp), %xmm0 + paddd 80(%rsp), %xmm1 + paddd 96(%rsp), %xmm2 + paddd 112(%rsp), %xmm3 + paddd 128+64(%rsp), %xmm8 + paddd 128+80(%rsp), %xmm9 + paddd 128+96(%rsp), %xmm10 + paddd 128+112(%rsp), %xmm11 + paddd 256+64(%rsp), %xmm12 + paddd 256+80(%rsp), %xmm13 + paddd 256+96(%rsp), %xmm14 + paddd 256+112(%rsp), %xmm15 + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + + subq $1, %rcx + ja scrypt_core_3way_xop_loop2 + + movl 0+60(%rsp), %eax + movl 0+44(%rsp), %ebx + movl 0+28(%rsp), %ecx + movl 0+12(%rsp), %edx + movl %eax, 0+12(%rdi) + movl %ebx, 0+28(%rdi) + movl %ecx, 0+44(%rdi) + movl %edx, 0+60(%rdi) + movl 0+40(%rsp), %eax + movl 0+8(%rsp), %ebx + movl 0+48(%rsp), %ecx + movl 0+16(%rsp), %edx + movl %eax, 0+8(%rdi) + movl %ebx, 0+40(%rdi) + movl %ecx, 0+16(%rdi) + movl %edx, 0+48(%rdi) + movl 0+20(%rsp), %eax + movl 0+4(%rsp), %ebx + movl 0+52(%rsp), %ecx + movl 0+36(%rsp), %edx + movl %eax, 0+4(%rdi) + movl %ebx, 0+20(%rdi) + movl %ecx, 0+36(%rdi) + movl %edx, 0+52(%rdi) + movl 0+0(%rsp), %eax + movl 0+24(%rsp), %ebx + movl 0+32(%rsp), %ecx + movl 0+56(%rsp), %edx + movl %eax, 0+0(%rdi) + movl %ebx, 0+24(%rdi) + movl %ecx, 0+32(%rdi) + movl %edx, 0+56(%rdi) + movl 64+60(%rsp), %eax + movl 64+44(%rsp), %ebx + movl 64+28(%rsp), %ecx + movl 64+12(%rsp), %edx + movl %eax, 64+12(%rdi) + movl %ebx, 64+28(%rdi) + movl %ecx, 64+44(%rdi) + movl %edx, 64+60(%rdi) + movl 64+40(%rsp), %eax + movl 64+8(%rsp), %ebx + movl 64+48(%rsp), %ecx + movl 64+16(%rsp), %edx + movl %eax, 64+8(%rdi) + movl %ebx, 64+40(%rdi) + movl %ecx, 64+16(%rdi) + movl %edx, 64+48(%rdi) + movl 64+20(%rsp), %eax + movl 64+4(%rsp), %ebx + movl 64+52(%rsp), %ecx + movl 64+36(%rsp), %edx + movl %eax, 64+4(%rdi) + movl %ebx, 64+20(%rdi) + movl %ecx, 64+36(%rdi) + movl %edx, 64+52(%rdi) + movl 64+0(%rsp), %eax + movl 64+24(%rsp), %ebx + movl 64+32(%rsp), %ecx + movl 64+56(%rsp), %edx + movl %eax, 64+0(%rdi) + movl %ebx, 64+24(%rdi) + movl %ecx, 64+32(%rdi) + movl %edx, 64+56(%rdi) + movl 128+60(%rsp), %eax + movl 128+44(%rsp), %ebx + movl 128+28(%rsp), %ecx + movl 128+12(%rsp), %edx + movl %eax, 128+12(%rdi) + movl %ebx, 128+28(%rdi) + movl %ecx, 128+44(%rdi) + movl %edx, 128+60(%rdi) + movl 128+40(%rsp), %eax + movl 128+8(%rsp), %ebx + movl 128+48(%rsp), %ecx + movl 128+16(%rsp), %edx + movl %eax, 128+8(%rdi) + movl %ebx, 128+40(%rdi) + movl %ecx, 128+16(%rdi) + movl %edx, 128+48(%rdi) + movl 128+20(%rsp), %eax + movl 128+4(%rsp), %ebx + movl 128+52(%rsp), %ecx + movl 128+36(%rsp), %edx + movl %eax, 128+4(%rdi) + movl %ebx, 128+20(%rdi) + movl %ecx, 128+36(%rdi) + movl %edx, 128+52(%rdi) + movl 128+0(%rsp), %eax + movl 128+24(%rsp), %ebx + movl 128+32(%rsp), %ecx + movl 128+56(%rsp), %edx + movl %eax, 128+0(%rdi) + movl %ebx, 128+24(%rdi) + movl %ecx, 128+32(%rdi) + movl %edx, 128+56(%rdi) + movl 192+60(%rsp), %eax + movl 192+44(%rsp), %ebx + movl 192+28(%rsp), %ecx + movl 192+12(%rsp), %edx + movl %eax, 192+12(%rdi) + movl %ebx, 192+28(%rdi) + movl %ecx, 192+44(%rdi) + movl %edx, 192+60(%rdi) + movl 192+40(%rsp), %eax + movl 192+8(%rsp), %ebx + movl 192+48(%rsp), %ecx + movl 192+16(%rsp), %edx + movl %eax, 192+8(%rdi) + movl %ebx, 192+40(%rdi) + movl %ecx, 192+16(%rdi) + movl %edx, 192+48(%rdi) + movl 192+20(%rsp), %eax + movl 192+4(%rsp), %ebx + movl 192+52(%rsp), %ecx + movl 192+36(%rsp), %edx + movl %eax, 192+4(%rdi) + movl %ebx, 192+20(%rdi) + movl %ecx, 192+36(%rdi) + movl %edx, 192+52(%rdi) + movl 192+0(%rsp), %eax + movl 192+24(%rsp), %ebx + movl 192+32(%rsp), %ecx + movl 192+56(%rsp), %edx + movl %eax, 192+0(%rdi) + movl %ebx, 192+24(%rdi) + movl %ecx, 192+32(%rdi) + movl %edx, 192+56(%rdi) + movl 256+60(%rsp), %eax + movl 256+44(%rsp), %ebx + movl 256+28(%rsp), %ecx + movl 256+12(%rsp), %edx + movl %eax, 256+12(%rdi) + movl %ebx, 256+28(%rdi) + movl %ecx, 256+44(%rdi) + movl %edx, 256+60(%rdi) + movl 256+40(%rsp), %eax + movl 256+8(%rsp), %ebx + movl 256+48(%rsp), %ecx + movl 256+16(%rsp), %edx + movl %eax, 256+8(%rdi) + movl %ebx, 256+40(%rdi) + movl %ecx, 256+16(%rdi) + movl %edx, 256+48(%rdi) + movl 256+20(%rsp), %eax + movl 256+4(%rsp), %ebx + movl 256+52(%rsp), %ecx + movl 256+36(%rsp), %edx + movl %eax, 256+4(%rdi) + movl %ebx, 256+20(%rdi) + movl %ecx, 256+36(%rdi) + movl %edx, 256+52(%rdi) + movl 256+0(%rsp), %eax + movl 256+24(%rsp), %ebx + movl 256+32(%rsp), %ecx + movl 256+56(%rsp), %edx + movl %eax, 256+0(%rdi) + movl %ebx, 256+24(%rdi) + movl %ecx, 256+32(%rdi) + movl %edx, 256+56(%rdi) + movl 320+60(%rsp), %eax + movl 320+44(%rsp), %ebx + movl 320+28(%rsp), %ecx + movl 320+12(%rsp), %edx + movl %eax, 320+12(%rdi) + movl %ebx, 320+28(%rdi) + movl %ecx, 320+44(%rdi) + movl %edx, 320+60(%rdi) + movl 320+40(%rsp), %eax + movl 320+8(%rsp), %ebx + movl 320+48(%rsp), %ecx + movl 320+16(%rsp), %edx + movl %eax, 320+8(%rdi) + movl %ebx, 320+40(%rdi) + movl %ecx, 320+16(%rdi) + movl %edx, 320+48(%rdi) + movl 320+20(%rsp), %eax + movl 320+4(%rsp), %ebx + movl 320+52(%rsp), %ecx + movl 320+36(%rsp), %edx + movl %eax, 320+4(%rdi) + movl %ebx, 320+20(%rdi) + movl %ecx, 320+36(%rdi) + movl %edx, 320+52(%rdi) + movl 320+0(%rsp), %eax + movl 320+24(%rsp), %ebx + movl 320+32(%rsp), %ecx + movl 320+56(%rsp), %edx + movl %eax, 320+0(%rdi) + movl %ebx, 320+24(%rdi) + movl %ecx, 320+32(%rdi) + movl %edx, 320+56(%rdi) + + addq $392, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + popq %rdi + movdqa 8(%rsp), %xmm6 + movdqa 24(%rsp), %xmm7 + movdqa 40(%rsp), %xmm8 + movdqa 56(%rsp), %xmm9 + movdqa 72(%rsp), %xmm10 + movdqa 88(%rsp), %xmm11 + movdqa 104(%rsp), %xmm12 + movdqa 120(%rsp), %xmm13 + movdqa 136(%rsp), %xmm14 + movdqa 152(%rsp), %xmm15 + addq $176, %rsp +#endif + popq %rbp + popq %rbx + ret +#endif /* USE_XOP */ +#endif /* USE_AVX */ + + + + .p2align 6 +scrypt_core_3way_xmm: + movl 0+60(%rdi), %eax + movl 0+44(%rdi), %ebx + movl 0+28(%rdi), %ecx + movl 0+12(%rdi), %edx + movl %eax, 0+12(%rsp) + movl %ebx, 0+28(%rsp) + movl %ecx, 0+44(%rsp) + movl %edx, 0+60(%rsp) + movl 0+40(%rdi), %eax + movl 0+8(%rdi), %ebx + movl 0+48(%rdi), %ecx + movl 0+16(%rdi), %edx + movl %eax, 0+8(%rsp) + movl %ebx, 0+40(%rsp) + movl %ecx, 0+16(%rsp) + movl %edx, 0+48(%rsp) + movl 0+20(%rdi), %eax + movl 0+4(%rdi), %ebx + movl 0+52(%rdi), %ecx + movl 0+36(%rdi), %edx + movl %eax, 0+4(%rsp) + movl %ebx, 0+20(%rsp) + movl %ecx, 0+36(%rsp) + movl %edx, 0+52(%rsp) + movl 0+0(%rdi), %eax + movl 0+24(%rdi), %ebx + movl 0+32(%rdi), %ecx + movl 0+56(%rdi), %edx + movl %eax, 0+0(%rsp) + movl %ebx, 0+24(%rsp) + movl %ecx, 0+32(%rsp) + movl %edx, 0+56(%rsp) + movl 64+60(%rdi), %eax + movl 64+44(%rdi), %ebx + movl 64+28(%rdi), %ecx + movl 64+12(%rdi), %edx + movl %eax, 64+12(%rsp) + movl %ebx, 64+28(%rsp) + movl %ecx, 64+44(%rsp) + movl %edx, 64+60(%rsp) + movl 64+40(%rdi), %eax + movl 64+8(%rdi), %ebx + movl 64+48(%rdi), %ecx + movl 64+16(%rdi), %edx + movl %eax, 64+8(%rsp) + movl %ebx, 64+40(%rsp) + movl %ecx, 64+16(%rsp) + movl %edx, 64+48(%rsp) + movl 64+20(%rdi), %eax + movl 64+4(%rdi), %ebx + movl 64+52(%rdi), %ecx + movl 64+36(%rdi), %edx + movl %eax, 64+4(%rsp) + movl %ebx, 64+20(%rsp) + movl %ecx, 64+36(%rsp) + movl %edx, 64+52(%rsp) + movl 64+0(%rdi), %eax + movl 64+24(%rdi), %ebx + movl 64+32(%rdi), %ecx + movl 64+56(%rdi), %edx + movl %eax, 64+0(%rsp) + movl %ebx, 64+24(%rsp) + movl %ecx, 64+32(%rsp) + movl %edx, 64+56(%rsp) + movl 128+60(%rdi), %eax + movl 128+44(%rdi), %ebx + movl 128+28(%rdi), %ecx + movl 128+12(%rdi), %edx + movl %eax, 128+12(%rsp) + movl %ebx, 128+28(%rsp) + movl %ecx, 128+44(%rsp) + movl %edx, 128+60(%rsp) + movl 128+40(%rdi), %eax + movl 128+8(%rdi), %ebx + movl 128+48(%rdi), %ecx + movl 128+16(%rdi), %edx + movl %eax, 128+8(%rsp) + movl %ebx, 128+40(%rsp) + movl %ecx, 128+16(%rsp) + movl %edx, 128+48(%rsp) + movl 128+20(%rdi), %eax + movl 128+4(%rdi), %ebx + movl 128+52(%rdi), %ecx + movl 128+36(%rdi), %edx + movl %eax, 128+4(%rsp) + movl %ebx, 128+20(%rsp) + movl %ecx, 128+36(%rsp) + movl %edx, 128+52(%rsp) + movl 128+0(%rdi), %eax + movl 128+24(%rdi), %ebx + movl 128+32(%rdi), %ecx + movl 128+56(%rdi), %edx + movl %eax, 128+0(%rsp) + movl %ebx, 128+24(%rsp) + movl %ecx, 128+32(%rsp) + movl %edx, 128+56(%rsp) + movl 192+60(%rdi), %eax + movl 192+44(%rdi), %ebx + movl 192+28(%rdi), %ecx + movl 192+12(%rdi), %edx + movl %eax, 192+12(%rsp) + movl %ebx, 192+28(%rsp) + movl %ecx, 192+44(%rsp) + movl %edx, 192+60(%rsp) + movl 192+40(%rdi), %eax + movl 192+8(%rdi), %ebx + movl 192+48(%rdi), %ecx + movl 192+16(%rdi), %edx + movl %eax, 192+8(%rsp) + movl %ebx, 192+40(%rsp) + movl %ecx, 192+16(%rsp) + movl %edx, 192+48(%rsp) + movl 192+20(%rdi), %eax + movl 192+4(%rdi), %ebx + movl 192+52(%rdi), %ecx + movl 192+36(%rdi), %edx + movl %eax, 192+4(%rsp) + movl %ebx, 192+20(%rsp) + movl %ecx, 192+36(%rsp) + movl %edx, 192+52(%rsp) + movl 192+0(%rdi), %eax + movl 192+24(%rdi), %ebx + movl 192+32(%rdi), %ecx + movl 192+56(%rdi), %edx + movl %eax, 192+0(%rsp) + movl %ebx, 192+24(%rsp) + movl %ecx, 192+32(%rsp) + movl %edx, 192+56(%rsp) + movl 256+60(%rdi), %eax + movl 256+44(%rdi), %ebx + movl 256+28(%rdi), %ecx + movl 256+12(%rdi), %edx + movl %eax, 256+12(%rsp) + movl %ebx, 256+28(%rsp) + movl %ecx, 256+44(%rsp) + movl %edx, 256+60(%rsp) + movl 256+40(%rdi), %eax + movl 256+8(%rdi), %ebx + movl 256+48(%rdi), %ecx + movl 256+16(%rdi), %edx + movl %eax, 256+8(%rsp) + movl %ebx, 256+40(%rsp) + movl %ecx, 256+16(%rsp) + movl %edx, 256+48(%rsp) + movl 256+20(%rdi), %eax + movl 256+4(%rdi), %ebx + movl 256+52(%rdi), %ecx + movl 256+36(%rdi), %edx + movl %eax, 256+4(%rsp) + movl %ebx, 256+20(%rsp) + movl %ecx, 256+36(%rsp) + movl %edx, 256+52(%rsp) + movl 256+0(%rdi), %eax + movl 256+24(%rdi), %ebx + movl 256+32(%rdi), %ecx + movl 256+56(%rdi), %edx + movl %eax, 256+0(%rsp) + movl %ebx, 256+24(%rsp) + movl %ecx, 256+32(%rsp) + movl %edx, 256+56(%rsp) + movl 320+60(%rdi), %eax + movl 320+44(%rdi), %ebx + movl 320+28(%rdi), %ecx + movl 320+12(%rdi), %edx + movl %eax, 320+12(%rsp) + movl %ebx, 320+28(%rsp) + movl %ecx, 320+44(%rsp) + movl %edx, 320+60(%rsp) + movl 320+40(%rdi), %eax + movl 320+8(%rdi), %ebx + movl 320+48(%rdi), %ecx + movl 320+16(%rdi), %edx + movl %eax, 320+8(%rsp) + movl %ebx, 320+40(%rsp) + movl %ecx, 320+16(%rsp) + movl %edx, 320+48(%rsp) + movl 320+20(%rdi), %eax + movl 320+4(%rdi), %ebx + movl 320+52(%rdi), %ecx + movl 320+36(%rdi), %edx + movl %eax, 320+4(%rsp) + movl %ebx, 320+20(%rsp) + movl %ecx, 320+36(%rsp) + movl %edx, 320+52(%rsp) + movl 320+0(%rdi), %eax + movl 320+24(%rdi), %ebx + movl 320+32(%rdi), %ecx + movl 320+56(%rdi), %edx + movl %eax, 320+0(%rsp) + movl %ebx, 320+24(%rsp) + movl %ecx, 320+32(%rsp) + movl %edx, 320+56(%rsp) + + movdqa 64(%rsp), %xmm0 + movdqa 80(%rsp), %xmm1 + movdqa 96(%rsp), %xmm2 + movdqa 112(%rsp), %xmm3 + movdqa 128+64(%rsp), %xmm8 + movdqa 128+80(%rsp), %xmm9 + movdqa 128+96(%rsp), %xmm10 + movdqa 128+112(%rsp), %xmm11 + movdqa 256+64(%rsp), %xmm12 + movdqa 256+80(%rsp), %xmm13 + movdqa 256+96(%rsp), %xmm14 + movdqa 256+112(%rsp), %xmm15 + + movq %rsi, %rbx + leaq (%r8, %r8, 2), %rax + shlq $7, %rax + addq %rsi, %rax +scrypt_core_3way_xmm_loop1: + movdqa %xmm0, 64(%rbx) + movdqa %xmm1, 80(%rbx) + movdqa %xmm2, 96(%rbx) + movdqa %xmm3, 112(%rbx) + pxor 0(%rsp), %xmm0 + pxor 16(%rsp), %xmm1 + pxor 32(%rsp), %xmm2 + pxor 48(%rsp), %xmm3 + movdqa %xmm8, 128+64(%rbx) + movdqa %xmm9, 128+80(%rbx) + movdqa %xmm10, 128+96(%rbx) + movdqa %xmm11, 128+112(%rbx) + pxor 128+0(%rsp), %xmm8 + pxor 128+16(%rsp), %xmm9 + pxor 128+32(%rsp), %xmm10 + pxor 128+48(%rsp), %xmm11 + movdqa %xmm12, 256+64(%rbx) + movdqa %xmm13, 256+80(%rbx) + movdqa %xmm14, 256+96(%rbx) + movdqa %xmm15, 256+112(%rbx) + pxor 256+0(%rsp), %xmm12 + pxor 256+16(%rsp), %xmm13 + pxor 256+32(%rsp), %xmm14 + pxor 256+48(%rsp), %xmm15 + movdqa %xmm0, 0(%rbx) + movdqa %xmm1, 16(%rbx) + movdqa %xmm2, 32(%rbx) + movdqa %xmm3, 48(%rbx) + movdqa %xmm8, 128+0(%rbx) + movdqa %xmm9, 128+16(%rbx) + movdqa %xmm10, 128+32(%rbx) + movdqa %xmm11, 128+48(%rbx) + movdqa %xmm12, 256+0(%rbx) + movdqa %xmm13, 256+16(%rbx) + movdqa %xmm14, 256+32(%rbx) + movdqa %xmm15, 256+48(%rbx) + + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + paddd 0(%rbx), %xmm0 + paddd 16(%rbx), %xmm1 + paddd 32(%rbx), %xmm2 + paddd 48(%rbx), %xmm3 + paddd 128+0(%rbx), %xmm8 + paddd 128+16(%rbx), %xmm9 + paddd 128+32(%rbx), %xmm10 + paddd 128+48(%rbx), %xmm11 + paddd 256+0(%rbx), %xmm12 + paddd 256+16(%rbx), %xmm13 + paddd 256+32(%rbx), %xmm14 + paddd 256+48(%rbx), %xmm15 + movdqa %xmm0, 0(%rsp) + movdqa %xmm1, 16(%rsp) + movdqa %xmm2, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm8, 128+0(%rsp) + movdqa %xmm9, 128+16(%rsp) + movdqa %xmm10, 128+32(%rsp) + movdqa %xmm11, 128+48(%rsp) + movdqa %xmm12, 256+0(%rsp) + movdqa %xmm13, 256+16(%rsp) + movdqa %xmm14, 256+32(%rsp) + movdqa %xmm15, 256+48(%rsp) + + pxor 64(%rbx), %xmm0 + pxor 80(%rbx), %xmm1 + pxor 96(%rbx), %xmm2 + pxor 112(%rbx), %xmm3 + pxor 128+64(%rbx), %xmm8 + pxor 128+80(%rbx), %xmm9 + pxor 128+96(%rbx), %xmm10 + pxor 128+112(%rbx), %xmm11 + pxor 256+64(%rbx), %xmm12 + pxor 256+80(%rbx), %xmm13 + pxor 256+96(%rbx), %xmm14 + pxor 256+112(%rbx), %xmm15 + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + paddd 64(%rsp), %xmm0 + paddd 80(%rsp), %xmm1 + paddd 96(%rsp), %xmm2 + paddd 112(%rsp), %xmm3 + paddd 128+64(%rsp), %xmm8 + paddd 128+80(%rsp), %xmm9 + paddd 128+96(%rsp), %xmm10 + paddd 128+112(%rsp), %xmm11 + paddd 256+64(%rsp), %xmm12 + paddd 256+80(%rsp), %xmm13 + paddd 256+96(%rsp), %xmm14 + paddd 256+112(%rsp), %xmm15 + + addq $3*128, %rbx + cmpq %rax, %rbx + jne scrypt_core_3way_xmm_loop1 + + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + + movq %r8, %rcx + subq $1, %r8 +scrypt_core_3way_xmm_loop2: + movd %xmm0, %ebp + movd %xmm8, %ebx + movd %xmm12, %eax + pxor 0(%rsp), %xmm0 + pxor 16(%rsp), %xmm1 + pxor 32(%rsp), %xmm2 + pxor 48(%rsp), %xmm3 + pxor 128+0(%rsp), %xmm8 + pxor 128+16(%rsp), %xmm9 + pxor 128+32(%rsp), %xmm10 + pxor 128+48(%rsp), %xmm11 + pxor 256+0(%rsp), %xmm12 + pxor 256+16(%rsp), %xmm13 + pxor 256+32(%rsp), %xmm14 + pxor 256+48(%rsp), %xmm15 + andl %r8d, %ebp + leaq (%rbp, %rbp, 2), %rbp + shll $7, %ebp + andl %r8d, %ebx + leaq 1(%rbx, %rbx, 2), %rbx + shll $7, %ebx + andl %r8d, %eax + leaq 2(%rax, %rax, 2), %rax + shll $7, %eax + pxor 0(%rsi, %rbp), %xmm0 + pxor 16(%rsi, %rbp), %xmm1 + pxor 32(%rsi, %rbp), %xmm2 + pxor 48(%rsi, %rbp), %xmm3 + pxor 0(%rsi, %rbx), %xmm8 + pxor 16(%rsi, %rbx), %xmm9 + pxor 32(%rsi, %rbx), %xmm10 + pxor 48(%rsi, %rbx), %xmm11 + pxor 0(%rsi, %rax), %xmm12 + pxor 16(%rsi, %rax), %xmm13 + pxor 32(%rsi, %rax), %xmm14 + pxor 48(%rsi, %rax), %xmm15 + + movdqa %xmm0, 0(%rsp) + movdqa %xmm1, 16(%rsp) + movdqa %xmm2, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm8, 128+0(%rsp) + movdqa %xmm9, 128+16(%rsp) + movdqa %xmm10, 128+32(%rsp) + movdqa %xmm11, 128+48(%rsp) + movdqa %xmm12, 256+0(%rsp) + movdqa %xmm13, 256+16(%rsp) + movdqa %xmm14, 256+32(%rsp) + movdqa %xmm15, 256+48(%rsp) + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + paddd 0(%rsp), %xmm0 + paddd 16(%rsp), %xmm1 + paddd 32(%rsp), %xmm2 + paddd 48(%rsp), %xmm3 + paddd 128+0(%rsp), %xmm8 + paddd 128+16(%rsp), %xmm9 + paddd 128+32(%rsp), %xmm10 + paddd 128+48(%rsp), %xmm11 + paddd 256+0(%rsp), %xmm12 + paddd 256+16(%rsp), %xmm13 + paddd 256+32(%rsp), %xmm14 + paddd 256+48(%rsp), %xmm15 + movdqa %xmm0, 0(%rsp) + movdqa %xmm1, 16(%rsp) + movdqa %xmm2, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm8, 128+0(%rsp) + movdqa %xmm9, 128+16(%rsp) + movdqa %xmm10, 128+32(%rsp) + movdqa %xmm11, 128+48(%rsp) + movdqa %xmm12, 256+0(%rsp) + movdqa %xmm13, 256+16(%rsp) + movdqa %xmm14, 256+32(%rsp) + movdqa %xmm15, 256+48(%rsp) + + pxor 64(%rsi, %rbp), %xmm0 + pxor 80(%rsi, %rbp), %xmm1 + pxor 96(%rsi, %rbp), %xmm2 + pxor 112(%rsi, %rbp), %xmm3 + pxor 64(%rsi, %rbx), %xmm8 + pxor 80(%rsi, %rbx), %xmm9 + pxor 96(%rsi, %rbx), %xmm10 + pxor 112(%rsi, %rbx), %xmm11 + pxor 64(%rsi, %rax), %xmm12 + pxor 80(%rsi, %rax), %xmm13 + pxor 96(%rsi, %rax), %xmm14 + pxor 112(%rsi, %rax), %xmm15 + pxor 64(%rsp), %xmm0 + pxor 80(%rsp), %xmm1 + pxor 96(%rsp), %xmm2 + pxor 112(%rsp), %xmm3 + pxor 128+64(%rsp), %xmm8 + pxor 128+80(%rsp), %xmm9 + pxor 128+96(%rsp), %xmm10 + pxor 128+112(%rsp), %xmm11 + pxor 256+64(%rsp), %xmm12 + pxor 256+80(%rsp), %xmm13 + pxor 256+96(%rsp), %xmm14 + pxor 256+112(%rsp), %xmm15 + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + movdqa %xmm1, %xmm4 + movdqa %xmm9, %xmm6 + movdqa %xmm13, %xmm7 + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + pxor %xmm5, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm11 + pxor %xmm5, %xmm11 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm15 + pxor %xmm5, %xmm15 + movdqa %xmm12, %xmm7 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pshufd $0x93, %xmm3, %xmm3 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm11, %xmm6 + pshufd $0x93, %xmm11, %xmm11 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm14 + pshufd $0x93, %xmm15, %xmm15 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm1 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm9 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm9 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm13 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm13 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + pxor %xmm5, %xmm0 + movdqa %xmm3, %xmm4 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm9, %xmm9 + pxor %xmm5, %xmm8 + movdqa %xmm11, %xmm6 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + movdqa %xmm15, %xmm7 + pxor %xmm5, %xmm12 + pshufd $0x39, %xmm13, %xmm13 + + paddd %xmm0, %xmm4 + paddd %xmm8, %xmm6 + paddd %xmm12, %xmm7 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + pxor %xmm5, %xmm1 + movdqa %xmm0, %xmm4 + movdqa %xmm6, %xmm5 + pslld $7, %xmm6 + psrld $25, %xmm5 + pxor %xmm6, %xmm9 + pxor %xmm5, %xmm9 + movdqa %xmm8, %xmm6 + movdqa %xmm7, %xmm5 + pslld $7, %xmm7 + psrld $25, %xmm5 + pxor %xmm7, %xmm13 + pxor %xmm5, %xmm13 + movdqa %xmm12, %xmm7 + + paddd %xmm1, %xmm4 + paddd %xmm9, %xmm6 + paddd %xmm13, %xmm7 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pshufd $0x93, %xmm1, %xmm1 + pxor %xmm5, %xmm2 + movdqa %xmm6, %xmm5 + pslld $9, %xmm6 + psrld $23, %xmm5 + pxor %xmm6, %xmm10 + movdqa %xmm9, %xmm6 + pshufd $0x93, %xmm9, %xmm9 + pxor %xmm5, %xmm10 + movdqa %xmm7, %xmm5 + pslld $9, %xmm7 + psrld $23, %xmm5 + pxor %xmm7, %xmm14 + movdqa %xmm13, %xmm7 + pshufd $0x93, %xmm13, %xmm13 + pxor %xmm5, %xmm14 + + paddd %xmm2, %xmm4 + paddd %xmm10, %xmm6 + paddd %xmm14, %xmm7 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pshufd $0x4e, %xmm2, %xmm2 + pxor %xmm5, %xmm3 + movdqa %xmm6, %xmm5 + pslld $13, %xmm6 + psrld $19, %xmm5 + pxor %xmm6, %xmm11 + movdqa %xmm10, %xmm6 + pshufd $0x4e, %xmm10, %xmm10 + pxor %xmm5, %xmm11 + movdqa %xmm7, %xmm5 + pslld $13, %xmm7 + psrld $19, %xmm5 + pxor %xmm7, %xmm15 + movdqa %xmm14, %xmm7 + pshufd $0x4e, %xmm14, %xmm14 + pxor %xmm5, %xmm15 + + paddd %xmm3, %xmm4 + paddd %xmm11, %xmm6 + paddd %xmm15, %xmm7 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm6, %xmm5 + pslld $18, %xmm6 + psrld $14, %xmm5 + pxor %xmm6, %xmm8 + pshufd $0x39, %xmm11, %xmm11 + pxor %xmm5, %xmm8 + movdqa %xmm7, %xmm5 + pslld $18, %xmm7 + psrld $14, %xmm5 + pxor %xmm7, %xmm12 + pshufd $0x39, %xmm15, %xmm15 + pxor %xmm5, %xmm12 + paddd 64(%rsp), %xmm0 + paddd 80(%rsp), %xmm1 + paddd 96(%rsp), %xmm2 + paddd 112(%rsp), %xmm3 + paddd 128+64(%rsp), %xmm8 + paddd 128+80(%rsp), %xmm9 + paddd 128+96(%rsp), %xmm10 + paddd 128+112(%rsp), %xmm11 + paddd 256+64(%rsp), %xmm12 + paddd 256+80(%rsp), %xmm13 + paddd 256+96(%rsp), %xmm14 + paddd 256+112(%rsp), %xmm15 + movdqa %xmm0, 64(%rsp) + movdqa %xmm1, 80(%rsp) + movdqa %xmm2, 96(%rsp) + movdqa %xmm3, 112(%rsp) + movdqa %xmm8, 128+64(%rsp) + movdqa %xmm9, 128+80(%rsp) + movdqa %xmm10, 128+96(%rsp) + movdqa %xmm11, 128+112(%rsp) + movdqa %xmm12, 256+64(%rsp) + movdqa %xmm13, 256+80(%rsp) + movdqa %xmm14, 256+96(%rsp) + movdqa %xmm15, 256+112(%rsp) + + subq $1, %rcx + ja scrypt_core_3way_xmm_loop2 + + movl 0+60(%rsp), %eax + movl 0+44(%rsp), %ebx + movl 0+28(%rsp), %ecx + movl 0+12(%rsp), %edx + movl %eax, 0+12(%rdi) + movl %ebx, 0+28(%rdi) + movl %ecx, 0+44(%rdi) + movl %edx, 0+60(%rdi) + movl 0+40(%rsp), %eax + movl 0+8(%rsp), %ebx + movl 0+48(%rsp), %ecx + movl 0+16(%rsp), %edx + movl %eax, 0+8(%rdi) + movl %ebx, 0+40(%rdi) + movl %ecx, 0+16(%rdi) + movl %edx, 0+48(%rdi) + movl 0+20(%rsp), %eax + movl 0+4(%rsp), %ebx + movl 0+52(%rsp), %ecx + movl 0+36(%rsp), %edx + movl %eax, 0+4(%rdi) + movl %ebx, 0+20(%rdi) + movl %ecx, 0+36(%rdi) + movl %edx, 0+52(%rdi) + movl 0+0(%rsp), %eax + movl 0+24(%rsp), %ebx + movl 0+32(%rsp), %ecx + movl 0+56(%rsp), %edx + movl %eax, 0+0(%rdi) + movl %ebx, 0+24(%rdi) + movl %ecx, 0+32(%rdi) + movl %edx, 0+56(%rdi) + movl 64+60(%rsp), %eax + movl 64+44(%rsp), %ebx + movl 64+28(%rsp), %ecx + movl 64+12(%rsp), %edx + movl %eax, 64+12(%rdi) + movl %ebx, 64+28(%rdi) + movl %ecx, 64+44(%rdi) + movl %edx, 64+60(%rdi) + movl 64+40(%rsp), %eax + movl 64+8(%rsp), %ebx + movl 64+48(%rsp), %ecx + movl 64+16(%rsp), %edx + movl %eax, 64+8(%rdi) + movl %ebx, 64+40(%rdi) + movl %ecx, 64+16(%rdi) + movl %edx, 64+48(%rdi) + movl 64+20(%rsp), %eax + movl 64+4(%rsp), %ebx + movl 64+52(%rsp), %ecx + movl 64+36(%rsp), %edx + movl %eax, 64+4(%rdi) + movl %ebx, 64+20(%rdi) + movl %ecx, 64+36(%rdi) + movl %edx, 64+52(%rdi) + movl 64+0(%rsp), %eax + movl 64+24(%rsp), %ebx + movl 64+32(%rsp), %ecx + movl 64+56(%rsp), %edx + movl %eax, 64+0(%rdi) + movl %ebx, 64+24(%rdi) + movl %ecx, 64+32(%rdi) + movl %edx, 64+56(%rdi) + movl 128+60(%rsp), %eax + movl 128+44(%rsp), %ebx + movl 128+28(%rsp), %ecx + movl 128+12(%rsp), %edx + movl %eax, 128+12(%rdi) + movl %ebx, 128+28(%rdi) + movl %ecx, 128+44(%rdi) + movl %edx, 128+60(%rdi) + movl 128+40(%rsp), %eax + movl 128+8(%rsp), %ebx + movl 128+48(%rsp), %ecx + movl 128+16(%rsp), %edx + movl %eax, 128+8(%rdi) + movl %ebx, 128+40(%rdi) + movl %ecx, 128+16(%rdi) + movl %edx, 128+48(%rdi) + movl 128+20(%rsp), %eax + movl 128+4(%rsp), %ebx + movl 128+52(%rsp), %ecx + movl 128+36(%rsp), %edx + movl %eax, 128+4(%rdi) + movl %ebx, 128+20(%rdi) + movl %ecx, 128+36(%rdi) + movl %edx, 128+52(%rdi) + movl 128+0(%rsp), %eax + movl 128+24(%rsp), %ebx + movl 128+32(%rsp), %ecx + movl 128+56(%rsp), %edx + movl %eax, 128+0(%rdi) + movl %ebx, 128+24(%rdi) + movl %ecx, 128+32(%rdi) + movl %edx, 128+56(%rdi) + movl 192+60(%rsp), %eax + movl 192+44(%rsp), %ebx + movl 192+28(%rsp), %ecx + movl 192+12(%rsp), %edx + movl %eax, 192+12(%rdi) + movl %ebx, 192+28(%rdi) + movl %ecx, 192+44(%rdi) + movl %edx, 192+60(%rdi) + movl 192+40(%rsp), %eax + movl 192+8(%rsp), %ebx + movl 192+48(%rsp), %ecx + movl 192+16(%rsp), %edx + movl %eax, 192+8(%rdi) + movl %ebx, 192+40(%rdi) + movl %ecx, 192+16(%rdi) + movl %edx, 192+48(%rdi) + movl 192+20(%rsp), %eax + movl 192+4(%rsp), %ebx + movl 192+52(%rsp), %ecx + movl 192+36(%rsp), %edx + movl %eax, 192+4(%rdi) + movl %ebx, 192+20(%rdi) + movl %ecx, 192+36(%rdi) + movl %edx, 192+52(%rdi) + movl 192+0(%rsp), %eax + movl 192+24(%rsp), %ebx + movl 192+32(%rsp), %ecx + movl 192+56(%rsp), %edx + movl %eax, 192+0(%rdi) + movl %ebx, 192+24(%rdi) + movl %ecx, 192+32(%rdi) + movl %edx, 192+56(%rdi) + movl 256+60(%rsp), %eax + movl 256+44(%rsp), %ebx + movl 256+28(%rsp), %ecx + movl 256+12(%rsp), %edx + movl %eax, 256+12(%rdi) + movl %ebx, 256+28(%rdi) + movl %ecx, 256+44(%rdi) + movl %edx, 256+60(%rdi) + movl 256+40(%rsp), %eax + movl 256+8(%rsp), %ebx + movl 256+48(%rsp), %ecx + movl 256+16(%rsp), %edx + movl %eax, 256+8(%rdi) + movl %ebx, 256+40(%rdi) + movl %ecx, 256+16(%rdi) + movl %edx, 256+48(%rdi) + movl 256+20(%rsp), %eax + movl 256+4(%rsp), %ebx + movl 256+52(%rsp), %ecx + movl 256+36(%rsp), %edx + movl %eax, 256+4(%rdi) + movl %ebx, 256+20(%rdi) + movl %ecx, 256+36(%rdi) + movl %edx, 256+52(%rdi) + movl 256+0(%rsp), %eax + movl 256+24(%rsp), %ebx + movl 256+32(%rsp), %ecx + movl 256+56(%rsp), %edx + movl %eax, 256+0(%rdi) + movl %ebx, 256+24(%rdi) + movl %ecx, 256+32(%rdi) + movl %edx, 256+56(%rdi) + movl 320+60(%rsp), %eax + movl 320+44(%rsp), %ebx + movl 320+28(%rsp), %ecx + movl 320+12(%rsp), %edx + movl %eax, 320+12(%rdi) + movl %ebx, 320+28(%rdi) + movl %ecx, 320+44(%rdi) + movl %edx, 320+60(%rdi) + movl 320+40(%rsp), %eax + movl 320+8(%rsp), %ebx + movl 320+48(%rsp), %ecx + movl 320+16(%rsp), %edx + movl %eax, 320+8(%rdi) + movl %ebx, 320+40(%rdi) + movl %ecx, 320+16(%rdi) + movl %edx, 320+48(%rdi) + movl 320+20(%rsp), %eax + movl 320+4(%rsp), %ebx + movl 320+52(%rsp), %ecx + movl 320+36(%rsp), %edx + movl %eax, 320+4(%rdi) + movl %ebx, 320+20(%rdi) + movl %ecx, 320+36(%rdi) + movl %edx, 320+52(%rdi) + movl 320+0(%rsp), %eax + movl 320+24(%rsp), %ebx + movl 320+32(%rsp), %ecx + movl 320+56(%rsp), %edx + movl %eax, 320+0(%rdi) + movl %ebx, 320+24(%rdi) + movl %ecx, 320+32(%rdi) + movl %edx, 320+56(%rdi) + + addq $392, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + popq %rdi + movdqa 8(%rsp), %xmm6 + movdqa 24(%rsp), %xmm7 + movdqa 40(%rsp), %xmm8 + movdqa 56(%rsp), %xmm9 + movdqa 72(%rsp), %xmm10 + movdqa 88(%rsp), %xmm11 + movdqa 104(%rsp), %xmm12 + movdqa 120(%rsp), %xmm13 + movdqa 136(%rsp), %xmm14 + movdqa 152(%rsp), %xmm15 + addq $176, %rsp +#endif + popq %rbp + popq %rbx + ret + + +#if defined(USE_AVX2) + + + + .text + .p2align 6 + .globl scrypt_core_6way + .globl _scrypt_core_6way +scrypt_core_6way: +_scrypt_core_6way: + pushq %rbx + pushq %rbp +#if defined(_WIN64) || defined(__CYGWIN__) + subq $176, %rsp + vmovdqa %xmm6, 8(%rsp) + vmovdqa %xmm7, 24(%rsp) + vmovdqa %xmm8, 40(%rsp) + vmovdqa %xmm9, 56(%rsp) + vmovdqa %xmm10, 72(%rsp) + vmovdqa %xmm11, 88(%rsp) + vmovdqa %xmm12, 104(%rsp) + vmovdqa %xmm13, 120(%rsp) + vmovdqa %xmm14, 136(%rsp) + vmovdqa %xmm15, 152(%rsp) + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi +#else + movq %rdx, %r8 +#endif + movq %rsp, %rdx + subq $768, %rsp + andq $-128, %rsp + + + + +scrypt_core_6way_avx2: + vmovdqa 0*256+0+0*16(%rdi), %xmm0 + vmovdqa 0*256+0+1*16(%rdi), %xmm1 + vmovdqa 0*256+0+2*16(%rdi), %xmm2 + vmovdqa 0*256+0+3*16(%rdi), %xmm3 + vinserti128 $1, 0*256+0+128+0*16(%rdi), %ymm0, %ymm0 + vinserti128 $1, 0*256+0+128+1*16(%rdi), %ymm1, %ymm1 + vinserti128 $1, 0*256+0+128+2*16(%rdi), %ymm2, %ymm2 + vinserti128 $1, 0*256+0+128+3*16(%rdi), %ymm3, %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %ymm0, 0*128+0*32(%rsp) + vmovdqa %ymm1, 0*128+1*32(%rsp) + vmovdqa %ymm2, 0*128+2*32(%rsp) + vmovdqa %ymm3, 0*128+3*32(%rsp) + vmovdqa 0*256+64+0*16(%rdi), %xmm0 + vmovdqa 0*256+64+1*16(%rdi), %xmm1 + vmovdqa 0*256+64+2*16(%rdi), %xmm2 + vmovdqa 0*256+64+3*16(%rdi), %xmm3 + vinserti128 $1, 0*256+64+128+0*16(%rdi), %ymm0, %ymm0 + vinserti128 $1, 0*256+64+128+1*16(%rdi), %ymm1, %ymm1 + vinserti128 $1, 0*256+64+128+2*16(%rdi), %ymm2, %ymm2 + vinserti128 $1, 0*256+64+128+3*16(%rdi), %ymm3, %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %ymm0, 1*128+0*32(%rsp) + vmovdqa %ymm1, 1*128+1*32(%rsp) + vmovdqa %ymm2, 1*128+2*32(%rsp) + vmovdqa %ymm3, 1*128+3*32(%rsp) + vmovdqa 1*256+0+0*16(%rdi), %xmm0 + vmovdqa 1*256+0+1*16(%rdi), %xmm1 + vmovdqa 1*256+0+2*16(%rdi), %xmm2 + vmovdqa 1*256+0+3*16(%rdi), %xmm3 + vinserti128 $1, 1*256+0+128+0*16(%rdi), %ymm0, %ymm0 + vinserti128 $1, 1*256+0+128+1*16(%rdi), %ymm1, %ymm1 + vinserti128 $1, 1*256+0+128+2*16(%rdi), %ymm2, %ymm2 + vinserti128 $1, 1*256+0+128+3*16(%rdi), %ymm3, %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %ymm0, 2*128+0*32(%rsp) + vmovdqa %ymm1, 2*128+1*32(%rsp) + vmovdqa %ymm2, 2*128+2*32(%rsp) + vmovdqa %ymm3, 2*128+3*32(%rsp) + vmovdqa 1*256+64+0*16(%rdi), %xmm0 + vmovdqa 1*256+64+1*16(%rdi), %xmm1 + vmovdqa 1*256+64+2*16(%rdi), %xmm2 + vmovdqa 1*256+64+3*16(%rdi), %xmm3 + vinserti128 $1, 1*256+64+128+0*16(%rdi), %ymm0, %ymm0 + vinserti128 $1, 1*256+64+128+1*16(%rdi), %ymm1, %ymm1 + vinserti128 $1, 1*256+64+128+2*16(%rdi), %ymm2, %ymm2 + vinserti128 $1, 1*256+64+128+3*16(%rdi), %ymm3, %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %ymm0, 3*128+0*32(%rsp) + vmovdqa %ymm1, 3*128+1*32(%rsp) + vmovdqa %ymm2, 3*128+2*32(%rsp) + vmovdqa %ymm3, 3*128+3*32(%rsp) + vmovdqa 2*256+0+0*16(%rdi), %xmm0 + vmovdqa 2*256+0+1*16(%rdi), %xmm1 + vmovdqa 2*256+0+2*16(%rdi), %xmm2 + vmovdqa 2*256+0+3*16(%rdi), %xmm3 + vinserti128 $1, 2*256+0+128+0*16(%rdi), %ymm0, %ymm0 + vinserti128 $1, 2*256+0+128+1*16(%rdi), %ymm1, %ymm1 + vinserti128 $1, 2*256+0+128+2*16(%rdi), %ymm2, %ymm2 + vinserti128 $1, 2*256+0+128+3*16(%rdi), %ymm3, %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %ymm0, 4*128+0*32(%rsp) + vmovdqa %ymm1, 4*128+1*32(%rsp) + vmovdqa %ymm2, 4*128+2*32(%rsp) + vmovdqa %ymm3, 4*128+3*32(%rsp) + vmovdqa 2*256+64+0*16(%rdi), %xmm0 + vmovdqa 2*256+64+1*16(%rdi), %xmm1 + vmovdqa 2*256+64+2*16(%rdi), %xmm2 + vmovdqa 2*256+64+3*16(%rdi), %xmm3 + vinserti128 $1, 2*256+64+128+0*16(%rdi), %ymm0, %ymm0 + vinserti128 $1, 2*256+64+128+1*16(%rdi), %ymm1, %ymm1 + vinserti128 $1, 2*256+64+128+2*16(%rdi), %ymm2, %ymm2 + vinserti128 $1, 2*256+64+128+3*16(%rdi), %ymm3, %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %ymm0, 5*128+0*32(%rsp) + vmovdqa %ymm1, 5*128+1*32(%rsp) + vmovdqa %ymm2, 5*128+2*32(%rsp) + vmovdqa %ymm3, 5*128+3*32(%rsp) + + vmovdqa 0*256+4*32(%rsp), %ymm0 + vmovdqa 0*256+5*32(%rsp), %ymm1 + vmovdqa 0*256+6*32(%rsp), %ymm2 + vmovdqa 0*256+7*32(%rsp), %ymm3 + vmovdqa 1*256+4*32(%rsp), %ymm8 + vmovdqa 1*256+5*32(%rsp), %ymm9 + vmovdqa 1*256+6*32(%rsp), %ymm10 + vmovdqa 1*256+7*32(%rsp), %ymm11 + vmovdqa 2*256+4*32(%rsp), %ymm12 + vmovdqa 2*256+5*32(%rsp), %ymm13 + vmovdqa 2*256+6*32(%rsp), %ymm14 + vmovdqa 2*256+7*32(%rsp), %ymm15 + + movq %rsi, %rbx + leaq (%r8, %r8, 2), %rax + shlq $8, %rax + addq %rsi, %rax +scrypt_core_6way_avx2_loop1: + vmovdqa %ymm0, 0*256+4*32(%rbx) + vmovdqa %ymm1, 0*256+5*32(%rbx) + vmovdqa %ymm2, 0*256+6*32(%rbx) + vmovdqa %ymm3, 0*256+7*32(%rbx) + vpxor 0*256+0*32(%rsp), %ymm0, %ymm0 + vpxor 0*256+1*32(%rsp), %ymm1, %ymm1 + vpxor 0*256+2*32(%rsp), %ymm2, %ymm2 + vpxor 0*256+3*32(%rsp), %ymm3, %ymm3 + vmovdqa %ymm8, 1*256+4*32(%rbx) + vmovdqa %ymm9, 1*256+5*32(%rbx) + vmovdqa %ymm10, 1*256+6*32(%rbx) + vmovdqa %ymm11, 1*256+7*32(%rbx) + vpxor 1*256+0*32(%rsp), %ymm8, %ymm8 + vpxor 1*256+1*32(%rsp), %ymm9, %ymm9 + vpxor 1*256+2*32(%rsp), %ymm10, %ymm10 + vpxor 1*256+3*32(%rsp), %ymm11, %ymm11 + vmovdqa %ymm12, 2*256+4*32(%rbx) + vmovdqa %ymm13, 2*256+5*32(%rbx) + vmovdqa %ymm14, 2*256+6*32(%rbx) + vmovdqa %ymm15, 2*256+7*32(%rbx) + vpxor 2*256+0*32(%rsp), %ymm12, %ymm12 + vpxor 2*256+1*32(%rsp), %ymm13, %ymm13 + vpxor 2*256+2*32(%rsp), %ymm14, %ymm14 + vpxor 2*256+3*32(%rsp), %ymm15, %ymm15 + vmovdqa %ymm0, 0*256+0*32(%rbx) + vmovdqa %ymm1, 0*256+1*32(%rbx) + vmovdqa %ymm2, 0*256+2*32(%rbx) + vmovdqa %ymm3, 0*256+3*32(%rbx) + vmovdqa %ymm8, 1*256+0*32(%rbx) + vmovdqa %ymm9, 1*256+1*32(%rbx) + vmovdqa %ymm10, 1*256+2*32(%rbx) + vmovdqa %ymm11, 1*256+3*32(%rbx) + vmovdqa %ymm12, 2*256+0*32(%rbx) + vmovdqa %ymm13, 2*256+1*32(%rbx) + vmovdqa %ymm14, 2*256+2*32(%rbx) + vmovdqa %ymm15, 2*256+3*32(%rbx) + + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd 0*256+0*32(%rbx), %ymm0, %ymm0 + vpaddd 0*256+1*32(%rbx), %ymm1, %ymm1 + vpaddd 0*256+2*32(%rbx), %ymm2, %ymm2 + vpaddd 0*256+3*32(%rbx), %ymm3, %ymm3 + vpaddd 1*256+0*32(%rbx), %ymm8, %ymm8 + vpaddd 1*256+1*32(%rbx), %ymm9, %ymm9 + vpaddd 1*256+2*32(%rbx), %ymm10, %ymm10 + vpaddd 1*256+3*32(%rbx), %ymm11, %ymm11 + vpaddd 2*256+0*32(%rbx), %ymm12, %ymm12 + vpaddd 2*256+1*32(%rbx), %ymm13, %ymm13 + vpaddd 2*256+2*32(%rbx), %ymm14, %ymm14 + vpaddd 2*256+3*32(%rbx), %ymm15, %ymm15 + vmovdqa %ymm0, 0*256+0*32(%rsp) + vmovdqa %ymm1, 0*256+1*32(%rsp) + vmovdqa %ymm2, 0*256+2*32(%rsp) + vmovdqa %ymm3, 0*256+3*32(%rsp) + vmovdqa %ymm8, 1*256+0*32(%rsp) + vmovdqa %ymm9, 1*256+1*32(%rsp) + vmovdqa %ymm10, 1*256+2*32(%rsp) + vmovdqa %ymm11, 1*256+3*32(%rsp) + vmovdqa %ymm12, 2*256+0*32(%rsp) + vmovdqa %ymm13, 2*256+1*32(%rsp) + vmovdqa %ymm14, 2*256+2*32(%rsp) + vmovdqa %ymm15, 2*256+3*32(%rsp) + + vpxor 0*256+4*32(%rbx), %ymm0, %ymm0 + vpxor 0*256+5*32(%rbx), %ymm1, %ymm1 + vpxor 0*256+6*32(%rbx), %ymm2, %ymm2 + vpxor 0*256+7*32(%rbx), %ymm3, %ymm3 + vpxor 1*256+4*32(%rbx), %ymm8, %ymm8 + vpxor 1*256+5*32(%rbx), %ymm9, %ymm9 + vpxor 1*256+6*32(%rbx), %ymm10, %ymm10 + vpxor 1*256+7*32(%rbx), %ymm11, %ymm11 + vpxor 2*256+4*32(%rbx), %ymm12, %ymm12 + vpxor 2*256+5*32(%rbx), %ymm13, %ymm13 + vpxor 2*256+6*32(%rbx), %ymm14, %ymm14 + vpxor 2*256+7*32(%rbx), %ymm15, %ymm15 + vmovdqa %ymm0, 0*256+4*32(%rsp) + vmovdqa %ymm1, 0*256+5*32(%rsp) + vmovdqa %ymm2, 0*256+6*32(%rsp) + vmovdqa %ymm3, 0*256+7*32(%rsp) + vmovdqa %ymm8, 1*256+4*32(%rsp) + vmovdqa %ymm9, 1*256+5*32(%rsp) + vmovdqa %ymm10, 1*256+6*32(%rsp) + vmovdqa %ymm11, 1*256+7*32(%rsp) + vmovdqa %ymm12, 2*256+4*32(%rsp) + vmovdqa %ymm13, 2*256+5*32(%rsp) + vmovdqa %ymm14, 2*256+6*32(%rsp) + vmovdqa %ymm15, 2*256+7*32(%rsp) + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd 0*256+4*32(%rsp), %ymm0, %ymm0 + vpaddd 0*256+5*32(%rsp), %ymm1, %ymm1 + vpaddd 0*256+6*32(%rsp), %ymm2, %ymm2 + vpaddd 0*256+7*32(%rsp), %ymm3, %ymm3 + vpaddd 1*256+4*32(%rsp), %ymm8, %ymm8 + vpaddd 1*256+5*32(%rsp), %ymm9, %ymm9 + vpaddd 1*256+6*32(%rsp), %ymm10, %ymm10 + vpaddd 1*256+7*32(%rsp), %ymm11, %ymm11 + vpaddd 2*256+4*32(%rsp), %ymm12, %ymm12 + vpaddd 2*256+5*32(%rsp), %ymm13, %ymm13 + vpaddd 2*256+6*32(%rsp), %ymm14, %ymm14 + vpaddd 2*256+7*32(%rsp), %ymm15, %ymm15 + + addq $6*128, %rbx + cmpq %rax, %rbx + jne scrypt_core_6way_avx2_loop1 + + vmovdqa %ymm0, 0*256+4*32(%rsp) + vmovdqa %ymm1, 0*256+5*32(%rsp) + vmovdqa %ymm2, 0*256+6*32(%rsp) + vmovdqa %ymm3, 0*256+7*32(%rsp) + vmovdqa %ymm8, 1*256+4*32(%rsp) + vmovdqa %ymm9, 1*256+5*32(%rsp) + vmovdqa %ymm10, 1*256+6*32(%rsp) + vmovdqa %ymm11, 1*256+7*32(%rsp) + vmovdqa %ymm12, 2*256+4*32(%rsp) + vmovdqa %ymm13, 2*256+5*32(%rsp) + vmovdqa %ymm14, 2*256+6*32(%rsp) + vmovdqa %ymm15, 2*256+7*32(%rsp) + + movq %r8, %rcx + leaq -1(%r8), %r11 +scrypt_core_6way_avx2_loop2: + vmovd %xmm0, %ebp + vmovd %xmm8, %ebx + vmovd %xmm12, %eax + vextracti128 $1, %ymm0, %xmm4 + vextracti128 $1, %ymm8, %xmm5 + vextracti128 $1, %ymm12, %xmm6 + vmovd %xmm4, %r8d + vmovd %xmm5, %r9d + vmovd %xmm6, %r10d + vpxor 0*256+0*32(%rsp), %ymm0, %ymm0 + vpxor 0*256+1*32(%rsp), %ymm1, %ymm1 + vpxor 0*256+2*32(%rsp), %ymm2, %ymm2 + vpxor 0*256+3*32(%rsp), %ymm3, %ymm3 + vpxor 1*256+0*32(%rsp), %ymm8, %ymm8 + vpxor 1*256+1*32(%rsp), %ymm9, %ymm9 + vpxor 1*256+2*32(%rsp), %ymm10, %ymm10 + vpxor 1*256+3*32(%rsp), %ymm11, %ymm11 + vpxor 2*256+0*32(%rsp), %ymm12, %ymm12 + vpxor 2*256+1*32(%rsp), %ymm13, %ymm13 + vpxor 2*256+2*32(%rsp), %ymm14, %ymm14 + vpxor 2*256+3*32(%rsp), %ymm15, %ymm15 + andl %r11d, %ebp + leaq 0(%rbp, %rbp, 2), %rbp + shll $8, %ebp + andl %r11d, %ebx + leaq 1(%rbx, %rbx, 2), %rbx + shll $8, %ebx + andl %r11d, %eax + leaq 2(%rax, %rax, 2), %rax + shll $8, %eax + andl %r11d, %r8d + leaq 0(%r8, %r8, 2), %r8 + shll $8, %r8d + andl %r11d, %r9d + leaq 1(%r9, %r9, 2), %r9 + shll $8, %r9d + andl %r11d, %r10d + leaq 2(%r10, %r10, 2), %r10 + shll $8, %r10d + vmovdqa 0*32(%rsi, %rbp), %xmm4 + vinserti128 $1, 0*32+16(%rsi, %r8), %ymm4, %ymm4 + vmovdqa 1*32(%rsi, %rbp), %xmm5 + vinserti128 $1, 1*32+16(%rsi, %r8), %ymm5, %ymm5 + vmovdqa 2*32(%rsi, %rbp), %xmm6 + vinserti128 $1, 2*32+16(%rsi, %r8), %ymm6, %ymm6 + vmovdqa 3*32(%rsi, %rbp), %xmm7 + vinserti128 $1, 3*32+16(%rsi, %r8), %ymm7, %ymm7 + vpxor %ymm4, %ymm0, %ymm0 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm6, %ymm2, %ymm2 + vpxor %ymm7, %ymm3, %ymm3 + vmovdqa 0*32(%rsi, %rbx), %xmm4 + vinserti128 $1, 0*32+16(%rsi, %r9), %ymm4, %ymm4 + vmovdqa 1*32(%rsi, %rbx), %xmm5 + vinserti128 $1, 1*32+16(%rsi, %r9), %ymm5, %ymm5 + vmovdqa 2*32(%rsi, %rbx), %xmm6 + vinserti128 $1, 2*32+16(%rsi, %r9), %ymm6, %ymm6 + vmovdqa 3*32(%rsi, %rbx), %xmm7 + vinserti128 $1, 3*32+16(%rsi, %r9), %ymm7, %ymm7 + vpxor %ymm4, %ymm8, %ymm8 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm10, %ymm10 + vpxor %ymm7, %ymm11, %ymm11 + vmovdqa 0*32(%rsi, %rax), %xmm4 + vinserti128 $1, 0*32+16(%rsi, %r10), %ymm4, %ymm4 + vmovdqa 1*32(%rsi, %rax), %xmm5 + vinserti128 $1, 1*32+16(%rsi, %r10), %ymm5, %ymm5 + vmovdqa 2*32(%rsi, %rax), %xmm6 + vinserti128 $1, 2*32+16(%rsi, %r10), %ymm6, %ymm6 + vmovdqa 3*32(%rsi, %rax), %xmm7 + vinserti128 $1, 3*32+16(%rsi, %r10), %ymm7, %ymm7 + vpxor %ymm4, %ymm12, %ymm12 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm6, %ymm14, %ymm14 + vpxor %ymm7, %ymm15, %ymm15 + + vmovdqa %ymm0, 0*256+0*32(%rsp) + vmovdqa %ymm1, 0*256+1*32(%rsp) + vmovdqa %ymm2, 0*256+2*32(%rsp) + vmovdqa %ymm3, 0*256+3*32(%rsp) + vmovdqa %ymm8, 1*256+0*32(%rsp) + vmovdqa %ymm9, 1*256+1*32(%rsp) + vmovdqa %ymm10, 1*256+2*32(%rsp) + vmovdqa %ymm11, 1*256+3*32(%rsp) + vmovdqa %ymm12, 2*256+0*32(%rsp) + vmovdqa %ymm13, 2*256+1*32(%rsp) + vmovdqa %ymm14, 2*256+2*32(%rsp) + vmovdqa %ymm15, 2*256+3*32(%rsp) + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd 0*256+0*32(%rsp), %ymm0, %ymm0 + vpaddd 0*256+1*32(%rsp), %ymm1, %ymm1 + vpaddd 0*256+2*32(%rsp), %ymm2, %ymm2 + vpaddd 0*256+3*32(%rsp), %ymm3, %ymm3 + vpaddd 1*256+0*32(%rsp), %ymm8, %ymm8 + vpaddd 1*256+1*32(%rsp), %ymm9, %ymm9 + vpaddd 1*256+2*32(%rsp), %ymm10, %ymm10 + vpaddd 1*256+3*32(%rsp), %ymm11, %ymm11 + vpaddd 2*256+0*32(%rsp), %ymm12, %ymm12 + vpaddd 2*256+1*32(%rsp), %ymm13, %ymm13 + vpaddd 2*256+2*32(%rsp), %ymm14, %ymm14 + vpaddd 2*256+3*32(%rsp), %ymm15, %ymm15 + vmovdqa %ymm0, 0*256+0*32(%rsp) + vmovdqa %ymm1, 0*256+1*32(%rsp) + vmovdqa %ymm2, 0*256+2*32(%rsp) + vmovdqa %ymm3, 0*256+3*32(%rsp) + vmovdqa %ymm8, 1*256+0*32(%rsp) + vmovdqa %ymm9, 1*256+1*32(%rsp) + vmovdqa %ymm10, 1*256+2*32(%rsp) + vmovdqa %ymm11, 1*256+3*32(%rsp) + vmovdqa %ymm12, 2*256+0*32(%rsp) + vmovdqa %ymm13, 2*256+1*32(%rsp) + vmovdqa %ymm14, 2*256+2*32(%rsp) + vmovdqa %ymm15, 2*256+3*32(%rsp) + + vmovdqa 4*32(%rsi, %rbp), %xmm4 + vinserti128 $1, 4*32+16(%rsi, %r8), %ymm4, %ymm4 + vmovdqa 5*32(%rsi, %rbp), %xmm5 + vinserti128 $1, 5*32+16(%rsi, %r8), %ymm5, %ymm5 + vmovdqa 6*32(%rsi, %rbp), %xmm6 + vinserti128 $1, 6*32+16(%rsi, %r8), %ymm6, %ymm6 + vmovdqa 7*32(%rsi, %rbp), %xmm7 + vinserti128 $1, 7*32+16(%rsi, %r8), %ymm7, %ymm7 + vpxor %ymm4, %ymm0, %ymm0 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm6, %ymm2, %ymm2 + vpxor %ymm7, %ymm3, %ymm3 + vmovdqa 4*32(%rsi, %rbx), %xmm4 + vinserti128 $1, 4*32+16(%rsi, %r9), %ymm4, %ymm4 + vmovdqa 5*32(%rsi, %rbx), %xmm5 + vinserti128 $1, 5*32+16(%rsi, %r9), %ymm5, %ymm5 + vmovdqa 6*32(%rsi, %rbx), %xmm6 + vinserti128 $1, 6*32+16(%rsi, %r9), %ymm6, %ymm6 + vmovdqa 7*32(%rsi, %rbx), %xmm7 + vinserti128 $1, 7*32+16(%rsi, %r9), %ymm7, %ymm7 + vpxor %ymm4, %ymm8, %ymm8 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm10, %ymm10 + vpxor %ymm7, %ymm11, %ymm11 + vmovdqa 4*32(%rsi, %rax), %xmm4 + vinserti128 $1, 4*32+16(%rsi, %r10), %ymm4, %ymm4 + vmovdqa 5*32(%rsi, %rax), %xmm5 + vinserti128 $1, 5*32+16(%rsi, %r10), %ymm5, %ymm5 + vmovdqa 6*32(%rsi, %rax), %xmm6 + vinserti128 $1, 6*32+16(%rsi, %r10), %ymm6, %ymm6 + vmovdqa 7*32(%rsi, %rax), %xmm7 + vinserti128 $1, 7*32+16(%rsi, %r10), %ymm7, %ymm7 + vpxor %ymm4, %ymm12, %ymm12 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm6, %ymm14, %ymm14 + vpxor %ymm7, %ymm15, %ymm15 + vpxor 0*256+4*32(%rsp), %ymm0, %ymm0 + vpxor 0*256+5*32(%rsp), %ymm1, %ymm1 + vpxor 0*256+6*32(%rsp), %ymm2, %ymm2 + vpxor 0*256+7*32(%rsp), %ymm3, %ymm3 + vpxor 1*256+4*32(%rsp), %ymm8, %ymm8 + vpxor 1*256+5*32(%rsp), %ymm9, %ymm9 + vpxor 1*256+6*32(%rsp), %ymm10, %ymm10 + vpxor 1*256+7*32(%rsp), %ymm11, %ymm11 + vpxor 2*256+4*32(%rsp), %ymm12, %ymm12 + vpxor 2*256+5*32(%rsp), %ymm13, %ymm13 + vpxor 2*256+6*32(%rsp), %ymm14, %ymm14 + vpxor 2*256+7*32(%rsp), %ymm15, %ymm15 + vmovdqa %ymm0, 0*256+4*32(%rsp) + vmovdqa %ymm1, 0*256+5*32(%rsp) + vmovdqa %ymm2, 0*256+6*32(%rsp) + vmovdqa %ymm3, 0*256+7*32(%rsp) + vmovdqa %ymm8, 1*256+4*32(%rsp) + vmovdqa %ymm9, 1*256+5*32(%rsp) + vmovdqa %ymm10, 1*256+6*32(%rsp) + vmovdqa %ymm11, 1*256+7*32(%rsp) + vmovdqa %ymm12, 2*256+4*32(%rsp) + vmovdqa %ymm13, 2*256+5*32(%rsp) + vmovdqa %ymm14, 2*256+6*32(%rsp) + vmovdqa %ymm15, 2*256+7*32(%rsp) + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd %ymm0, %ymm1, %ymm4 + vpaddd %ymm8, %ymm9, %ymm6 + vpaddd %ymm12, %ymm13, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm0, %ymm4 + vpaddd %ymm11, %ymm8, %ymm6 + vpaddd %ymm15, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm3, %ymm4 + vpaddd %ymm10, %ymm11, %ymm6 + vpaddd %ymm14, %ymm15, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm3, %ymm3 + vpshufd $0x93, %ymm11, %ymm11 + vpshufd $0x93, %ymm15, %ymm15 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm2, %ymm4 + vpaddd %ymm9, %ymm10, %ymm6 + vpaddd %ymm13, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpshufd $0x4e, %ymm14, %ymm14 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + + vpaddd %ymm0, %ymm3, %ymm4 + vpaddd %ymm8, %ymm11, %ymm6 + vpaddd %ymm12, %ymm15, %ymm7 + vpslld $7, %ymm4, %ymm5 + vpsrld $25, %ymm4, %ymm4 + vpshufd $0x39, %ymm1, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpslld $7, %ymm6, %ymm5 + vpsrld $25, %ymm6, %ymm6 + vpshufd $0x39, %ymm9, %ymm9 + vpxor %ymm5, %ymm9, %ymm9 + vpxor %ymm6, %ymm9, %ymm9 + vpslld $7, %ymm7, %ymm5 + vpsrld $25, %ymm7, %ymm7 + vpshufd $0x39, %ymm13, %ymm13 + vpxor %ymm5, %ymm13, %ymm13 + vpxor %ymm7, %ymm13, %ymm13 + + vpaddd %ymm1, %ymm0, %ymm4 + vpaddd %ymm9, %ymm8, %ymm6 + vpaddd %ymm13, %ymm12, %ymm7 + vpslld $9, %ymm4, %ymm5 + vpsrld $23, %ymm4, %ymm4 + vpxor %ymm5, %ymm2, %ymm2 + vpxor %ymm4, %ymm2, %ymm2 + vpslld $9, %ymm6, %ymm5 + vpsrld $23, %ymm6, %ymm6 + vpxor %ymm5, %ymm10, %ymm10 + vpxor %ymm6, %ymm10, %ymm10 + vpslld $9, %ymm7, %ymm5 + vpsrld $23, %ymm7, %ymm7 + vpxor %ymm5, %ymm14, %ymm14 + vpxor %ymm7, %ymm14, %ymm14 + + vpaddd %ymm2, %ymm1, %ymm4 + vpaddd %ymm10, %ymm9, %ymm6 + vpaddd %ymm14, %ymm13, %ymm7 + vpslld $13, %ymm4, %ymm5 + vpsrld $19, %ymm4, %ymm4 + vpshufd $0x93, %ymm1, %ymm1 + vpshufd $0x93, %ymm9, %ymm9 + vpshufd $0x93, %ymm13, %ymm13 + vpxor %ymm5, %ymm3, %ymm3 + vpxor %ymm4, %ymm3, %ymm3 + vpslld $13, %ymm6, %ymm5 + vpsrld $19, %ymm6, %ymm6 + vpxor %ymm5, %ymm11, %ymm11 + vpxor %ymm6, %ymm11, %ymm11 + vpslld $13, %ymm7, %ymm5 + vpsrld $19, %ymm7, %ymm7 + vpxor %ymm5, %ymm15, %ymm15 + vpxor %ymm7, %ymm15, %ymm15 + + vpaddd %ymm3, %ymm2, %ymm4 + vpaddd %ymm11, %ymm10, %ymm6 + vpaddd %ymm15, %ymm14, %ymm7 + vpslld $18, %ymm4, %ymm5 + vpsrld $14, %ymm4, %ymm4 + vpshufd $0x4e, %ymm2, %ymm2 + vpshufd $0x4e, %ymm10, %ymm10 + vpxor %ymm5, %ymm0, %ymm0 + vpxor %ymm4, %ymm0, %ymm0 + vpslld $18, %ymm6, %ymm5 + vpsrld $14, %ymm6, %ymm6 + vpshufd $0x4e, %ymm14, %ymm14 + vpshufd $0x39, %ymm11, %ymm11 + vpxor %ymm5, %ymm8, %ymm8 + vpxor %ymm6, %ymm8, %ymm8 + vpslld $18, %ymm7, %ymm5 + vpsrld $14, %ymm7, %ymm7 + vpshufd $0x39, %ymm3, %ymm3 + vpshufd $0x39, %ymm15, %ymm15 + vpxor %ymm5, %ymm12, %ymm12 + vpxor %ymm7, %ymm12, %ymm12 + vpaddd 0*256+4*32(%rsp), %ymm0, %ymm0 + vpaddd 0*256+5*32(%rsp), %ymm1, %ymm1 + vpaddd 0*256+6*32(%rsp), %ymm2, %ymm2 + vpaddd 0*256+7*32(%rsp), %ymm3, %ymm3 + vpaddd 1*256+4*32(%rsp), %ymm8, %ymm8 + vpaddd 1*256+5*32(%rsp), %ymm9, %ymm9 + vpaddd 1*256+6*32(%rsp), %ymm10, %ymm10 + vpaddd 1*256+7*32(%rsp), %ymm11, %ymm11 + vpaddd 2*256+4*32(%rsp), %ymm12, %ymm12 + vpaddd 2*256+5*32(%rsp), %ymm13, %ymm13 + vpaddd 2*256+6*32(%rsp), %ymm14, %ymm14 + vpaddd 2*256+7*32(%rsp), %ymm15, %ymm15 + vmovdqa %ymm0, 0*256+4*32(%rsp) + vmovdqa %ymm1, 0*256+5*32(%rsp) + vmovdqa %ymm2, 0*256+6*32(%rsp) + vmovdqa %ymm3, 0*256+7*32(%rsp) + vmovdqa %ymm8, 1*256+4*32(%rsp) + vmovdqa %ymm9, 1*256+5*32(%rsp) + vmovdqa %ymm10, 1*256+6*32(%rsp) + vmovdqa %ymm11, 1*256+7*32(%rsp) + vmovdqa %ymm12, 2*256+4*32(%rsp) + vmovdqa %ymm13, 2*256+5*32(%rsp) + vmovdqa %ymm14, 2*256+6*32(%rsp) + vmovdqa %ymm15, 2*256+7*32(%rsp) + + subq $1, %rcx + ja scrypt_core_6way_avx2_loop2 + + vmovdqa 0*128+0*32(%rsp), %ymm0 + vmovdqa 0*128+1*32(%rsp), %ymm1 + vmovdqa 0*128+2*32(%rsp), %ymm2 + vmovdqa 0*128+3*32(%rsp), %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %xmm0, 0*256+0+0*16(%rdi) + vmovdqa %xmm1, 0*256+0+1*16(%rdi) + vmovdqa %xmm2, 0*256+0+2*16(%rdi) + vmovdqa %xmm3, 0*256+0+3*16(%rdi) + vextracti128 $1, %ymm0, 0*256+0+128+0*16(%rdi) + vextracti128 $1, %ymm1, 0*256+0+128+1*16(%rdi) + vextracti128 $1, %ymm2, 0*256+0+128+2*16(%rdi) + vextracti128 $1, %ymm3, 0*256+0+128+3*16(%rdi) + vmovdqa 1*128+0*32(%rsp), %ymm0 + vmovdqa 1*128+1*32(%rsp), %ymm1 + vmovdqa 1*128+2*32(%rsp), %ymm2 + vmovdqa 1*128+3*32(%rsp), %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %xmm0, 0*256+64+0*16(%rdi) + vmovdqa %xmm1, 0*256+64+1*16(%rdi) + vmovdqa %xmm2, 0*256+64+2*16(%rdi) + vmovdqa %xmm3, 0*256+64+3*16(%rdi) + vextracti128 $1, %ymm0, 0*256+64+128+0*16(%rdi) + vextracti128 $1, %ymm1, 0*256+64+128+1*16(%rdi) + vextracti128 $1, %ymm2, 0*256+64+128+2*16(%rdi) + vextracti128 $1, %ymm3, 0*256+64+128+3*16(%rdi) + vmovdqa 2*128+0*32(%rsp), %ymm0 + vmovdqa 2*128+1*32(%rsp), %ymm1 + vmovdqa 2*128+2*32(%rsp), %ymm2 + vmovdqa 2*128+3*32(%rsp), %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %xmm0, 1*256+0+0*16(%rdi) + vmovdqa %xmm1, 1*256+0+1*16(%rdi) + vmovdqa %xmm2, 1*256+0+2*16(%rdi) + vmovdqa %xmm3, 1*256+0+3*16(%rdi) + vextracti128 $1, %ymm0, 1*256+0+128+0*16(%rdi) + vextracti128 $1, %ymm1, 1*256+0+128+1*16(%rdi) + vextracti128 $1, %ymm2, 1*256+0+128+2*16(%rdi) + vextracti128 $1, %ymm3, 1*256+0+128+3*16(%rdi) + vmovdqa 3*128+0*32(%rsp), %ymm0 + vmovdqa 3*128+1*32(%rsp), %ymm1 + vmovdqa 3*128+2*32(%rsp), %ymm2 + vmovdqa 3*128+3*32(%rsp), %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %xmm0, 1*256+64+0*16(%rdi) + vmovdqa %xmm1, 1*256+64+1*16(%rdi) + vmovdqa %xmm2, 1*256+64+2*16(%rdi) + vmovdqa %xmm3, 1*256+64+3*16(%rdi) + vextracti128 $1, %ymm0, 1*256+64+128+0*16(%rdi) + vextracti128 $1, %ymm1, 1*256+64+128+1*16(%rdi) + vextracti128 $1, %ymm2, 1*256+64+128+2*16(%rdi) + vextracti128 $1, %ymm3, 1*256+64+128+3*16(%rdi) + vmovdqa 4*128+0*32(%rsp), %ymm0 + vmovdqa 4*128+1*32(%rsp), %ymm1 + vmovdqa 4*128+2*32(%rsp), %ymm2 + vmovdqa 4*128+3*32(%rsp), %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %xmm0, 2*256+0+0*16(%rdi) + vmovdqa %xmm1, 2*256+0+1*16(%rdi) + vmovdqa %xmm2, 2*256+0+2*16(%rdi) + vmovdqa %xmm3, 2*256+0+3*16(%rdi) + vextracti128 $1, %ymm0, 2*256+0+128+0*16(%rdi) + vextracti128 $1, %ymm1, 2*256+0+128+1*16(%rdi) + vextracti128 $1, %ymm2, 2*256+0+128+2*16(%rdi) + vextracti128 $1, %ymm3, 2*256+0+128+3*16(%rdi) + vmovdqa 5*128+0*32(%rsp), %ymm0 + vmovdqa 5*128+1*32(%rsp), %ymm1 + vmovdqa 5*128+2*32(%rsp), %ymm2 + vmovdqa 5*128+3*32(%rsp), %ymm3 + vpblendd $0x33, %ymm0, %ymm2, %ymm4 + vpblendd $0xcc, %ymm1, %ymm3, %ymm5 + vpblendd $0x33, %ymm2, %ymm0, %ymm6 + vpblendd $0xcc, %ymm3, %ymm1, %ymm7 + vpblendd $0x55, %ymm7, %ymm6, %ymm3 + vpblendd $0x55, %ymm6, %ymm5, %ymm2 + vpblendd $0x55, %ymm5, %ymm4, %ymm1 + vpblendd $0x55, %ymm4, %ymm7, %ymm0 + vmovdqa %xmm0, 2*256+64+0*16(%rdi) + vmovdqa %xmm1, 2*256+64+1*16(%rdi) + vmovdqa %xmm2, 2*256+64+2*16(%rdi) + vmovdqa %xmm3, 2*256+64+3*16(%rdi) + vextracti128 $1, %ymm0, 2*256+64+128+0*16(%rdi) + vextracti128 $1, %ymm1, 2*256+64+128+1*16(%rdi) + vextracti128 $1, %ymm2, 2*256+64+128+2*16(%rdi) + vextracti128 $1, %ymm3, 2*256+64+128+3*16(%rdi) + + movq %rdx, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + popq %rdi + vmovdqa 8(%rsp), %xmm6 + vmovdqa 24(%rsp), %xmm7 + vmovdqa 40(%rsp), %xmm8 + vmovdqa 56(%rsp), %xmm9 + vmovdqa 72(%rsp), %xmm10 + vmovdqa 88(%rsp), %xmm11 + vmovdqa 104(%rsp), %xmm12 + vmovdqa 120(%rsp), %xmm13 + vmovdqa 136(%rsp), %xmm14 + vmovdqa 152(%rsp), %xmm15 + addq $176, %rsp +#endif + popq %rbp + popq %rbx + ret + +#endif /* USE_AVX2 */ + +#endif diff --git a/src/crypto/scrypt-x86.S b/src/crypto/scrypt-x86.S new file mode 100644 index 0000000000..0eb9bc7a6d --- /dev/null +++ b/src/crypto/scrypt-x86.S @@ -0,0 +1,2655 @@ +/* + * Copyright 2011-2012, 2014 pooler@litecoinpool.org + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#if defined(__linux__) && defined(__ELF__) + .section .note.GNU-stack,"",%progbits +#endif + +#if defined(__i386__) + + + + .text + .p2align 5 +salsa8_core_gen: + movl 52(%esp), %ecx + movl 4(%esp), %edx + movl 20(%esp), %ebx + movl 8(%esp), %esi + leal (%ecx, %edx), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 4(%esp) + movl 36(%esp), %edi + leal (%edx, %ebx), %ebp + roll $9, %ebp + xorl %ebp, %edi + movl 24(%esp), %ebp + movl %edi, 8(%esp) + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 40(%esp), %ebx + movl %ecx, 20(%esp) + addl %edi, %ecx + roll $18, %ecx + leal (%esi, %ebp), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 24(%esp) + movl 56(%esp), %edi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %edi + movl %edi, 36(%esp) + movl 28(%esp), %ecx + movl %edx, 28(%esp) + movl 44(%esp), %edx + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %esi + movl 60(%esp), %ebx + movl %esi, 40(%esp) + addl %edi, %esi + roll $18, %esi + leal (%ecx, %edx), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 44(%esp) + movl 12(%esp), %edi + xorl %esi, %ebp + leal (%edx, %ebx), %esi + roll $9, %esi + xorl %esi, %edi + movl %edi, 12(%esp) + movl 48(%esp), %esi + movl %ebp, 48(%esp) + movl 64(%esp), %ebp + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 16(%esp), %ebx + movl %ecx, 16(%esp) + addl %edi, %ecx + roll $18, %ecx + leal (%esi, %ebp), %edi + roll $7, %edi + xorl %edi, %ebx + movl 32(%esp), %edi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %edi + movl %edi, 32(%esp) + movl %ebx, %ecx + movl %edx, 52(%esp) + movl 28(%esp), %edx + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %esi + movl 40(%esp), %ebx + movl %esi, 28(%esp) + addl %edi, %esi + roll $18, %esi + leal (%ecx, %edx), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 40(%esp) + movl 12(%esp), %edi + xorl %esi, %ebp + leal (%edx, %ebx), %esi + roll $9, %esi + xorl %esi, %edi + movl %edi, 12(%esp) + movl 4(%esp), %esi + movl %ebp, 4(%esp) + movl 48(%esp), %ebp + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 16(%esp), %ebx + movl %ecx, 16(%esp) + addl %edi, %ecx + roll $18, %ecx + leal (%esi, %ebp), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 48(%esp) + movl 32(%esp), %edi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %edi + movl %edi, 32(%esp) + movl 24(%esp), %ecx + movl %edx, 24(%esp) + movl 52(%esp), %edx + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %esi + movl 28(%esp), %ebx + movl %esi, 28(%esp) + addl %edi, %esi + roll $18, %esi + leal (%ecx, %edx), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 52(%esp) + movl 8(%esp), %edi + xorl %esi, %ebp + leal (%edx, %ebx), %esi + roll $9, %esi + xorl %esi, %edi + movl %edi, 8(%esp) + movl 44(%esp), %esi + movl %ebp, 44(%esp) + movl 4(%esp), %ebp + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 20(%esp), %ebx + movl %ecx, 4(%esp) + addl %edi, %ecx + roll $18, %ecx + leal (%esi, %ebp), %edi + roll $7, %edi + xorl %edi, %ebx + movl 36(%esp), %edi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %edi + movl %edi, 20(%esp) + movl %ebx, %ecx + movl %edx, 36(%esp) + movl 24(%esp), %edx + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %esi + movl 28(%esp), %ebx + movl %esi, 24(%esp) + addl %edi, %esi + roll $18, %esi + leal (%ecx, %edx), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 28(%esp) + xorl %esi, %ebp + movl 8(%esp), %esi + leal (%edx, %ebx), %edi + roll $9, %edi + xorl %edi, %esi + movl 40(%esp), %edi + movl %ebp, 8(%esp) + movl 44(%esp), %ebp + movl %esi, 40(%esp) + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 4(%esp), %ebx + movl %ecx, 44(%esp) + addl %esi, %ecx + roll $18, %ecx + leal (%edi, %ebp), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 4(%esp) + movl 20(%esp), %esi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %esi + movl %esi, 56(%esp) + movl 48(%esp), %ecx + movl %edx, 20(%esp) + movl 36(%esp), %edx + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %edi + movl 24(%esp), %ebx + movl %edi, 24(%esp) + addl %esi, %edi + roll $18, %edi + leal (%ecx, %edx), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 60(%esp) + movl 12(%esp), %esi + xorl %edi, %ebp + leal (%edx, %ebx), %edi + roll $9, %edi + xorl %edi, %esi + movl %esi, 12(%esp) + movl 52(%esp), %edi + movl %ebp, 36(%esp) + movl 8(%esp), %ebp + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 16(%esp), %ebx + movl %ecx, 16(%esp) + addl %esi, %ecx + roll $18, %ecx + leal (%edi, %ebp), %esi + roll $7, %esi + xorl %esi, %ebx + movl 32(%esp), %esi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %esi + movl %esi, 32(%esp) + movl %ebx, %ecx + movl %edx, 48(%esp) + movl 20(%esp), %edx + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %edi + movl 24(%esp), %ebx + movl %edi, 20(%esp) + addl %esi, %edi + roll $18, %edi + leal (%ecx, %edx), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 8(%esp) + movl 12(%esp), %esi + xorl %edi, %ebp + leal (%edx, %ebx), %edi + roll $9, %edi + xorl %edi, %esi + movl %esi, 12(%esp) + movl 28(%esp), %edi + movl %ebp, 52(%esp) + movl 36(%esp), %ebp + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 16(%esp), %ebx + movl %ecx, 16(%esp) + addl %esi, %ecx + roll $18, %ecx + leal (%edi, %ebp), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 28(%esp) + movl 32(%esp), %esi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %esi + movl %esi, 32(%esp) + movl 4(%esp), %ecx + movl %edx, 4(%esp) + movl 48(%esp), %edx + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %edi + movl 20(%esp), %ebx + movl %edi, 20(%esp) + addl %esi, %edi + roll $18, %edi + leal (%ecx, %edx), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 48(%esp) + movl 40(%esp), %esi + xorl %edi, %ebp + leal (%edx, %ebx), %edi + roll $9, %edi + xorl %edi, %esi + movl %esi, 36(%esp) + movl 60(%esp), %edi + movl %ebp, 24(%esp) + movl 52(%esp), %ebp + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 44(%esp), %ebx + movl %ecx, 40(%esp) + addl %esi, %ecx + roll $18, %ecx + leal (%edi, %ebp), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 52(%esp) + movl 56(%esp), %esi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %esi + movl %esi, 56(%esp) + addl %esi, %ebx + movl %edx, 44(%esp) + roll $13, %ebx + xorl %ebx, %edi + movl %edi, 60(%esp) + addl %esi, %edi + roll $18, %edi + xorl %edi, %ebp + movl %ebp, 64(%esp) + movl 52(%esp), %ecx + movl 4(%esp), %edx + movl 20(%esp), %ebx + movl 8(%esp), %esi + leal (%ecx, %edx), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 4(%esp) + movl 36(%esp), %edi + leal (%edx, %ebx), %ebp + roll $9, %ebp + xorl %ebp, %edi + movl 24(%esp), %ebp + movl %edi, 8(%esp) + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 40(%esp), %ebx + movl %ecx, 20(%esp) + addl %edi, %ecx + roll $18, %ecx + leal (%esi, %ebp), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 24(%esp) + movl 56(%esp), %edi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %edi + movl %edi, 36(%esp) + movl 28(%esp), %ecx + movl %edx, 28(%esp) + movl 44(%esp), %edx + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %esi + movl 60(%esp), %ebx + movl %esi, 40(%esp) + addl %edi, %esi + roll $18, %esi + leal (%ecx, %edx), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 44(%esp) + movl 12(%esp), %edi + xorl %esi, %ebp + leal (%edx, %ebx), %esi + roll $9, %esi + xorl %esi, %edi + movl %edi, 12(%esp) + movl 48(%esp), %esi + movl %ebp, 48(%esp) + movl 64(%esp), %ebp + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 16(%esp), %ebx + movl %ecx, 16(%esp) + addl %edi, %ecx + roll $18, %ecx + leal (%esi, %ebp), %edi + roll $7, %edi + xorl %edi, %ebx + movl 32(%esp), %edi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %edi + movl %edi, 32(%esp) + movl %ebx, %ecx + movl %edx, 52(%esp) + movl 28(%esp), %edx + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %esi + movl 40(%esp), %ebx + movl %esi, 28(%esp) + addl %edi, %esi + roll $18, %esi + leal (%ecx, %edx), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 40(%esp) + movl 12(%esp), %edi + xorl %esi, %ebp + leal (%edx, %ebx), %esi + roll $9, %esi + xorl %esi, %edi + movl %edi, 12(%esp) + movl 4(%esp), %esi + movl %ebp, 4(%esp) + movl 48(%esp), %ebp + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 16(%esp), %ebx + movl %ecx, 16(%esp) + addl %edi, %ecx + roll $18, %ecx + leal (%esi, %ebp), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 48(%esp) + movl 32(%esp), %edi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %edi + movl %edi, 32(%esp) + movl 24(%esp), %ecx + movl %edx, 24(%esp) + movl 52(%esp), %edx + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %esi + movl 28(%esp), %ebx + movl %esi, 28(%esp) + addl %edi, %esi + roll $18, %esi + leal (%ecx, %edx), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 52(%esp) + movl 8(%esp), %edi + xorl %esi, %ebp + leal (%edx, %ebx), %esi + roll $9, %esi + xorl %esi, %edi + movl %edi, 8(%esp) + movl 44(%esp), %esi + movl %ebp, 44(%esp) + movl 4(%esp), %ebp + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 20(%esp), %ebx + movl %ecx, 4(%esp) + addl %edi, %ecx + roll $18, %ecx + leal (%esi, %ebp), %edi + roll $7, %edi + xorl %edi, %ebx + movl 36(%esp), %edi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %edi + movl %edi, 20(%esp) + movl %ebx, %ecx + movl %edx, 36(%esp) + movl 24(%esp), %edx + addl %edi, %ebx + roll $13, %ebx + xorl %ebx, %esi + movl 28(%esp), %ebx + movl %esi, 24(%esp) + addl %edi, %esi + roll $18, %esi + leal (%ecx, %edx), %edi + roll $7, %edi + xorl %edi, %ebx + movl %ebx, 28(%esp) + xorl %esi, %ebp + movl 8(%esp), %esi + leal (%edx, %ebx), %edi + roll $9, %edi + xorl %edi, %esi + movl 40(%esp), %edi + movl %ebp, 8(%esp) + movl 44(%esp), %ebp + movl %esi, 40(%esp) + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 4(%esp), %ebx + movl %ecx, 44(%esp) + addl %esi, %ecx + roll $18, %ecx + leal (%edi, %ebp), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 4(%esp) + movl 20(%esp), %esi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %esi + movl %esi, 56(%esp) + movl 48(%esp), %ecx + movl %edx, 20(%esp) + movl 36(%esp), %edx + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %edi + movl 24(%esp), %ebx + movl %edi, 24(%esp) + addl %esi, %edi + roll $18, %edi + leal (%ecx, %edx), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 60(%esp) + movl 12(%esp), %esi + xorl %edi, %ebp + leal (%edx, %ebx), %edi + roll $9, %edi + xorl %edi, %esi + movl %esi, 12(%esp) + movl 52(%esp), %edi + movl %ebp, 36(%esp) + movl 8(%esp), %ebp + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 16(%esp), %ebx + movl %ecx, 16(%esp) + addl %esi, %ecx + roll $18, %ecx + leal (%edi, %ebp), %esi + roll $7, %esi + xorl %esi, %ebx + movl 32(%esp), %esi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %esi + movl %esi, 32(%esp) + movl %ebx, %ecx + movl %edx, 48(%esp) + movl 20(%esp), %edx + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %edi + movl 24(%esp), %ebx + movl %edi, 20(%esp) + addl %esi, %edi + roll $18, %edi + leal (%ecx, %edx), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 8(%esp) + movl 12(%esp), %esi + xorl %edi, %ebp + leal (%edx, %ebx), %edi + roll $9, %edi + xorl %edi, %esi + movl %esi, 12(%esp) + movl 28(%esp), %edi + movl %ebp, 52(%esp) + movl 36(%esp), %ebp + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 16(%esp), %ebx + movl %ecx, 16(%esp) + addl %esi, %ecx + roll $18, %ecx + leal (%edi, %ebp), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 28(%esp) + movl 32(%esp), %esi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %esi + movl %esi, 32(%esp) + movl 4(%esp), %ecx + movl %edx, 4(%esp) + movl 48(%esp), %edx + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %edi + movl 20(%esp), %ebx + movl %edi, 20(%esp) + addl %esi, %edi + roll $18, %edi + leal (%ecx, %edx), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 48(%esp) + movl 40(%esp), %esi + xorl %edi, %ebp + leal (%edx, %ebx), %edi + roll $9, %edi + xorl %edi, %esi + movl %esi, 36(%esp) + movl 60(%esp), %edi + movl %ebp, 24(%esp) + movl 52(%esp), %ebp + addl %esi, %ebx + roll $13, %ebx + xorl %ebx, %ecx + movl 44(%esp), %ebx + movl %ecx, 40(%esp) + addl %esi, %ecx + roll $18, %ecx + leal (%edi, %ebp), %esi + roll $7, %esi + xorl %esi, %ebx + movl %ebx, 52(%esp) + movl 56(%esp), %esi + xorl %ecx, %edx + leal (%ebp, %ebx), %ecx + roll $9, %ecx + xorl %ecx, %esi + movl %esi, 56(%esp) + addl %esi, %ebx + movl %edx, 44(%esp) + roll $13, %ebx + xorl %ebx, %edi + movl %edi, 60(%esp) + addl %esi, %edi + roll $18, %edi + xorl %edi, %ebp + movl %ebp, 64(%esp) + ret + + + .text + .p2align 5 + .globl scrypt_core + .globl _scrypt_core +scrypt_core: +_scrypt_core: + pushl %ebx + pushl %ebp + pushl %edi + pushl %esi + + /* Check for SSE2 availability */ + movl $1, %eax + cpuid + andl $0x04000000, %edx + jnz scrypt_core_sse2 + +scrypt_core_gen: + movl 20(%esp), %edi + movl 24(%esp), %esi + movl 28(%esp), %ecx + subl $72, %esp + + + + + + shll $7, %ecx + addl %esi, %ecx +scrypt_core_gen_loop1: + movl %esi, 64(%esp) + movl %ecx, 68(%esp) + + movl 0(%edi), %eax + movl 64(%edi), %edx + movl %eax, 0(%esi) + movl %edx, 64(%esi) + xorl %edx, %eax + movl %eax, 0(%edi) + movl %eax, 0(%esp) + movl 4(%edi), %eax + movl 68(%edi), %edx + movl %eax, 4(%esi) + movl %edx, 68(%esi) + xorl %edx, %eax + movl %eax, 4(%edi) + movl %eax, 4(%esp) + movl 8(%edi), %eax + movl 72(%edi), %edx + movl %eax, 8(%esi) + movl %edx, 72(%esi) + xorl %edx, %eax + movl %eax, 8(%edi) + movl %eax, 8(%esp) + movl 12(%edi), %eax + movl 76(%edi), %edx + movl %eax, 12(%esi) + movl %edx, 76(%esi) + xorl %edx, %eax + movl %eax, 12(%edi) + movl %eax, 12(%esp) + movl 16(%edi), %eax + movl 80(%edi), %edx + movl %eax, 16(%esi) + movl %edx, 80(%esi) + xorl %edx, %eax + movl %eax, 16(%edi) + movl %eax, 16(%esp) + movl 20(%edi), %eax + movl 84(%edi), %edx + movl %eax, 20(%esi) + movl %edx, 84(%esi) + xorl %edx, %eax + movl %eax, 20(%edi) + movl %eax, 20(%esp) + movl 24(%edi), %eax + movl 88(%edi), %edx + movl %eax, 24(%esi) + movl %edx, 88(%esi) + xorl %edx, %eax + movl %eax, 24(%edi) + movl %eax, 24(%esp) + movl 28(%edi), %eax + movl 92(%edi), %edx + movl %eax, 28(%esi) + movl %edx, 92(%esi) + xorl %edx, %eax + movl %eax, 28(%edi) + movl %eax, 28(%esp) + movl 32(%edi), %eax + movl 96(%edi), %edx + movl %eax, 32(%esi) + movl %edx, 96(%esi) + xorl %edx, %eax + movl %eax, 32(%edi) + movl %eax, 32(%esp) + movl 36(%edi), %eax + movl 100(%edi), %edx + movl %eax, 36(%esi) + movl %edx, 100(%esi) + xorl %edx, %eax + movl %eax, 36(%edi) + movl %eax, 36(%esp) + movl 40(%edi), %eax + movl 104(%edi), %edx + movl %eax, 40(%esi) + movl %edx, 104(%esi) + xorl %edx, %eax + movl %eax, 40(%edi) + movl %eax, 40(%esp) + movl 44(%edi), %eax + movl 108(%edi), %edx + movl %eax, 44(%esi) + movl %edx, 108(%esi) + xorl %edx, %eax + movl %eax, 44(%edi) + movl %eax, 44(%esp) + movl 48(%edi), %eax + movl 112(%edi), %edx + movl %eax, 48(%esi) + movl %edx, 112(%esi) + xorl %edx, %eax + movl %eax, 48(%edi) + movl %eax, 48(%esp) + movl 52(%edi), %eax + movl 116(%edi), %edx + movl %eax, 52(%esi) + movl %edx, 116(%esi) + xorl %edx, %eax + movl %eax, 52(%edi) + movl %eax, 52(%esp) + movl 56(%edi), %eax + movl 120(%edi), %edx + movl %eax, 56(%esi) + movl %edx, 120(%esi) + xorl %edx, %eax + movl %eax, 56(%edi) + movl %eax, 56(%esp) + movl 60(%edi), %eax + movl 124(%edi), %edx + movl %eax, 60(%esi) + movl %edx, 124(%esi) + xorl %edx, %eax + movl %eax, 60(%edi) + movl %eax, 60(%esp) + + call salsa8_core_gen + + movl 92(%esp), %edi + movl 0(%esp), %eax + addl 0(%edi), %eax + movl %eax, 0(%edi) + xorl 64(%edi), %eax + movl %eax, 64(%edi) + movl %eax, 0(%esp) + movl 4(%esp), %eax + addl 4(%edi), %eax + movl %eax, 4(%edi) + xorl 68(%edi), %eax + movl %eax, 68(%edi) + movl %eax, 4(%esp) + movl 8(%esp), %eax + addl 8(%edi), %eax + movl %eax, 8(%edi) + xorl 72(%edi), %eax + movl %eax, 72(%edi) + movl %eax, 8(%esp) + movl 12(%esp), %eax + addl 12(%edi), %eax + movl %eax, 12(%edi) + xorl 76(%edi), %eax + movl %eax, 76(%edi) + movl %eax, 12(%esp) + movl 16(%esp), %eax + addl 16(%edi), %eax + movl %eax, 16(%edi) + xorl 80(%edi), %eax + movl %eax, 80(%edi) + movl %eax, 16(%esp) + movl 20(%esp), %eax + addl 20(%edi), %eax + movl %eax, 20(%edi) + xorl 84(%edi), %eax + movl %eax, 84(%edi) + movl %eax, 20(%esp) + movl 24(%esp), %eax + addl 24(%edi), %eax + movl %eax, 24(%edi) + xorl 88(%edi), %eax + movl %eax, 88(%edi) + movl %eax, 24(%esp) + movl 28(%esp), %eax + addl 28(%edi), %eax + movl %eax, 28(%edi) + xorl 92(%edi), %eax + movl %eax, 92(%edi) + movl %eax, 28(%esp) + movl 32(%esp), %eax + addl 32(%edi), %eax + movl %eax, 32(%edi) + xorl 96(%edi), %eax + movl %eax, 96(%edi) + movl %eax, 32(%esp) + movl 36(%esp), %eax + addl 36(%edi), %eax + movl %eax, 36(%edi) + xorl 100(%edi), %eax + movl %eax, 100(%edi) + movl %eax, 36(%esp) + movl 40(%esp), %eax + addl 40(%edi), %eax + movl %eax, 40(%edi) + xorl 104(%edi), %eax + movl %eax, 104(%edi) + movl %eax, 40(%esp) + movl 44(%esp), %eax + addl 44(%edi), %eax + movl %eax, 44(%edi) + xorl 108(%edi), %eax + movl %eax, 108(%edi) + movl %eax, 44(%esp) + movl 48(%esp), %eax + addl 48(%edi), %eax + movl %eax, 48(%edi) + xorl 112(%edi), %eax + movl %eax, 112(%edi) + movl %eax, 48(%esp) + movl 52(%esp), %eax + addl 52(%edi), %eax + movl %eax, 52(%edi) + xorl 116(%edi), %eax + movl %eax, 116(%edi) + movl %eax, 52(%esp) + movl 56(%esp), %eax + addl 56(%edi), %eax + movl %eax, 56(%edi) + xorl 120(%edi), %eax + movl %eax, 120(%edi) + movl %eax, 56(%esp) + movl 60(%esp), %eax + addl 60(%edi), %eax + movl %eax, 60(%edi) + xorl 124(%edi), %eax + movl %eax, 124(%edi) + movl %eax, 60(%esp) + + call salsa8_core_gen + + movl 92(%esp), %edi + movl 0(%esp), %eax + addl 64(%edi), %eax + movl %eax, 64(%edi) + movl 4(%esp), %eax + addl 68(%edi), %eax + movl %eax, 68(%edi) + movl 8(%esp), %eax + addl 72(%edi), %eax + movl %eax, 72(%edi) + movl 12(%esp), %eax + addl 76(%edi), %eax + movl %eax, 76(%edi) + movl 16(%esp), %eax + addl 80(%edi), %eax + movl %eax, 80(%edi) + movl 20(%esp), %eax + addl 84(%edi), %eax + movl %eax, 84(%edi) + movl 24(%esp), %eax + addl 88(%edi), %eax + movl %eax, 88(%edi) + movl 28(%esp), %eax + addl 92(%edi), %eax + movl %eax, 92(%edi) + movl 32(%esp), %eax + addl 96(%edi), %eax + movl %eax, 96(%edi) + movl 36(%esp), %eax + addl 100(%edi), %eax + movl %eax, 100(%edi) + movl 40(%esp), %eax + addl 104(%edi), %eax + movl %eax, 104(%edi) + movl 44(%esp), %eax + addl 108(%edi), %eax + movl %eax, 108(%edi) + movl 48(%esp), %eax + addl 112(%edi), %eax + movl %eax, 112(%edi) + movl 52(%esp), %eax + addl 116(%edi), %eax + movl %eax, 116(%edi) + movl 56(%esp), %eax + addl 120(%edi), %eax + movl %eax, 120(%edi) + movl 60(%esp), %eax + addl 124(%edi), %eax + movl %eax, 124(%edi) + + movl 64(%esp), %esi + movl 68(%esp), %ecx + addl $128, %esi + cmpl %ecx, %esi + jne scrypt_core_gen_loop1 + + movl 96(%esp), %esi + movl 100(%esp), %ecx + movl %ecx, %eax + subl $1, %eax + movl %eax, 100(%esp) +scrypt_core_gen_loop2: + movl %ecx, 68(%esp) + + movl 64(%edi), %edx + andl 100(%esp), %edx + shll $7, %edx + + movl 0(%edi), %eax + xorl 0(%esi, %edx), %eax + movl 64(%edi), %ebx + xorl 64(%esi, %edx), %ebx + movl %ebx, 64(%edi) + xorl %ebx, %eax + movl %eax, 0(%edi) + movl %eax, 0(%esp) + movl 4(%edi), %eax + xorl 4(%esi, %edx), %eax + movl 68(%edi), %ebx + xorl 68(%esi, %edx), %ebx + movl %ebx, 68(%edi) + xorl %ebx, %eax + movl %eax, 4(%edi) + movl %eax, 4(%esp) + movl 8(%edi), %eax + xorl 8(%esi, %edx), %eax + movl 72(%edi), %ebx + xorl 72(%esi, %edx), %ebx + movl %ebx, 72(%edi) + xorl %ebx, %eax + movl %eax, 8(%edi) + movl %eax, 8(%esp) + movl 12(%edi), %eax + xorl 12(%esi, %edx), %eax + movl 76(%edi), %ebx + xorl 76(%esi, %edx), %ebx + movl %ebx, 76(%edi) + xorl %ebx, %eax + movl %eax, 12(%edi) + movl %eax, 12(%esp) + movl 16(%edi), %eax + xorl 16(%esi, %edx), %eax + movl 80(%edi), %ebx + xorl 80(%esi, %edx), %ebx + movl %ebx, 80(%edi) + xorl %ebx, %eax + movl %eax, 16(%edi) + movl %eax, 16(%esp) + movl 20(%edi), %eax + xorl 20(%esi, %edx), %eax + movl 84(%edi), %ebx + xorl 84(%esi, %edx), %ebx + movl %ebx, 84(%edi) + xorl %ebx, %eax + movl %eax, 20(%edi) + movl %eax, 20(%esp) + movl 24(%edi), %eax + xorl 24(%esi, %edx), %eax + movl 88(%edi), %ebx + xorl 88(%esi, %edx), %ebx + movl %ebx, 88(%edi) + xorl %ebx, %eax + movl %eax, 24(%edi) + movl %eax, 24(%esp) + movl 28(%edi), %eax + xorl 28(%esi, %edx), %eax + movl 92(%edi), %ebx + xorl 92(%esi, %edx), %ebx + movl %ebx, 92(%edi) + xorl %ebx, %eax + movl %eax, 28(%edi) + movl %eax, 28(%esp) + movl 32(%edi), %eax + xorl 32(%esi, %edx), %eax + movl 96(%edi), %ebx + xorl 96(%esi, %edx), %ebx + movl %ebx, 96(%edi) + xorl %ebx, %eax + movl %eax, 32(%edi) + movl %eax, 32(%esp) + movl 36(%edi), %eax + xorl 36(%esi, %edx), %eax + movl 100(%edi), %ebx + xorl 100(%esi, %edx), %ebx + movl %ebx, 100(%edi) + xorl %ebx, %eax + movl %eax, 36(%edi) + movl %eax, 36(%esp) + movl 40(%edi), %eax + xorl 40(%esi, %edx), %eax + movl 104(%edi), %ebx + xorl 104(%esi, %edx), %ebx + movl %ebx, 104(%edi) + xorl %ebx, %eax + movl %eax, 40(%edi) + movl %eax, 40(%esp) + movl 44(%edi), %eax + xorl 44(%esi, %edx), %eax + movl 108(%edi), %ebx + xorl 108(%esi, %edx), %ebx + movl %ebx, 108(%edi) + xorl %ebx, %eax + movl %eax, 44(%edi) + movl %eax, 44(%esp) + movl 48(%edi), %eax + xorl 48(%esi, %edx), %eax + movl 112(%edi), %ebx + xorl 112(%esi, %edx), %ebx + movl %ebx, 112(%edi) + xorl %ebx, %eax + movl %eax, 48(%edi) + movl %eax, 48(%esp) + movl 52(%edi), %eax + xorl 52(%esi, %edx), %eax + movl 116(%edi), %ebx + xorl 116(%esi, %edx), %ebx + movl %ebx, 116(%edi) + xorl %ebx, %eax + movl %eax, 52(%edi) + movl %eax, 52(%esp) + movl 56(%edi), %eax + xorl 56(%esi, %edx), %eax + movl 120(%edi), %ebx + xorl 120(%esi, %edx), %ebx + movl %ebx, 120(%edi) + xorl %ebx, %eax + movl %eax, 56(%edi) + movl %eax, 56(%esp) + movl 60(%edi), %eax + xorl 60(%esi, %edx), %eax + movl 124(%edi), %ebx + xorl 124(%esi, %edx), %ebx + movl %ebx, 124(%edi) + xorl %ebx, %eax + movl %eax, 60(%edi) + movl %eax, 60(%esp) + + call salsa8_core_gen + + movl 92(%esp), %edi + movl 0(%esp), %eax + addl 0(%edi), %eax + movl %eax, 0(%edi) + xorl 64(%edi), %eax + movl %eax, 64(%edi) + movl %eax, 0(%esp) + movl 4(%esp), %eax + addl 4(%edi), %eax + movl %eax, 4(%edi) + xorl 68(%edi), %eax + movl %eax, 68(%edi) + movl %eax, 4(%esp) + movl 8(%esp), %eax + addl 8(%edi), %eax + movl %eax, 8(%edi) + xorl 72(%edi), %eax + movl %eax, 72(%edi) + movl %eax, 8(%esp) + movl 12(%esp), %eax + addl 12(%edi), %eax + movl %eax, 12(%edi) + xorl 76(%edi), %eax + movl %eax, 76(%edi) + movl %eax, 12(%esp) + movl 16(%esp), %eax + addl 16(%edi), %eax + movl %eax, 16(%edi) + xorl 80(%edi), %eax + movl %eax, 80(%edi) + movl %eax, 16(%esp) + movl 20(%esp), %eax + addl 20(%edi), %eax + movl %eax, 20(%edi) + xorl 84(%edi), %eax + movl %eax, 84(%edi) + movl %eax, 20(%esp) + movl 24(%esp), %eax + addl 24(%edi), %eax + movl %eax, 24(%edi) + xorl 88(%edi), %eax + movl %eax, 88(%edi) + movl %eax, 24(%esp) + movl 28(%esp), %eax + addl 28(%edi), %eax + movl %eax, 28(%edi) + xorl 92(%edi), %eax + movl %eax, 92(%edi) + movl %eax, 28(%esp) + movl 32(%esp), %eax + addl 32(%edi), %eax + movl %eax, 32(%edi) + xorl 96(%edi), %eax + movl %eax, 96(%edi) + movl %eax, 32(%esp) + movl 36(%esp), %eax + addl 36(%edi), %eax + movl %eax, 36(%edi) + xorl 100(%edi), %eax + movl %eax, 100(%edi) + movl %eax, 36(%esp) + movl 40(%esp), %eax + addl 40(%edi), %eax + movl %eax, 40(%edi) + xorl 104(%edi), %eax + movl %eax, 104(%edi) + movl %eax, 40(%esp) + movl 44(%esp), %eax + addl 44(%edi), %eax + movl %eax, 44(%edi) + xorl 108(%edi), %eax + movl %eax, 108(%edi) + movl %eax, 44(%esp) + movl 48(%esp), %eax + addl 48(%edi), %eax + movl %eax, 48(%edi) + xorl 112(%edi), %eax + movl %eax, 112(%edi) + movl %eax, 48(%esp) + movl 52(%esp), %eax + addl 52(%edi), %eax + movl %eax, 52(%edi) + xorl 116(%edi), %eax + movl %eax, 116(%edi) + movl %eax, 52(%esp) + movl 56(%esp), %eax + addl 56(%edi), %eax + movl %eax, 56(%edi) + xorl 120(%edi), %eax + movl %eax, 120(%edi) + movl %eax, 56(%esp) + movl 60(%esp), %eax + addl 60(%edi), %eax + movl %eax, 60(%edi) + xorl 124(%edi), %eax + movl %eax, 124(%edi) + movl %eax, 60(%esp) + + call salsa8_core_gen + + movl 92(%esp), %edi + movl 96(%esp), %esi + movl 0(%esp), %eax + addl 64(%edi), %eax + movl %eax, 64(%edi) + movl 4(%esp), %eax + addl 68(%edi), %eax + movl %eax, 68(%edi) + movl 8(%esp), %eax + addl 72(%edi), %eax + movl %eax, 72(%edi) + movl 12(%esp), %eax + addl 76(%edi), %eax + movl %eax, 76(%edi) + movl 16(%esp), %eax + addl 80(%edi), %eax + movl %eax, 80(%edi) + movl 20(%esp), %eax + addl 84(%edi), %eax + movl %eax, 84(%edi) + movl 24(%esp), %eax + addl 88(%edi), %eax + movl %eax, 88(%edi) + movl 28(%esp), %eax + addl 92(%edi), %eax + movl %eax, 92(%edi) + movl 32(%esp), %eax + addl 96(%edi), %eax + movl %eax, 96(%edi) + movl 36(%esp), %eax + addl 100(%edi), %eax + movl %eax, 100(%edi) + movl 40(%esp), %eax + addl 104(%edi), %eax + movl %eax, 104(%edi) + movl 44(%esp), %eax + addl 108(%edi), %eax + movl %eax, 108(%edi) + movl 48(%esp), %eax + addl 112(%edi), %eax + movl %eax, 112(%edi) + movl 52(%esp), %eax + addl 116(%edi), %eax + movl %eax, 116(%edi) + movl 56(%esp), %eax + addl 120(%edi), %eax + movl %eax, 120(%edi) + movl 60(%esp), %eax + addl 124(%edi), %eax + movl %eax, 124(%edi) + + movl 68(%esp), %ecx + subl $1, %ecx + ja scrypt_core_gen_loop2 + + addl $72, %esp + popl %esi + popl %edi + popl %ebp + popl %ebx + ret + + + + + .p2align 5 +scrypt_core_sse2: + movl 20(%esp), %edi + movl 24(%esp), %esi + movl %esp, %ebp + subl $128, %esp + andl $-16, %esp + + movl 0+60(%edi), %eax + movl 0+44(%edi), %ebx + movl 0+28(%edi), %ecx + movl 0+12(%edi), %edx + movl %eax, 0+12(%esp) + movl %ebx, 0+28(%esp) + movl %ecx, 0+44(%esp) + movl %edx, 0+60(%esp) + movl 0+40(%edi), %eax + movl 0+8(%edi), %ebx + movl 0+48(%edi), %ecx + movl 0+16(%edi), %edx + movl %eax, 0+8(%esp) + movl %ebx, 0+40(%esp) + movl %ecx, 0+16(%esp) + movl %edx, 0+48(%esp) + movl 0+20(%edi), %eax + movl 0+4(%edi), %ebx + movl 0+52(%edi), %ecx + movl 0+36(%edi), %edx + movl %eax, 0+4(%esp) + movl %ebx, 0+20(%esp) + movl %ecx, 0+36(%esp) + movl %edx, 0+52(%esp) + movl 0+0(%edi), %eax + movl 0+24(%edi), %ebx + movl 0+32(%edi), %ecx + movl 0+56(%edi), %edx + movl %eax, 0+0(%esp) + movl %ebx, 0+24(%esp) + movl %ecx, 0+32(%esp) + movl %edx, 0+56(%esp) + movl 64+60(%edi), %eax + movl 64+44(%edi), %ebx + movl 64+28(%edi), %ecx + movl 64+12(%edi), %edx + movl %eax, 64+12(%esp) + movl %ebx, 64+28(%esp) + movl %ecx, 64+44(%esp) + movl %edx, 64+60(%esp) + movl 64+40(%edi), %eax + movl 64+8(%edi), %ebx + movl 64+48(%edi), %ecx + movl 64+16(%edi), %edx + movl %eax, 64+8(%esp) + movl %ebx, 64+40(%esp) + movl %ecx, 64+16(%esp) + movl %edx, 64+48(%esp) + movl 64+20(%edi), %eax + movl 64+4(%edi), %ebx + movl 64+52(%edi), %ecx + movl 64+36(%edi), %edx + movl %eax, 64+4(%esp) + movl %ebx, 64+20(%esp) + movl %ecx, 64+36(%esp) + movl %edx, 64+52(%esp) + movl 64+0(%edi), %eax + movl 64+24(%edi), %ebx + movl 64+32(%edi), %ecx + movl 64+56(%edi), %edx + movl %eax, 64+0(%esp) + movl %ebx, 64+24(%esp) + movl %ecx, 64+32(%esp) + movl %edx, 64+56(%esp) + + movdqa 96(%esp), %xmm6 + movdqa 112(%esp), %xmm7 + + movl %esi, %edx + movl 28(%ebp), %ecx + shll $7, %ecx + addl %esi, %ecx +scrypt_core_sse2_loop1: + movdqa 0(%esp), %xmm0 + movdqa 16(%esp), %xmm1 + movdqa 32(%esp), %xmm2 + movdqa 48(%esp), %xmm3 + movdqa 64(%esp), %xmm4 + movdqa 80(%esp), %xmm5 + pxor %xmm4, %xmm0 + pxor %xmm5, %xmm1 + movdqa %xmm0, 0(%edx) + movdqa %xmm1, 16(%edx) + pxor %xmm6, %xmm2 + pxor %xmm7, %xmm3 + movdqa %xmm2, 32(%edx) + movdqa %xmm3, 48(%edx) + movdqa %xmm4, 64(%edx) + movdqa %xmm5, 80(%edx) + movdqa %xmm6, 96(%edx) + movdqa %xmm7, 112(%edx) + + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + paddd 0(%edx), %xmm0 + paddd 16(%edx), %xmm1 + paddd 32(%edx), %xmm2 + paddd 48(%edx), %xmm3 + movdqa %xmm0, 0(%esp) + movdqa %xmm1, 16(%esp) + movdqa %xmm2, 32(%esp) + movdqa %xmm3, 48(%esp) + + pxor 64(%esp), %xmm0 + pxor 80(%esp), %xmm1 + pxor %xmm6, %xmm2 + pxor %xmm7, %xmm3 + movdqa %xmm0, 64(%esp) + movdqa %xmm1, 80(%esp) + movdqa %xmm2, %xmm6 + movdqa %xmm3, %xmm7 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + paddd 64(%esp), %xmm0 + paddd 80(%esp), %xmm1 + paddd %xmm2, %xmm6 + paddd %xmm3, %xmm7 + movdqa %xmm0, 64(%esp) + movdqa %xmm1, 80(%esp) + + addl $128, %edx + cmpl %ecx, %edx + jne scrypt_core_sse2_loop1 + + movdqa 64(%esp), %xmm4 + movdqa 80(%esp), %xmm5 + + movl 28(%ebp), %ecx + movl %ecx, %eax + subl $1, %eax +scrypt_core_sse2_loop2: + movd %xmm4, %edx + movdqa 0(%esp), %xmm0 + movdqa 16(%esp), %xmm1 + movdqa 32(%esp), %xmm2 + movdqa 48(%esp), %xmm3 + andl %eax, %edx + shll $7, %edx + pxor 0(%esi, %edx), %xmm0 + pxor 16(%esi, %edx), %xmm1 + pxor 32(%esi, %edx), %xmm2 + pxor 48(%esi, %edx), %xmm3 + + pxor %xmm4, %xmm0 + pxor %xmm5, %xmm1 + movdqa %xmm0, 0(%esp) + movdqa %xmm1, 16(%esp) + pxor %xmm6, %xmm2 + pxor %xmm7, %xmm3 + movdqa %xmm2, 32(%esp) + movdqa %xmm3, 48(%esp) + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + paddd 0(%esp), %xmm0 + paddd 16(%esp), %xmm1 + paddd 32(%esp), %xmm2 + paddd 48(%esp), %xmm3 + movdqa %xmm0, 0(%esp) + movdqa %xmm1, 16(%esp) + movdqa %xmm2, 32(%esp) + movdqa %xmm3, 48(%esp) + + pxor 64(%esi, %edx), %xmm0 + pxor 80(%esi, %edx), %xmm1 + pxor 96(%esi, %edx), %xmm2 + pxor 112(%esi, %edx), %xmm3 + pxor 64(%esp), %xmm0 + pxor 80(%esp), %xmm1 + pxor %xmm6, %xmm2 + pxor %xmm7, %xmm3 + movdqa %xmm0, 64(%esp) + movdqa %xmm1, 80(%esp) + movdqa %xmm2, %xmm6 + movdqa %xmm3, %xmm7 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + movdqa %xmm1, %xmm4 + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm3 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm3, %xmm3 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm1 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + movdqa %xmm3, %xmm4 + pxor %xmm5, %xmm0 + pshufd $0x39, %xmm1, %xmm1 + + paddd %xmm0, %xmm4 + movdqa %xmm4, %xmm5 + pslld $7, %xmm4 + psrld $25, %xmm5 + pxor %xmm4, %xmm1 + movdqa %xmm0, %xmm4 + pxor %xmm5, %xmm1 + + paddd %xmm1, %xmm4 + movdqa %xmm4, %xmm5 + pslld $9, %xmm4 + psrld $23, %xmm5 + pxor %xmm4, %xmm2 + movdqa %xmm1, %xmm4 + pxor %xmm5, %xmm2 + pshufd $0x93, %xmm1, %xmm1 + + paddd %xmm2, %xmm4 + movdqa %xmm4, %xmm5 + pslld $13, %xmm4 + psrld $19, %xmm5 + pxor %xmm4, %xmm3 + movdqa %xmm2, %xmm4 + pxor %xmm5, %xmm3 + pshufd $0x4e, %xmm2, %xmm2 + + paddd %xmm3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $18, %xmm4 + psrld $14, %xmm5 + pxor %xmm4, %xmm0 + pshufd $0x39, %xmm3, %xmm3 + pxor %xmm5, %xmm0 + paddd 64(%esp), %xmm0 + paddd 80(%esp), %xmm1 + paddd %xmm2, %xmm6 + paddd %xmm3, %xmm7 + movdqa %xmm0, %xmm4 + movdqa %xmm1, %xmm5 + movdqa %xmm0, 64(%esp) + movdqa %xmm1, 80(%esp) + + subl $1, %ecx + ja scrypt_core_sse2_loop2 + + movdqa %xmm6, 96(%esp) + movdqa %xmm7, 112(%esp) + + movl 0+60(%esp), %eax + movl 0+44(%esp), %ebx + movl 0+28(%esp), %ecx + movl 0+12(%esp), %edx + movl %eax, 0+12(%edi) + movl %ebx, 0+28(%edi) + movl %ecx, 0+44(%edi) + movl %edx, 0+60(%edi) + movl 0+40(%esp), %eax + movl 0+8(%esp), %ebx + movl 0+48(%esp), %ecx + movl 0+16(%esp), %edx + movl %eax, 0+8(%edi) + movl %ebx, 0+40(%edi) + movl %ecx, 0+16(%edi) + movl %edx, 0+48(%edi) + movl 0+20(%esp), %eax + movl 0+4(%esp), %ebx + movl 0+52(%esp), %ecx + movl 0+36(%esp), %edx + movl %eax, 0+4(%edi) + movl %ebx, 0+20(%edi) + movl %ecx, 0+36(%edi) + movl %edx, 0+52(%edi) + movl 0+0(%esp), %eax + movl 0+24(%esp), %ebx + movl 0+32(%esp), %ecx + movl 0+56(%esp), %edx + movl %eax, 0+0(%edi) + movl %ebx, 0+24(%edi) + movl %ecx, 0+32(%edi) + movl %edx, 0+56(%edi) + movl 64+60(%esp), %eax + movl 64+44(%esp), %ebx + movl 64+28(%esp), %ecx + movl 64+12(%esp), %edx + movl %eax, 64+12(%edi) + movl %ebx, 64+28(%edi) + movl %ecx, 64+44(%edi) + movl %edx, 64+60(%edi) + movl 64+40(%esp), %eax + movl 64+8(%esp), %ebx + movl 64+48(%esp), %ecx + movl 64+16(%esp), %edx + movl %eax, 64+8(%edi) + movl %ebx, 64+40(%edi) + movl %ecx, 64+16(%edi) + movl %edx, 64+48(%edi) + movl 64+20(%esp), %eax + movl 64+4(%esp), %ebx + movl 64+52(%esp), %ecx + movl 64+36(%esp), %edx + movl %eax, 64+4(%edi) + movl %ebx, 64+20(%edi) + movl %ecx, 64+36(%edi) + movl %edx, 64+52(%edi) + movl 64+0(%esp), %eax + movl 64+24(%esp), %ebx + movl 64+32(%esp), %ecx + movl 64+56(%esp), %edx + movl %eax, 64+0(%edi) + movl %ebx, 64+24(%edi) + movl %ecx, 64+32(%edi) + movl %edx, 64+56(%edi) + + movl %ebp, %esp + popl %esi + popl %edi + popl %ebp + popl %ebx + ret + +#endif diff --git a/src/crypto/scrypt.cpp b/src/crypto/scrypt.cpp new file mode 100644 index 0000000000..682be0de7d --- /dev/null +++ b/src/crypto/scrypt.cpp @@ -0,0 +1,840 @@ +/* + * Copyright 2009 Colin Percival, 2011 ArtForz, 2011-2014 pooler + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file was originally written by Colin Percival as part of the Tarsnap + * online backup system. + */ + +#include "scrypt.h" +#include "compat.h" +#include +#include +#include + +static const uint32_t sha256_h[8] = { + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, + 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 +}; + +void sha256_init(uint32_t *state) +{ + memcpy(state, sha256_h, 32); +} + +#if defined(__i386__) || defined(__aarch64__) + +static const uint32_t sha256_k[64] = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +}; + +/* Elementary functions used by SHA256 */ +#define Ch(x, y, z) ((x & (y ^ z)) ^ z) +#define Maj(x, y, z) ((x & (y | z)) | (y & z)) +#define ROTR(x, n) ((x >> n) | (x << (32 - n))) +#define S0(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22)) +#define S1(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25)) +#define s0(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ (x >> 3)) +#define s1(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ (x >> 10)) + +/* SHA256 round function */ +#define RND(a, b, c, d, e, f, g, h, k) \ + do { \ + t0 = h + S1(e) + Ch(e, f, g) + k; \ + t1 = S0(a) + Maj(a, b, c); \ + d += t0; \ + h = t0 + t1; \ + } while (0) + +/* Adjusted round function for rotating state */ +#define RNDr(S, W, i) \ + RND(S[(64 - i) % 8], S[(65 - i) % 8], \ + S[(66 - i) % 8], S[(67 - i) % 8], \ + S[(68 - i) % 8], S[(69 - i) % 8], \ + S[(70 - i) % 8], S[(71 - i) % 8], \ + W[i] + sha256_k[i]) + +/* + * SHA256 block compression function. The 256-bit state is transformed via + * the 512-bit input block to produce a new state. + */ +void sha256_transform(uint32_t *state, const uint32_t *block, int swap) +{ + uint32_t W[64]; + uint32_t S[8]; + uint32_t t0, t1; + int i; + + /* 1. Prepare message schedule W. */ + if (swap) { + for (i = 0; i < 16; i++) + W[i] = swab32(block[i]); + } else + memcpy(W, block, 64); + for (i = 16; i < 64; i += 2) { + W[i] = s1(W[i - 2]) + W[i - 7] + s0(W[i - 15]) + W[i - 16]; + W[i+1] = s1(W[i - 1]) + W[i - 6] + s0(W[i - 14]) + W[i - 15]; + } + + /* 2. Initialize working variables. */ + memcpy(S, state, 32); + + /* 3. Mix. */ + RNDr(S, W, 0); + RNDr(S, W, 1); + RNDr(S, W, 2); + RNDr(S, W, 3); + RNDr(S, W, 4); + RNDr(S, W, 5); + RNDr(S, W, 6); + RNDr(S, W, 7); + RNDr(S, W, 8); + RNDr(S, W, 9); + RNDr(S, W, 10); + RNDr(S, W, 11); + RNDr(S, W, 12); + RNDr(S, W, 13); + RNDr(S, W, 14); + RNDr(S, W, 15); + RNDr(S, W, 16); + RNDr(S, W, 17); + RNDr(S, W, 18); + RNDr(S, W, 19); + RNDr(S, W, 20); + RNDr(S, W, 21); + RNDr(S, W, 22); + RNDr(S, W, 23); + RNDr(S, W, 24); + RNDr(S, W, 25); + RNDr(S, W, 26); + RNDr(S, W, 27); + RNDr(S, W, 28); + RNDr(S, W, 29); + RNDr(S, W, 30); + RNDr(S, W, 31); + RNDr(S, W, 32); + RNDr(S, W, 33); + RNDr(S, W, 34); + RNDr(S, W, 35); + RNDr(S, W, 36); + RNDr(S, W, 37); + RNDr(S, W, 38); + RNDr(S, W, 39); + RNDr(S, W, 40); + RNDr(S, W, 41); + RNDr(S, W, 42); + RNDr(S, W, 43); + RNDr(S, W, 44); + RNDr(S, W, 45); + RNDr(S, W, 46); + RNDr(S, W, 47); + RNDr(S, W, 48); + RNDr(S, W, 49); + RNDr(S, W, 50); + RNDr(S, W, 51); + RNDr(S, W, 52); + RNDr(S, W, 53); + RNDr(S, W, 54); + RNDr(S, W, 55); + RNDr(S, W, 56); + RNDr(S, W, 57); + RNDr(S, W, 58); + RNDr(S, W, 59); + RNDr(S, W, 60); + RNDr(S, W, 61); + RNDr(S, W, 62); + RNDr(S, W, 63); + + /* 4. Mix local working variables into global state */ + for (i = 0; i < 8; i++) + state[i] += S[i]; +} +#endif + +static const uint32_t keypad[12] = { + 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000280 +}; +static const uint32_t innerpad[11] = { + 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000004a0 +}; +static const uint32_t outerpad[8] = { + 0x80000000, 0, 0, 0, 0, 0, 0, 0x00000300 +}; +static const uint32_t finalblk[16] = { + 0x00000001, 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000620 +}; + + +#ifndef __FreeBSD__ +static inline void be32enc(void *pp, uint32_t x) +{ + uint8_t *p = (uint8_t *)pp; + p[3] = x & 0xff; + p[2] = (x >> 8) & 0xff; + p[1] = (x >> 16) & 0xff; + p[0] = (x >> 24) & 0xff; +} + +static inline uint32_t be32dec(const void *pp) +{ + const uint8_t *p = (uint8_t const *)pp; + return ((uint32_t)(p[3]) + ((uint32_t)(p[2]) << 8) + + ((uint32_t)(p[1]) << 16) + ((uint32_t)(p[0]) << 24)); +} +#endif + +static inline void HMAC_SHA256_80_init(const uint32_t *key, + uint32_t *tstate, uint32_t *ostate) +{ + uint32_t ihash[8]; + uint32_t pad[16]; + int i; + + /* tstate is assumed to contain the midstate of key */ + memcpy(pad, key + 16, 16); + memcpy(pad + 4, keypad, 48); + sha256_transform(tstate, pad, 0); + memcpy(ihash, tstate, 32); + + sha256_init(ostate); + for (i = 0; i < 8; i++) + pad[i] = ihash[i] ^ 0x5c5c5c5c; + for (; i < 16; i++) + pad[i] = 0x5c5c5c5c; + sha256_transform(ostate, pad, 0); + + sha256_init(tstate); + for (i = 0; i < 8; i++) + pad[i] = ihash[i] ^ 0x36363636; + for (; i < 16; i++) + pad[i] = 0x36363636; + sha256_transform(tstate, pad, 0); +} + +static inline void PBKDF2_SHA256_80_128(const uint32_t *tstate, + const uint32_t *ostate, const uint32_t *salt, uint32_t *output) +{ + uint32_t istate[8], ostate2[8]; + uint32_t ibuf[16], obuf[16]; + int i, j; + + memcpy(istate, tstate, 32); + sha256_transform(istate, salt, 0); + + memcpy(ibuf, salt + 16, 16); + memcpy(ibuf + 5, innerpad, 44); + memcpy(obuf + 8, outerpad, 32); + + for (i = 0; i < 4; i++) { + memcpy(obuf, istate, 32); + ibuf[4] = i + 1; + sha256_transform(obuf, ibuf, 0); + + memcpy(ostate2, ostate, 32); + sha256_transform(ostate2, obuf, 0); + for (j = 0; j < 8; j++) + output[8 * i + j] = swab32(ostate2[j]); + } +} + +static inline void PBKDF2_SHA256_128_32(uint32_t *tstate, uint32_t *ostate, + const uint32_t *salt, uint32_t *output) +{ + uint32_t buf[16]; + int i; + + sha256_transform(tstate, salt, 1); + sha256_transform(tstate, salt + 16, 1); + sha256_transform(tstate, finalblk, 0); + memcpy(buf, tstate, 32); + memcpy(buf + 8, outerpad, 32); + + sha256_transform(ostate, buf, 0); + for (i = 0; i < 8; i++) + output[i] = swab32(ostate[i]); +} + + +#ifdef HAVE_SHA256_4WAY + +static const uint32_t keypad_4way[4 * 12] = { + 0x80000000, 0x80000000, 0x80000000, 0x80000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000280, 0x00000280, 0x00000280, 0x00000280 +}; +static const uint32_t innerpad_4way[4 * 11] = { + 0x80000000, 0x80000000, 0x80000000, 0x80000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x000004a0, 0x000004a0, 0x000004a0, 0x000004a0 +}; +static const uint32_t outerpad_4way[4 * 8] = { + 0x80000000, 0x80000000, 0x80000000, 0x80000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000300, 0x00000300, 0x00000300, 0x00000300 +}; +static const uint32_t finalblk_4way[4 * 16] __attribute__((aligned(16))) = { + 0x00000001, 0x00000001, 0x00000001, 0x00000001, + 0x80000000, 0x80000000, 0x80000000, 0x80000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000620, 0x00000620, 0x00000620, 0x00000620 +}; + +static inline void HMAC_SHA256_80_init_4way(const uint32_t *key, + uint32_t *tstate, uint32_t *ostate) +{ + uint32_t ihash[4 * 8] __attribute__((aligned(16))); + uint32_t pad[4 * 16] __attribute__((aligned(16))); + int i; + + /* tstate is assumed to contain the midstate of key */ + memcpy(pad, key + 4 * 16, 4 * 16); + memcpy(pad + 4 * 4, keypad_4way, 4 * 48); + sha256_transform_4way(tstate, pad, 0); + memcpy(ihash, tstate, 4 * 32); + + sha256_init_4way(ostate); + for (i = 0; i < 4 * 8; i++) + pad[i] = ihash[i] ^ 0x5c5c5c5c; + for (; i < 4 * 16; i++) + pad[i] = 0x5c5c5c5c; + sha256_transform_4way(ostate, pad, 0); + + sha256_init_4way(tstate); + for (i = 0; i < 4 * 8; i++) + pad[i] = ihash[i] ^ 0x36363636; + for (; i < 4 * 16; i++) + pad[i] = 0x36363636; + sha256_transform_4way(tstate, pad, 0); +} + +static inline void PBKDF2_SHA256_80_128_4way(const uint32_t *tstate, + const uint32_t *ostate, const uint32_t *salt, uint32_t *output) +{ + uint32_t istate[4 * 8] __attribute__((aligned(16))); + uint32_t ostate2[4 * 8] __attribute__((aligned(16))); + uint32_t ibuf[4 * 16] __attribute__((aligned(16))); + uint32_t obuf[4 * 16] __attribute__((aligned(16))); + int i, j; + + memcpy(istate, tstate, 4 * 32); + sha256_transform_4way(istate, salt, 0); + + memcpy(ibuf, salt + 4 * 16, 4 * 16); + memcpy(ibuf + 4 * 5, innerpad_4way, 4 * 44); + memcpy(obuf + 4 * 8, outerpad_4way, 4 * 32); + + for (i = 0; i < 4; i++) { + memcpy(obuf, istate, 4 * 32); + ibuf[4 * 4 + 0] = i + 1; + ibuf[4 * 4 + 1] = i + 1; + ibuf[4 * 4 + 2] = i + 1; + ibuf[4 * 4 + 3] = i + 1; + sha256_transform_4way(obuf, ibuf, 0); + + memcpy(ostate2, ostate, 4 * 32); + sha256_transform_4way(ostate2, obuf, 0); + for (j = 0; j < 4 * 8; j++) + output[4 * 8 * i + j] = swab32(ostate2[j]); + } +} + +static inline void PBKDF2_SHA256_128_32_4way(uint32_t *tstate, + uint32_t *ostate, const uint32_t *salt, uint32_t *output) +{ + uint32_t buf[4 * 16] __attribute__((aligned(16))); + int i; + + sha256_transform_4way(tstate, salt, 1); + sha256_transform_4way(tstate, salt + 4 * 16, 1); + sha256_transform_4way(tstate, finalblk_4way, 0); + memcpy(buf, tstate, 4 * 32); + memcpy(buf + 4 * 8, outerpad_4way, 4 * 32); + + sha256_transform_4way(ostate, buf, 0); + for (i = 0; i < 4 * 8; i++) + output[i] = swab32(ostate[i]); +} + +#endif /* HAVE_SHA256_4WAY */ + + +#ifdef HAVE_SHA256_8WAY + +static const uint32_t finalblk_8way[8 * 16] __attribute__((aligned(32))) = { + 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, + 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000620, 0x00000620, 0x00000620, 0x00000620, 0x00000620, 0x00000620, 0x00000620, 0x00000620 +}; + +static inline void HMAC_SHA256_80_init_8way(const uint32_t *key, + uint32_t *tstate, uint32_t *ostate) +{ + uint32_t ihash[8 * 8] __attribute__((aligned(32))); + uint32_t pad[8 * 16] __attribute__((aligned(32))); + int i; + + /* tstate is assumed to contain the midstate of key */ + memcpy(pad, key + 8 * 16, 8 * 16); + for (i = 0; i < 8; i++) + pad[8 * 4 + i] = 0x80000000; + memset(pad + 8 * 5, 0x00, 8 * 40); + for (i = 0; i < 8; i++) + pad[8 * 15 + i] = 0x00000280; + sha256_transform_8way(tstate, pad, 0); + memcpy(ihash, tstate, 8 * 32); + + sha256_init_8way(ostate); + for (i = 0; i < 8 * 8; i++) + pad[i] = ihash[i] ^ 0x5c5c5c5c; + for (; i < 8 * 16; i++) + pad[i] = 0x5c5c5c5c; + sha256_transform_8way(ostate, pad, 0); + + sha256_init_8way(tstate); + for (i = 0; i < 8 * 8; i++) + pad[i] = ihash[i] ^ 0x36363636; + for (; i < 8 * 16; i++) + pad[i] = 0x36363636; + sha256_transform_8way(tstate, pad, 0); +} + +static inline void PBKDF2_SHA256_80_128_8way(const uint32_t *tstate, + const uint32_t *ostate, const uint32_t *salt, uint32_t *output) +{ + uint32_t istate[8 * 8] __attribute__((aligned(32))); + uint32_t ostate2[8 * 8] __attribute__((aligned(32))); + uint32_t ibuf[8 * 16] __attribute__((aligned(32))); + uint32_t obuf[8 * 16] __attribute__((aligned(32))); + int i, j; + + memcpy(istate, tstate, 8 * 32); + sha256_transform_8way(istate, salt, 0); + + memcpy(ibuf, salt + 8 * 16, 8 * 16); + for (i = 0; i < 8; i++) + ibuf[8 * 5 + i] = 0x80000000; + memset(ibuf + 8 * 6, 0x00, 8 * 36); + for (i = 0; i < 8; i++) + ibuf[8 * 15 + i] = 0x000004a0; + + for (i = 0; i < 8; i++) + obuf[8 * 8 + i] = 0x80000000; + memset(obuf + 8 * 9, 0x00, 8 * 24); + for (i = 0; i < 8; i++) + obuf[8 * 15 + i] = 0x00000300; + + for (i = 0; i < 4; i++) { + memcpy(obuf, istate, 8 * 32); + ibuf[8 * 4 + 0] = i + 1; + ibuf[8 * 4 + 1] = i + 1; + ibuf[8 * 4 + 2] = i + 1; + ibuf[8 * 4 + 3] = i + 1; + ibuf[8 * 4 + 4] = i + 1; + ibuf[8 * 4 + 5] = i + 1; + ibuf[8 * 4 + 6] = i + 1; + ibuf[8 * 4 + 7] = i + 1; + sha256_transform_8way(obuf, ibuf, 0); + + memcpy(ostate2, ostate, 8 * 32); + sha256_transform_8way(ostate2, obuf, 0); + for (j = 0; j < 8 * 8; j++) + output[8 * 8 * i + j] = swab32(ostate2[j]); + } +} + +static inline void PBKDF2_SHA256_128_32_8way(uint32_t *tstate, + uint32_t *ostate, const uint32_t *salt, uint32_t *output) +{ + uint32_t buf[8 * 16] __attribute__((aligned(32))); + int i; + + sha256_transform_8way(tstate, salt, 1); + sha256_transform_8way(tstate, salt + 8 * 16, 1); + sha256_transform_8way(tstate, finalblk_8way, 0); + + memcpy(buf, tstate, 8 * 32); + for (i = 0; i < 8; i++) + buf[8 * 8 + i] = 0x80000000; + memset(buf + 8 * 9, 0x00, 8 * 24); + for (i = 0; i < 8; i++) + buf[8 * 15 + i] = 0x00000300; + sha256_transform_8way(ostate, buf, 0); + + for (i = 0; i < 8 * 8; i++) + output[i] = swab32(ostate[i]); +} + +#endif /* HAVE_SHA256_8WAY */ + +#ifndef SCRYPT_MAX_WAYS +#define SCRYPT_MAX_WAYS 1 +#define scrypt_best_throughput() 1 +#endif + +unsigned char *scrypt_buffer_alloc() +{ + return (unsigned char*)malloc((size_t)N * SCRYPT_MAX_WAYS * 128 + 63); +} + +static void scrypt_N_1_1_256(const uint32_t *input, uint32_t *output, uint32_t *midstate, unsigned char *scratchpad) +{ + uint32_t tstate[8], ostate[8]; + uint32_t X[32] __attribute__((aligned(128))); + uint32_t *V; + + V = (uint32_t *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63)); + + memcpy(tstate, midstate, 32); + HMAC_SHA256_80_init(input, tstate, ostate); + PBKDF2_SHA256_80_128(tstate, ostate, input, X); + + scrypt_core(X, V, N); + + PBKDF2_SHA256_128_32(tstate, ostate, X, output); +} + +#ifdef HAVE_SHA256_4WAY +static void scrypt_N_1_1_256_4way(const uint32_t *input, + uint32_t *output, uint32_t *midstate, unsigned char *scratchpad, int N) +{ + uint32_t tstate[4 * 8] __attribute__((aligned(128))); + uint32_t ostate[4 * 8] __attribute__((aligned(128))); + uint32_t W[4 * 32] __attribute__((aligned(128))); + uint32_t X[4 * 32] __attribute__((aligned(128))); + uint32_t *V; + int i, k; + + V = (uint32_t *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63)); + + for (i = 0; i < 20; i++) + for (k = 0; k < 4; k++) + W[4 * i + k] = input[k * 20 + i]; + for (i = 0; i < 8; i++) + for (k = 0; k < 4; k++) + tstate[4 * i + k] = midstate[i]; + HMAC_SHA256_80_init_4way(W, tstate, ostate); + PBKDF2_SHA256_80_128_4way(tstate, ostate, W, W); + for (i = 0; i < 32; i++) + for (k = 0; k < 4; k++) + X[k * 32 + i] = W[4 * i + k]; + scrypt_core(X + 0 * 32, V, N); + scrypt_core(X + 1 * 32, V, N); + scrypt_core(X + 2 * 32, V, N); + scrypt_core(X + 3 * 32, V, N); + for (i = 0; i < 32; i++) + for (k = 0; k < 4; k++) + W[4 * i + k] = X[k * 32 + i]; + PBKDF2_SHA256_128_32_4way(tstate, ostate, W, W); + for (i = 0; i < 8; i++) + for (k = 0; k < 4; k++) + output[k * 8 + i] = W[4 * i + k]; +} +#endif /* HAVE_SHA256_4WAY */ + +#ifdef HAVE_SCRYPT_3WAY + +static void scrypt_N_1_1_256_3way(const uint32_t *input, + uint32_t *output, uint32_t *midstate, unsigned char *scratchpad, int N) +{ + uint32_t tstate[3 * 8], ostate[3 * 8]; + uint32_t X[3 * 32] __attribute__((aligned(64))); + uint32_t *V; + + V = (uint32_t *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63)); + + memcpy(tstate + 0, midstate, 32); + memcpy(tstate + 8, midstate, 32); + memcpy(tstate + 16, midstate, 32); + HMAC_SHA256_80_init(input + 0, tstate + 0, ostate + 0); + HMAC_SHA256_80_init(input + 20, tstate + 8, ostate + 8); + HMAC_SHA256_80_init(input + 40, tstate + 16, ostate + 16); + PBKDF2_SHA256_80_128(tstate + 0, ostate + 0, input + 0, X + 0); + PBKDF2_SHA256_80_128(tstate + 8, ostate + 8, input + 20, X + 32); + PBKDF2_SHA256_80_128(tstate + 16, ostate + 16, input + 40, X + 64); + + scrypt_core_3way(X, V, N); + + PBKDF2_SHA256_128_32(tstate + 0, ostate + 0, X + 0, output + 0); + PBKDF2_SHA256_128_32(tstate + 8, ostate + 8, X + 32, output + 8); + PBKDF2_SHA256_128_32(tstate + 16, ostate + 16, X + 64, output + 16); +} + +#ifdef HAVE_SHA256_4WAY +static void scrypt_N_1_1_256_12way(const uint32_t *input, + uint32_t *output, uint32_t *midstate, unsigned char *scratchpad, int N) +{ + uint32_t tstate[12 * 8] __attribute__((aligned(128))); + uint32_t ostate[12 * 8] __attribute__((aligned(128))); + uint32_t W[12 * 32] __attribute__((aligned(128))); + uint32_t X[12 * 32] __attribute__((aligned(128))); + uint32_t *V; + int i, j, k; + + V = (uint32_t *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63)); + + for (j = 0; j < 3; j++) + for (i = 0; i < 20; i++) + for (k = 0; k < 4; k++) + W[128 * j + 4 * i + k] = input[80 * j + k * 20 + i]; + for (j = 0; j < 3; j++) + for (i = 0; i < 8; i++) + for (k = 0; k < 4; k++) + tstate[32 * j + 4 * i + k] = midstate[i]; + HMAC_SHA256_80_init_4way(W + 0, tstate + 0, ostate + 0); + HMAC_SHA256_80_init_4way(W + 128, tstate + 32, ostate + 32); + HMAC_SHA256_80_init_4way(W + 256, tstate + 64, ostate + 64); + PBKDF2_SHA256_80_128_4way(tstate + 0, ostate + 0, W + 0, W + 0); + PBKDF2_SHA256_80_128_4way(tstate + 32, ostate + 32, W + 128, W + 128); + PBKDF2_SHA256_80_128_4way(tstate + 64, ostate + 64, W + 256, W + 256); + for (j = 0; j < 3; j++) + for (i = 0; i < 32; i++) + for (k = 0; k < 4; k++) + X[128 * j + k * 32 + i] = W[128 * j + 4 * i + k]; + scrypt_core_3way(X + 0 * 96, V, N); + scrypt_core_3way(X + 1 * 96, V, N); + scrypt_core_3way(X + 2 * 96, V, N); + scrypt_core_3way(X + 3 * 96, V, N); + for (j = 0; j < 3; j++) + for (i = 0; i < 32; i++) + for (k = 0; k < 4; k++) + W[128 * j + 4 * i + k] = X[128 * j + k * 32 + i]; + PBKDF2_SHA256_128_32_4way(tstate + 0, ostate + 0, W + 0, W + 0); + PBKDF2_SHA256_128_32_4way(tstate + 32, ostate + 32, W + 128, W + 128); + PBKDF2_SHA256_128_32_4way(tstate + 64, ostate + 64, W + 256, W + 256); + for (j = 0; j < 3; j++) + for (i = 0; i < 8; i++) + for (k = 0; k < 4; k++) + output[32 * j + k * 8 + i] = W[128 * j + 4 * i + k]; +} +#endif /* HAVE_SHA256_4WAY */ + +#endif /* HAVE_SCRYPT_3WAY */ + +#ifdef HAVE_SCRYPT_6WAY +static void scrypt_N_1_1_256_24way(const uint32_t *input, + uint32_t *output, uint32_t *midstate, unsigned char *scratchpad, int N) +{ + uint32_t tstate[24 * 8] __attribute__((aligned(128))); + uint32_t ostate[24 * 8] __attribute__((aligned(128))); + uint32_t W[24 * 32] __attribute__((aligned(128))); + uint32_t X[24 * 32] __attribute__((aligned(128))); + uint32_t *V; + int i, j, k; + + V = (uint32_t *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63)); + + for (j = 0; j < 3; j++) + for (i = 0; i < 20; i++) + for (k = 0; k < 8; k++) + W[8 * 32 * j + 8 * i + k] = input[8 * 20 * j + k * 20 + i]; + for (j = 0; j < 3; j++) + for (i = 0; i < 8; i++) + for (k = 0; k < 8; k++) + tstate[8 * 8 * j + 8 * i + k] = midstate[i]; + HMAC_SHA256_80_init_8way(W + 0, tstate + 0, ostate + 0); + HMAC_SHA256_80_init_8way(W + 256, tstate + 64, ostate + 64); + HMAC_SHA256_80_init_8way(W + 512, tstate + 128, ostate + 128); + PBKDF2_SHA256_80_128_8way(tstate + 0, ostate + 0, W + 0, W + 0); + PBKDF2_SHA256_80_128_8way(tstate + 64, ostate + 64, W + 256, W + 256); + PBKDF2_SHA256_80_128_8way(tstate + 128, ostate + 128, W + 512, W + 512); + for (j = 0; j < 3; j++) + for (i = 0; i < 32; i++) + for (k = 0; k < 8; k++) + X[8 * 32 * j + k * 32 + i] = W[8 * 32 * j + 8 * i + k]; + scrypt_core_6way(X + 0 * 32, V, N); + scrypt_core_6way(X + 6 * 32, V, N); + scrypt_core_6way(X + 12 * 32, V, N); + scrypt_core_6way(X + 18 * 32, V, N); + for (j = 0; j < 3; j++) + for (i = 0; i < 32; i++) + for (k = 0; k < 8; k++) + W[8 * 32 * j + 8 * i + k] = X[8 * 32 * j + k * 32 + i]; + PBKDF2_SHA256_128_32_8way(tstate + 0, ostate + 0, W + 0, W + 0); + PBKDF2_SHA256_128_32_8way(tstate + 64, ostate + 64, W + 256, W + 256); + PBKDF2_SHA256_128_32_8way(tstate + 128, ostate + 128, W + 512, W + 512); + for (j = 0; j < 3; j++) + for (i = 0; i < 8; i++) + for (k = 0; k < 8; k++) + output[8 * 8 * j + k * 8 + i] = W[8 * 32 * j + 8 * i + k]; +} +#endif /* HAVE_SCRYPT_6WAY */ + +bool fulltest(const uint32_t *hash, const uint32_t *target) +{ + int i; + for (i = 7; i >= 0; i--) { + if (hash[i] > target[i]) { + return false; + } + if (hash[i] < target[i]) { + return true; + } + } + + return true; +} + +bool scrypt_N_1_1_256_multi(void *input, uint256 hashTarget, int *nHashesDone, unsigned char *scratchbuf) +{ + uint32_t pdata[20]; + uint32_t data[SCRYPT_MAX_WAYS * 20]; + uint32_t dhash[SCRYPT_MAX_WAYS * 8]; + uint32_t midstate[8]; + uint32_t n; + int throughput = scrypt_best_throughput(); + int i; + + for (int i = 0; i < 20; i++) + pdata[i] = be32dec(&((const uint32_t *)input)[i]); + n = pdata[19]; + +#ifdef HAVE_SHA256_4WAY + if (sha256_use_4way()) + throughput *= 4; +#endif + + for (i = 0; i < throughput; i++) + memcpy(data + i * 20, pdata, 80); + + sha256_init(midstate); + sha256_transform(midstate, data, 0); + + for (i = 1; i < throughput; i++) + data[i * 20 + 19] = ++n; + +#if defined(HAVE_SHA256_4WAY) + if (throughput == 4) + scrypt_N_1_1_256_4way(data, dhash, midstate, scratchbuf, N); + else +#endif +#if defined(HAVE_SCRYPT_3WAY) && defined(HAVE_SHA256_4WAY) + if (throughput == 12) + scrypt_N_1_1_256_12way(data, dhash, midstate, scratchbuf, N); + else +#endif +#if defined(HAVE_SCRYPT_6WAY) + if (throughput == 24) + scrypt_N_1_1_256_24way(data, dhash, midstate, scratchbuf, N); + else +#endif +#if defined(HAVE_SCRYPT_3WAY) + if (throughput == 3) + scrypt_N_1_1_256_3way(data, dhash, midstate, scratchbuf, N); + else +#endif + scrypt_N_1_1_256(data, dhash, midstate, scratchbuf); + + *nHashesDone = throughput; + + for (i = 0; i < throughput; i++) { + if (fulltest(dhash + i * 8, (uint32_t*)(BEGIN(hashTarget)))) { + be32enc(&((uint32_t *)input)[19], data[i * 20 + 19]); + return true; + } + } + return false; +} + +void scryptHash(const void *input, char *output) +{ + uint32_t midstate[8]; + uint32_t data[20]; + unsigned char *scratchbuf = scrypt_buffer_alloc(); + + memset(output, 0, 32); + if (!scratchbuf) + return; + + for (int i = 0; i < 20; i++) + data[i] = be32dec(&((const uint32_t *)input)[i]); + + sha256_init(midstate); + sha256_transform(midstate, data, 0); + + scrypt_N_1_1_256(data, (uint32_t*)output, midstate, scratchbuf); + + free(scratchbuf); +} diff --git a/src/crypto/scrypt.h b/src/crypto/scrypt.h new file mode 100644 index 0000000000..11bdbabff4 --- /dev/null +++ b/src/crypto/scrypt.h @@ -0,0 +1,92 @@ +#ifndef SCRYPT_H +#define SCRYPT_H + +#include "uint256.h" +#include "compat/byteswap.h" +#include "util/strencodings.h" +#include +#include +#include +#include + + +static const int SCRYPT_SCRATCHPAD_SIZE = 134218239; +static const int N = 1048576; + +int scrypt_best_throughput(); + +bool scrypt_N_1_1_256_multi(void* input, uint256 hashTarget, int* nHashesDone, unsigned char* scratchbuf); + +void scryptHash(const void* input, char* output); +extern unsigned char* scrypt_buffer_alloc(); +extern "C" void scrypt_core(uint32_t* X, uint32_t* V, int N); +extern "C" void sha256_transform(uint32_t* state, const uint32_t* block, int swap); + +#if defined(__x86_64__) && !defined(USE_AVX2) + +#define SCRYPT_MAX_WAYS 12 +#define HAVE_SCRYPT_3WAY 1 +#define HAVE_SHA256_4WAY 1 +#define scrypt_best_throughput() 3; +extern "C" int sha256_use_4way(); +extern "C" void sha256_init_4way(uint32_t* state); +extern "C" void sha256_transform_4way(uint32_t* state, const uint32_t* block, int swap); +extern "C" void scrypt_core_3way(uint32_t* X, uint32_t* V, int N); + +#elif defined(__x86_64__) && defined(USE_AVX2) + +#define SCRYPT_MAX_WAYS 24 +#define HAVE_SCRYPT_6WAY 1 +#define HAVE_SHA256_4WAY 1 +#define HAVE_SHA256_8WAY 1 +#define scrypt_best_throughput() 6; +extern "C" int sha256_use_8way(); +extern "C" void sha256_init_8way(uint32_t* state); +extern "C" void sha256_transform_8way(uint32_t* state, const uint32_t* block, int swap); +extern "C" int sha256_use_4way(); +extern "C" void sha256_init_4way(uint32_t* state); +extern "C" void sha256_transform_4way(uint32_t* state, const uint32_t* block, int swap); +extern "C" void scrypt_core_6way(uint32_t* X, uint32_t* V, int N); + +#elif defined(__i386__) + +#define SCRYPT_MAX_WAYS 4 +#define HAVE_SHA256_4WAY 1 +#define scrypt_best_throughput() 1 +extern "C" void scrypt_core(uint32_t* X, uint32_t* V, int N); +extern "C" int sha256_use_4way(); +extern "C" void sha256_init_4way(uint32_t* state); +extern "C" void sha256_transform_4way(uint32_t* state, const uint32_t* block, int swap); + +#elif defined(__arm__) && defined(__APCS_32__) + +extern "C" void scrypt_core(uint32_t* X, uint32_t* V, int N); + +#if defined(__ARM_NEON) +#undef HAVE_SHA256_4WAY +#define SCRYPT_MAX_WAYS 3 +#define HAVE_SCRYPT_3WAY 1 +#define scrypt_best_throughput() 3 +void scrypt_core_3way(uint32_t *X, uint32_t *V, int N); +#endif + +#elif defined(__aarch64__) + +#include + +#undef HAVE_SHA256_4WAY +#define SCRYPT_MAX_WAYS 3 +#define HAVE_SCRYPT_3WAY 1 +#define scrypt_best_throughput() 3 +extern "C" void sha256_init(uint32_t *state); +extern "C" void sha256_transform(uint32_t* state, const uint32_t* block, int swap); +extern "C" void scrypt_core(uint32_t* X, uint32_t* V, int N); +extern "C" void scrypt_core_3way(uint32_t B[32 * 3], uint32_t *V, uint32_t N); + +#endif + +static inline uint32_t swab32(uint32_t v) +{ + return bswap_32(v); +} +#endif diff --git a/src/crypto/sha2-arm.S b/src/crypto/sha2-arm.S new file mode 100644 index 0000000000..4a87269cd8 --- /dev/null +++ b/src/crypto/sha2-arm.S @@ -0,0 +1,11926 @@ +/* + * Copyright 2012 pooler@litecoinpool.org + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. See COPYING for more details. + */ + + +#if defined(__arm__) && defined(__APCS_32__) + + + + + + + + + + .text + .code 32 + .align 2 + .globl sha256_transform + .globl _sha256_transform +#ifdef __ELF__ + .type sha256_transform, %function +#endif +sha256_transform: +_sha256_transform: + stmfd sp!, {r4-r11, lr} + cmp r2, #0 + sub sp, sp, #64*4 + bne sha256_transform_swap + + ldmia r1!, {r4-r11} + stmia sp, {r4-r11} + add r3, sp, #8*4 + ldmia r1, {r4-r11} + stmia r3, {r4-r11} + b sha256_transform_extend + + +sha256_transform_swap: + ldmia r1!, {r4-r11} + eor r12, r4, r4, ror #16 + bic r12, r12, #0x00ff0000 + mov r4, r4, ror #8 + eor r4, r4, r12, lsr #8 + eor r12, r5, r5, ror #16 + bic r12, r12, #0x00ff0000 + mov r5, r5, ror #8 + eor r5, r5, r12, lsr #8 + eor r12, r6, r6, ror #16 + bic r12, r12, #0x00ff0000 + mov r6, r6, ror #8 + eor r6, r6, r12, lsr #8 + eor r12, r7, r7, ror #16 + bic r12, r12, #0x00ff0000 + mov r7, r7, ror #8 + eor r7, r7, r12, lsr #8 + eor r12, r8, r8, ror #16 + bic r12, r12, #0x00ff0000 + mov r8, r8, ror #8 + eor r8, r8, r12, lsr #8 + eor r12, r9, r9, ror #16 + bic r12, r12, #0x00ff0000 + mov r9, r9, ror #8 + eor r9, r9, r12, lsr #8 + eor r12, r10, r10, ror #16 + bic r12, r12, #0x00ff0000 + mov r10, r10, ror #8 + eor r10, r10, r12, lsr #8 + eor r12, r11, r11, ror #16 + bic r12, r12, #0x00ff0000 + mov r11, r11, ror #8 + eor r11, r11, r12, lsr #8 + stmia sp, {r4-r11} + add r3, sp, #8*4 + ldmia r1, {r4-r11} + eor r12, r4, r4, ror #16 + bic r12, r12, #0x00ff0000 + mov r4, r4, ror #8 + eor r4, r4, r12, lsr #8 + eor r12, r5, r5, ror #16 + bic r12, r12, #0x00ff0000 + mov r5, r5, ror #8 + eor r5, r5, r12, lsr #8 + eor r12, r6, r6, ror #16 + bic r12, r12, #0x00ff0000 + mov r6, r6, ror #8 + eor r6, r6, r12, lsr #8 + eor r12, r7, r7, ror #16 + bic r12, r12, #0x00ff0000 + mov r7, r7, ror #8 + eor r7, r7, r12, lsr #8 + eor r12, r8, r8, ror #16 + bic r12, r12, #0x00ff0000 + mov r8, r8, ror #8 + eor r8, r8, r12, lsr #8 + eor r12, r9, r9, ror #16 + bic r12, r12, #0x00ff0000 + mov r9, r9, ror #8 + eor r9, r9, r12, lsr #8 + eor r12, r10, r10, ror #16 + bic r12, r12, #0x00ff0000 + mov r10, r10, ror #8 + eor r10, r10, r12, lsr #8 + eor r12, r11, r11, ror #16 + bic r12, r12, #0x00ff0000 + mov r11, r11, ror #8 + eor r11, r11, r12, lsr #8 + stmia r3, {r4-r11} + +sha256_transform_extend: + add r12, sp, #9*4 + ldr r11, [sp, #0*4] + ldmia r12, {r4-r10} + ldr lr, [sp, #(0+1)*4] + mov r12, r9, ror #17 + add r11, r11, r4 + eor r12, r12, r9, ror #19 + mov r4, lr, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(0+2)*4] + eor r4, r4, lr, lsr #3 + add r4, r4, r12 + + mov r12, r10, ror #17 + str r4, [sp, #(0+16)*4] + add lr, lr, r5 + eor r12, r12, r10, ror #19 + mov r5, r11, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, r11, ror #18 + add lr, lr, r12 + eor r5, r5, r11, lsr #3 + add r5, r5, lr + ldr lr, [sp, #(0+3)*4] + str r5, [sp, #(2+15)*4] + mov r12, r4, ror #17 + add r11, r11, r6 + eor r12, r12, r4, ror #19 + mov r6, lr, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(2+2)*4] + eor r6, r6, lr, lsr #3 + add r6, r6, r12 + + mov r12, r5, ror #17 + str r6, [sp, #(2+16)*4] + add lr, lr, r7 + eor r12, r12, r5, ror #19 + mov r7, r11, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, r11, ror #18 + add lr, lr, r12 + eor r7, r7, r11, lsr #3 + add r7, r7, lr + ldr lr, [sp, #(2+3)*4] + str r7, [sp, #(4+15)*4] + mov r12, r6, ror #17 + add r11, r11, r8 + eor r12, r12, r6, ror #19 + mov r8, lr, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(4+2)*4] + eor r8, r8, lr, lsr #3 + add r8, r8, r12 + + mov r12, r7, ror #17 + str r8, [sp, #(4+16)*4] + add lr, lr, r9 + eor r12, r12, r7, ror #19 + mov r9, r11, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, r11, ror #18 + add lr, lr, r12 + eor r9, r9, r11, lsr #3 + add r9, r9, lr + ldr lr, [sp, #(4+3)*4] + str r9, [sp, #(6+15)*4] + mov r12, r8, ror #17 + add r11, r11, r10 + eor r12, r12, r8, ror #19 + mov r10, lr, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(6+2)*4] + eor r10, r10, lr, lsr #3 + add r10, r10, r12 + + mov r12, r9, ror #17 + str r10, [sp, #(6+16)*4] + add lr, lr, r4 + eor r12, r12, r9, ror #19 + mov r4, r11, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, r11, ror #18 + add lr, lr, r12 + eor r4, r4, r11, lsr #3 + add r4, r4, lr + ldr lr, [sp, #(6+3)*4] + str r4, [sp, #(8+15)*4] + mov r12, r10, ror #17 + add r11, r11, r5 + eor r12, r12, r10, ror #19 + mov r5, lr, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(8+2)*4] + eor r5, r5, lr, lsr #3 + add r5, r5, r12 + + mov r12, r4, ror #17 + str r5, [sp, #(8+16)*4] + add lr, lr, r6 + eor r12, r12, r4, ror #19 + mov r6, r11, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, r11, ror #18 + add lr, lr, r12 + eor r6, r6, r11, lsr #3 + add r6, r6, lr + ldr lr, [sp, #(8+3)*4] + str r6, [sp, #(10+15)*4] + mov r12, r5, ror #17 + add r11, r11, r7 + eor r12, r12, r5, ror #19 + mov r7, lr, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(10+2)*4] + eor r7, r7, lr, lsr #3 + add r7, r7, r12 + + mov r12, r6, ror #17 + str r7, [sp, #(10+16)*4] + add lr, lr, r8 + eor r12, r12, r6, ror #19 + mov r8, r11, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, r11, ror #18 + add lr, lr, r12 + eor r8, r8, r11, lsr #3 + add r8, r8, lr + ldr lr, [sp, #(10+3)*4] + str r8, [sp, #(12+15)*4] + mov r12, r7, ror #17 + add r11, r11, r9 + eor r12, r12, r7, ror #19 + mov r9, lr, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(12+2)*4] + eor r9, r9, lr, lsr #3 + add r9, r9, r12 + + mov r12, r8, ror #17 + str r9, [sp, #(12+16)*4] + add lr, lr, r10 + eor r12, r12, r8, ror #19 + mov r10, r11, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, r11, ror #18 + add lr, lr, r12 + eor r10, r10, r11, lsr #3 + add r10, r10, lr + ldr lr, [sp, #(12+3)*4] + str r10, [sp, #(14+15)*4] + mov r12, r9, ror #17 + add r11, r11, r4 + eor r12, r12, r9, ror #19 + mov r4, lr, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(14+2)*4] + eor r4, r4, lr, lsr #3 + add r4, r4, r12 + + mov r12, r10, ror #17 + str r4, [sp, #(14+16)*4] + add lr, lr, r5 + eor r12, r12, r10, ror #19 + mov r5, r11, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, r11, ror #18 + add lr, lr, r12 + eor r5, r5, r11, lsr #3 + add r5, r5, lr + ldr lr, [sp, #(14+3)*4] + str r5, [sp, #(16+15)*4] + mov r12, r4, ror #17 + add r11, r11, r6 + eor r12, r12, r4, ror #19 + mov r6, lr, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(16+2)*4] + eor r6, r6, lr, lsr #3 + add r6, r6, r12 + + mov r12, r5, ror #17 + str r6, [sp, #(16+16)*4] + add lr, lr, r7 + eor r12, r12, r5, ror #19 + mov r7, r11, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, r11, ror #18 + add lr, lr, r12 + eor r7, r7, r11, lsr #3 + add r7, r7, lr + ldr lr, [sp, #(16+3)*4] + str r7, [sp, #(18+15)*4] + mov r12, r6, ror #17 + add r11, r11, r8 + eor r12, r12, r6, ror #19 + mov r8, lr, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(18+2)*4] + eor r8, r8, lr, lsr #3 + add r8, r8, r12 + + mov r12, r7, ror #17 + str r8, [sp, #(18+16)*4] + add lr, lr, r9 + eor r12, r12, r7, ror #19 + mov r9, r11, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, r11, ror #18 + add lr, lr, r12 + eor r9, r9, r11, lsr #3 + add r9, r9, lr + ldr lr, [sp, #(18+3)*4] + str r9, [sp, #(20+15)*4] + mov r12, r8, ror #17 + add r11, r11, r10 + eor r12, r12, r8, ror #19 + mov r10, lr, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(20+2)*4] + eor r10, r10, lr, lsr #3 + add r10, r10, r12 + + mov r12, r9, ror #17 + str r10, [sp, #(20+16)*4] + add lr, lr, r4 + eor r12, r12, r9, ror #19 + mov r4, r11, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, r11, ror #18 + add lr, lr, r12 + eor r4, r4, r11, lsr #3 + add r4, r4, lr + ldr lr, [sp, #(20+3)*4] + str r4, [sp, #(22+15)*4] + mov r12, r10, ror #17 + add r11, r11, r5 + eor r12, r12, r10, ror #19 + mov r5, lr, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(22+2)*4] + eor r5, r5, lr, lsr #3 + add r5, r5, r12 + + mov r12, r4, ror #17 + str r5, [sp, #(22+16)*4] + add lr, lr, r6 + eor r12, r12, r4, ror #19 + mov r6, r11, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, r11, ror #18 + add lr, lr, r12 + eor r6, r6, r11, lsr #3 + add r6, r6, lr + ldr lr, [sp, #(22+3)*4] + str r6, [sp, #(24+15)*4] + mov r12, r5, ror #17 + add r11, r11, r7 + eor r12, r12, r5, ror #19 + mov r7, lr, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(24+2)*4] + eor r7, r7, lr, lsr #3 + add r7, r7, r12 + + mov r12, r6, ror #17 + str r7, [sp, #(24+16)*4] + add lr, lr, r8 + eor r12, r12, r6, ror #19 + mov r8, r11, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, r11, ror #18 + add lr, lr, r12 + eor r8, r8, r11, lsr #3 + add r8, r8, lr + ldr lr, [sp, #(24+3)*4] + str r8, [sp, #(26+15)*4] + mov r12, r7, ror #17 + add r11, r11, r9 + eor r12, r12, r7, ror #19 + mov r9, lr, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(26+2)*4] + eor r9, r9, lr, lsr #3 + add r9, r9, r12 + + mov r12, r8, ror #17 + str r9, [sp, #(26+16)*4] + add lr, lr, r10 + eor r12, r12, r8, ror #19 + mov r10, r11, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, r11, ror #18 + add lr, lr, r12 + eor r10, r10, r11, lsr #3 + add r10, r10, lr + ldr lr, [sp, #(26+3)*4] + str r10, [sp, #(28+15)*4] + mov r12, r9, ror #17 + add r11, r11, r4 + eor r12, r12, r9, ror #19 + mov r4, lr, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(28+2)*4] + eor r4, r4, lr, lsr #3 + add r4, r4, r12 + + mov r12, r10, ror #17 + str r4, [sp, #(28+16)*4] + add lr, lr, r5 + eor r12, r12, r10, ror #19 + mov r5, r11, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, r11, ror #18 + add lr, lr, r12 + eor r5, r5, r11, lsr #3 + add r5, r5, lr + ldr lr, [sp, #(28+3)*4] + str r5, [sp, #(30+15)*4] + mov r12, r4, ror #17 + add r11, r11, r6 + eor r12, r12, r4, ror #19 + mov r6, lr, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(30+2)*4] + eor r6, r6, lr, lsr #3 + add r6, r6, r12 + + mov r12, r5, ror #17 + str r6, [sp, #(30+16)*4] + add lr, lr, r7 + eor r12, r12, r5, ror #19 + mov r7, r11, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, r11, ror #18 + add lr, lr, r12 + eor r7, r7, r11, lsr #3 + add r7, r7, lr + ldr lr, [sp, #(30+3)*4] + str r7, [sp, #(32+15)*4] + mov r12, r6, ror #17 + add r11, r11, r8 + eor r12, r12, r6, ror #19 + mov r8, lr, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(32+2)*4] + eor r8, r8, lr, lsr #3 + add r8, r8, r12 + + mov r12, r7, ror #17 + str r8, [sp, #(32+16)*4] + add lr, lr, r9 + eor r12, r12, r7, ror #19 + mov r9, r11, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, r11, ror #18 + add lr, lr, r12 + eor r9, r9, r11, lsr #3 + add r9, r9, lr + ldr lr, [sp, #(32+3)*4] + str r9, [sp, #(34+15)*4] + mov r12, r8, ror #17 + add r11, r11, r10 + eor r12, r12, r8, ror #19 + mov r10, lr, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(34+2)*4] + eor r10, r10, lr, lsr #3 + add r10, r10, r12 + + mov r12, r9, ror #17 + str r10, [sp, #(34+16)*4] + add lr, lr, r4 + eor r12, r12, r9, ror #19 + mov r4, r11, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, r11, ror #18 + add lr, lr, r12 + eor r4, r4, r11, lsr #3 + add r4, r4, lr + ldr lr, [sp, #(34+3)*4] + str r4, [sp, #(36+15)*4] + mov r12, r10, ror #17 + add r11, r11, r5 + eor r12, r12, r10, ror #19 + mov r5, lr, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(36+2)*4] + eor r5, r5, lr, lsr #3 + add r5, r5, r12 + + mov r12, r4, ror #17 + str r5, [sp, #(36+16)*4] + add lr, lr, r6 + eor r12, r12, r4, ror #19 + mov r6, r11, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, r11, ror #18 + add lr, lr, r12 + eor r6, r6, r11, lsr #3 + add r6, r6, lr + ldr lr, [sp, #(36+3)*4] + str r6, [sp, #(38+15)*4] + mov r12, r5, ror #17 + add r11, r11, r7 + eor r12, r12, r5, ror #19 + mov r7, lr, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(38+2)*4] + eor r7, r7, lr, lsr #3 + add r7, r7, r12 + + mov r12, r6, ror #17 + str r7, [sp, #(38+16)*4] + add lr, lr, r8 + eor r12, r12, r6, ror #19 + mov r8, r11, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, r11, ror #18 + add lr, lr, r12 + eor r8, r8, r11, lsr #3 + add r8, r8, lr + ldr lr, [sp, #(38+3)*4] + str r8, [sp, #(40+15)*4] + mov r12, r7, ror #17 + add r11, r11, r9 + eor r12, r12, r7, ror #19 + mov r9, lr, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(40+2)*4] + eor r9, r9, lr, lsr #3 + add r9, r9, r12 + + mov r12, r8, ror #17 + str r9, [sp, #(40+16)*4] + add lr, lr, r10 + eor r12, r12, r8, ror #19 + mov r10, r11, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, r11, ror #18 + add lr, lr, r12 + eor r10, r10, r11, lsr #3 + add r10, r10, lr + ldr lr, [sp, #(40+3)*4] + str r10, [sp, #(42+15)*4] + mov r12, r9, ror #17 + add r11, r11, r4 + eor r12, r12, r9, ror #19 + mov r4, lr, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(42+2)*4] + eor r4, r4, lr, lsr #3 + add r4, r4, r12 + + mov r12, r10, ror #17 + str r4, [sp, #(42+16)*4] + add lr, lr, r5 + eor r12, r12, r10, ror #19 + mov r5, r11, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, r11, ror #18 + add lr, lr, r12 + eor r5, r5, r11, lsr #3 + add r5, r5, lr + ldr lr, [sp, #(42+3)*4] + str r5, [sp, #(44+15)*4] + mov r12, r4, ror #17 + add r11, r11, r6 + eor r12, r12, r4, ror #19 + mov r6, lr, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(44+2)*4] + eor r6, r6, lr, lsr #3 + add r6, r6, r12 + + mov r12, r5, ror #17 + str r6, [sp, #(44+16)*4] + add lr, lr, r7 + eor r12, r12, r5, ror #19 + mov r7, r11, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, r11, ror #18 + add lr, lr, r12 + eor r7, r7, r11, lsr #3 + add r7, r7, lr + ldr lr, [sp, #(44+3)*4] + str r7, [sp, #(46+15)*4] + mov r12, r6, ror #17 + add r11, r11, r8 + eor r12, r12, r6, ror #19 + mov r8, lr, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, lr, ror #18 + add r12, r12, r11 + ldr r11, [sp, #(46+2)*4] + eor r8, r8, lr, lsr #3 + add r8, r8, r12 + + mov r12, r7, ror #17 + str r8, [sp, #(46+16)*4] + add lr, lr, r9 + eor r12, r12, r7, ror #19 + mov r9, r11, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, r11, ror #18 + add lr, lr, r12 + eor r9, r9, r11, lsr #3 + add r9, r9, lr + str r9, [sp, #(46+17)*4] + + ldmia r0, {r4-r11} + ldr r12, [sp, #(0+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (0+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(0+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (0+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(0+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (0+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(0+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (0+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(4+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (4+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(4+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (4+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(4+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (4+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(4+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (4+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(8+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (8+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(8+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (8+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(8+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (8+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(8+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (8+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(12+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (12+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(12+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (12+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(12+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (12+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(12+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (12+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(16+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (16+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(16+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (16+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(16+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (16+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(16+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (16+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(20+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (20+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(20+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (20+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(20+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (20+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(20+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (20+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(24+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (24+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(24+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (24+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(24+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (24+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(24+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (24+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(28+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (28+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(28+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (28+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(28+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (28+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(28+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (28+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + b sha256_transform_k_over +sha256_transform_k: + .align 2 + .long 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5 + .long 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5 + .long 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3 + .long 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174 + .long 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc + .long 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da + .long 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7 + .long 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967 + .long 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13 + .long 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85 + .long 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3 + .long 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070 + .long 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5 + .long 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3 + .long 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208 + .long 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +sha256_transform_k_over: + ldr r12, [sp, #(32+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (32+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(32+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (32+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(32+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (32+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(32+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (32+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(36+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (36+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(36+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (36+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(36+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (36+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(36+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (36+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(40+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (40+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(40+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (40+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(40+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (40+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(40+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (40+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(44+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (44+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(44+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (44+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(44+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (44+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(44+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (44+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(48+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (48+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(48+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (48+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(48+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (48+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(48+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (48+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(52+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (52+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(52+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (52+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(52+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (52+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(52+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (52+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(56+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (56+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(56+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (56+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(56+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (56+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(56+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (56+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [sp, #(60+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (60+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [sp, #(60+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (60+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [sp, #(60+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (60+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [sp, #(60+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256_transform_k + (60+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + + ldmia r0, {r1, r2, r3, r12} + add r4, r4, r1 + add r5, r5, r2 + add r6, r6, r3 + add r7, r7, r12 + stmia r0!, {r4-r7} + ldmia r0, {r1, r2, r3, r12} + add r8, r8, r1 + add r9, r9, r2 + add r10, r10, r3 + add r11, r11, r12 + stmia r0, {r8-r11} + + add sp, sp, #64*4 +#ifdef __thumb__ + ldmfd sp!, {r4-r11, lr} + bx lr +#else + ldmfd sp!, {r4-r11, pc} +#endif + + + .text + .code 32 + .align 2 + .globl sha256d_ms + .globl _sha256d_ms +#ifdef __ELF__ + .type sha256d_ms, %function +#endif +sha256d_ms: +_sha256d_ms: + stmfd sp!, {r4-r11, lr} + sub sp, sp, #64*4 + + cmp r0, r0 + + ldr lr, [r1, #3*4] + ldr r6, [r1, #18*4] + ldr r7, [r1, #19*4] + + mov r12, lr, ror #7 + str r6, [sp, #18*4] + eor r12, r12, lr, ror #18 + str r7, [sp, #19*4] + eor r12, r12, lr, lsr #3 + ldr r8, [r1, #20*4] + add r6, r6, r12 + ldr r10, [r1, #22*4] + add r7, r7, lr + str r6, [r1, #18*4] + + mov r12, r6, ror #17 + str r7, [r1, #19*4] + eor r12, r12, r6, ror #19 + str r8, [sp, #20*4] + eor r12, r12, r6, lsr #10 + ldr r4, [r1, #23*4] + add r8, r8, r12 + ldr r5, [r1, #24*4] + + mov r9, r7, ror #17 + str r8, [r1, #20*4] + eor r9, r9, r7, ror #19 + str r10, [sp, #21*4] + eor r9, r9, r7, lsr #10 + str r4, [sp, #22*4] + + mov r12, r8, ror #17 + str r9, [r1, #21*4] + eor r12, r12, r8, ror #19 + str r5, [sp, #23*4] + eor r12, r12, r8, lsr #10 + mov lr, r9, ror #17 + add r10, r10, r12 + ldr r11, [r1, #30*4] + + eor lr, lr, r9, ror #19 + str r10, [r1, #22*4] + eor lr, lr, r9, lsr #10 + str r11, [sp, #24*4] + add r4, r4, lr + + mov r12, r10, ror #17 + str r4, [r1, #23*4] + eor r12, r12, r10, ror #19 + mov lr, r4, ror #17 + eor r12, r12, r10, lsr #10 + eor lr, lr, r4, ror #19 + add r5, r5, r12 + eor lr, lr, r4, lsr #10 + str r5, [r1, #24*4] + add r6, r6, lr + + mov r12, r5, ror #17 + str r6, [r1, #25*4] + eor r12, r12, r5, ror #19 + mov lr, r6, ror #17 + eor r12, r12, r5, lsr #10 + eor lr, lr, r6, ror #19 + add r7, r7, r12 + eor lr, lr, r6, lsr #10 + str r7, [r1, #26*4] + add r8, r8, lr + + mov r12, r7, ror #17 + str r8, [r1, #27*4] + eor r12, r12, r7, ror #19 + mov lr, r8, ror #17 + eor r12, r12, r7, lsr #10 + eor lr, lr, r8, ror #19 + add r9, r9, r12 + eor lr, lr, r8, lsr #10 + str r9, [r1, #28*4] + add r10, r10, lr + + ldr lr, [r1, #31*4] + mov r12, r9, ror #17 + str r10, [r1, #29*4] + eor r12, r12, r9, ror #19 + str lr, [sp, #25*4] + eor r12, r12, r9, lsr #10 + add r11, r11, r12 + add r5, r5, lr + mov r12, r10, ror #17 + add r4, r4, r11 + + ldr r11, [r1, #16*4] + eor r12, r12, r10, ror #19 + str r4, [r1, #30*4] + eor r12, r12, r10, lsr #10 + add r5, r5, r12 + ldr lr, [r1, #17*4] + +sha256d_ms_extend_loop2: + str r5, [r1, #(16+15)*4] + mov r12, r4, ror #17 + add r11, r11, r6 + eor r12, r12, r4, ror #19 + mov r6, lr, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(16+2)*4] + eor r6, r6, lr, lsr #3 + add r6, r6, r12 + + mov r12, r5, ror #17 + str r6, [r1, #(16+16)*4] + add lr, lr, r7 + eor r12, r12, r5, ror #19 + mov r7, r11, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, r11, ror #18 + add lr, lr, r12 + eor r7, r7, r11, lsr #3 + add r7, r7, lr + ldr lr, [r1, #(16+3)*4] + str r7, [r1, #(18+15)*4] + mov r12, r6, ror #17 + add r11, r11, r8 + eor r12, r12, r6, ror #19 + mov r8, lr, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(18+2)*4] + eor r8, r8, lr, lsr #3 + add r8, r8, r12 + + mov r12, r7, ror #17 + str r8, [r1, #(18+16)*4] + add lr, lr, r9 + eor r12, r12, r7, ror #19 + mov r9, r11, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, r11, ror #18 + add lr, lr, r12 + eor r9, r9, r11, lsr #3 + add r9, r9, lr + ldr lr, [r1, #(18+3)*4] + str r9, [r1, #(20+15)*4] + mov r12, r8, ror #17 + add r11, r11, r10 + eor r12, r12, r8, ror #19 + mov r10, lr, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(20+2)*4] + eor r10, r10, lr, lsr #3 + add r10, r10, r12 + + mov r12, r9, ror #17 + str r10, [r1, #(20+16)*4] + add lr, lr, r4 + eor r12, r12, r9, ror #19 + mov r4, r11, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, r11, ror #18 + add lr, lr, r12 + eor r4, r4, r11, lsr #3 + add r4, r4, lr + ldr lr, [r1, #(20+3)*4] + str r4, [r1, #(22+15)*4] + mov r12, r10, ror #17 + add r11, r11, r5 + eor r12, r12, r10, ror #19 + mov r5, lr, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(22+2)*4] + eor r5, r5, lr, lsr #3 + add r5, r5, r12 + + mov r12, r4, ror #17 + str r5, [r1, #(22+16)*4] + add lr, lr, r6 + eor r12, r12, r4, ror #19 + mov r6, r11, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, r11, ror #18 + add lr, lr, r12 + eor r6, r6, r11, lsr #3 + add r6, r6, lr + ldr lr, [r1, #(22+3)*4] + str r6, [r1, #(24+15)*4] + mov r12, r5, ror #17 + add r11, r11, r7 + eor r12, r12, r5, ror #19 + mov r7, lr, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(24+2)*4] + eor r7, r7, lr, lsr #3 + add r7, r7, r12 + + mov r12, r6, ror #17 + str r7, [r1, #(24+16)*4] + add lr, lr, r8 + eor r12, r12, r6, ror #19 + mov r8, r11, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, r11, ror #18 + add lr, lr, r12 + eor r8, r8, r11, lsr #3 + add r8, r8, lr + ldr lr, [r1, #(24+3)*4] + str r8, [r1, #(26+15)*4] + mov r12, r7, ror #17 + add r11, r11, r9 + eor r12, r12, r7, ror #19 + mov r9, lr, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(26+2)*4] + eor r9, r9, lr, lsr #3 + add r9, r9, r12 + + mov r12, r8, ror #17 + str r9, [r1, #(26+16)*4] + add lr, lr, r10 + eor r12, r12, r8, ror #19 + mov r10, r11, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, r11, ror #18 + add lr, lr, r12 + eor r10, r10, r11, lsr #3 + add r10, r10, lr + ldr lr, [r1, #(26+3)*4] + str r10, [r1, #(28+15)*4] + mov r12, r9, ror #17 + add r11, r11, r4 + eor r12, r12, r9, ror #19 + mov r4, lr, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(28+2)*4] + eor r4, r4, lr, lsr #3 + add r4, r4, r12 + + mov r12, r10, ror #17 + str r4, [r1, #(28+16)*4] + add lr, lr, r5 + eor r12, r12, r10, ror #19 + mov r5, r11, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, r11, ror #18 + add lr, lr, r12 + eor r5, r5, r11, lsr #3 + add r5, r5, lr + ldr lr, [r1, #(28+3)*4] + str r5, [r1, #(30+15)*4] + mov r12, r4, ror #17 + add r11, r11, r6 + eor r12, r12, r4, ror #19 + mov r6, lr, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(30+2)*4] + eor r6, r6, lr, lsr #3 + add r6, r6, r12 + + mov r12, r5, ror #17 + str r6, [r1, #(30+16)*4] + add lr, lr, r7 + eor r12, r12, r5, ror #19 + mov r7, r11, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, r11, ror #18 + add lr, lr, r12 + eor r7, r7, r11, lsr #3 + add r7, r7, lr + ldr lr, [r1, #(30+3)*4] + str r7, [r1, #(32+15)*4] + mov r12, r6, ror #17 + add r11, r11, r8 + eor r12, r12, r6, ror #19 + mov r8, lr, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(32+2)*4] + eor r8, r8, lr, lsr #3 + add r8, r8, r12 + + mov r12, r7, ror #17 + str r8, [r1, #(32+16)*4] + add lr, lr, r9 + eor r12, r12, r7, ror #19 + mov r9, r11, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, r11, ror #18 + add lr, lr, r12 + eor r9, r9, r11, lsr #3 + add r9, r9, lr + ldr lr, [r1, #(32+3)*4] + str r9, [r1, #(34+15)*4] + mov r12, r8, ror #17 + add r11, r11, r10 + eor r12, r12, r8, ror #19 + mov r10, lr, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(34+2)*4] + eor r10, r10, lr, lsr #3 + add r10, r10, r12 + + mov r12, r9, ror #17 + str r10, [r1, #(34+16)*4] + add lr, lr, r4 + eor r12, r12, r9, ror #19 + mov r4, r11, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, r11, ror #18 + add lr, lr, r12 + eor r4, r4, r11, lsr #3 + add r4, r4, lr + ldr lr, [r1, #(34+3)*4] + str r4, [r1, #(36+15)*4] + mov r12, r10, ror #17 + add r11, r11, r5 + eor r12, r12, r10, ror #19 + mov r5, lr, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(36+2)*4] + eor r5, r5, lr, lsr #3 + add r5, r5, r12 + + mov r12, r4, ror #17 + str r5, [r1, #(36+16)*4] + add lr, lr, r6 + eor r12, r12, r4, ror #19 + mov r6, r11, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, r11, ror #18 + add lr, lr, r12 + eor r6, r6, r11, lsr #3 + add r6, r6, lr + ldr lr, [r1, #(36+3)*4] + str r6, [r1, #(38+15)*4] + mov r12, r5, ror #17 + add r11, r11, r7 + eor r12, r12, r5, ror #19 + mov r7, lr, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(38+2)*4] + eor r7, r7, lr, lsr #3 + add r7, r7, r12 + + mov r12, r6, ror #17 + str r7, [r1, #(38+16)*4] + add lr, lr, r8 + eor r12, r12, r6, ror #19 + mov r8, r11, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, r11, ror #18 + add lr, lr, r12 + eor r8, r8, r11, lsr #3 + add r8, r8, lr + ldr lr, [r1, #(38+3)*4] + str r8, [r1, #(40+15)*4] + mov r12, r7, ror #17 + add r11, r11, r9 + eor r12, r12, r7, ror #19 + mov r9, lr, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(40+2)*4] + eor r9, r9, lr, lsr #3 + add r9, r9, r12 + + mov r12, r8, ror #17 + str r9, [r1, #(40+16)*4] + add lr, lr, r10 + eor r12, r12, r8, ror #19 + mov r10, r11, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, r11, ror #18 + add lr, lr, r12 + eor r10, r10, r11, lsr #3 + add r10, r10, lr + ldr lr, [r1, #(40+3)*4] + str r10, [r1, #(42+15)*4] + mov r12, r9, ror #17 + add r11, r11, r4 + eor r12, r12, r9, ror #19 + mov r4, lr, ror #7 + eor r12, r12, r9, lsr #10 + eor r4, r4, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(42+2)*4] + eor r4, r4, lr, lsr #3 + add r4, r4, r12 + + mov r12, r10, ror #17 + str r4, [r1, #(42+16)*4] + add lr, lr, r5 + eor r12, r12, r10, ror #19 + mov r5, r11, ror #7 + eor r12, r12, r10, lsr #10 + eor r5, r5, r11, ror #18 + add lr, lr, r12 + eor r5, r5, r11, lsr #3 + add r5, r5, lr + ldr lr, [r1, #(42+3)*4] + bne sha256d_ms_extend_coda2 + str r5, [r1, #(44+15)*4] + mov r12, r4, ror #17 + add r11, r11, r6 + eor r12, r12, r4, ror #19 + mov r6, lr, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(44+2)*4] + eor r6, r6, lr, lsr #3 + add r6, r6, r12 + + mov r12, r5, ror #17 + str r6, [r1, #(44+16)*4] + add lr, lr, r7 + eor r12, r12, r5, ror #19 + mov r7, r11, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, r11, ror #18 + add lr, lr, r12 + eor r7, r7, r11, lsr #3 + add r7, r7, lr + ldr lr, [r1, #(44+3)*4] + str r7, [r1, #(46+15)*4] + mov r12, r6, ror #17 + add r11, r11, r8 + eor r12, r12, r6, ror #19 + mov r8, lr, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, lr, ror #18 + add r12, r12, r11 + ldr r11, [r1, #(46+2)*4] + eor r8, r8, lr, lsr #3 + add r8, r8, r12 + + mov r12, r7, ror #17 + str r8, [r1, #(46+16)*4] + add lr, lr, r9 + eor r12, r12, r7, ror #19 + mov r9, r11, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, r11, ror #18 + add lr, lr, r12 + eor r9, r9, r11, lsr #3 + add r9, r9, lr + str r9, [r1, #(46+17)*4] + + ldr r4, [r3, #0*4] + ldr r9, [r3, #1*4] + ldr r10, [r3, #2*4] + ldr r11, [r3, #3*4] + ldr r8, [r3, #4*4] + ldr r5, [r3, #5*4] + ldr r6, [r3, #6*4] + ldr r7, [r3, #7*4] + b sha256d_ms_main_loop1 + +sha256d_ms_main_loop2: + ldr r12, [r1, #(0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 +sha256d_ms_main_loop1: + ldr r12, [r1, #(3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(4+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (4+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(4+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (4+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(4+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (4+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(4+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (4+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(8+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (8+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(8+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (8+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(8+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (8+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(8+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (8+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(12+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (12+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(12+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (12+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(12+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (12+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(12+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (12+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(16+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (16+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(16+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (16+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(16+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (16+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(16+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (16+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(20+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (20+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(20+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (20+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(20+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (20+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(20+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (20+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(24+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (24+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(24+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (24+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(24+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (24+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(24+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (24+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(28+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (28+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(28+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (28+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(28+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (28+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(28+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (28+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + b sha256d_ms_k_over +sha256d_ms_k: + .align 2 + .long 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5 + .long 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5 + .long 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3 + .long 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174 + .long 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc + .long 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da + .long 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7 + .long 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967 + .long 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13 + .long 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85 + .long 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3 + .long 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070 + .long 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5 + .long 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3 + .long 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208 + .long 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +sha256d_ms_k_over: + ldr r12, [r1, #(32+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (32+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(32+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (32+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(32+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (32+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(32+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (32+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(36+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (36+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(36+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (36+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(36+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (36+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(36+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (36+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(40+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (40+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(40+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (40+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(40+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (40+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(40+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (40+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(44+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (44+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(44+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (44+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(44+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (44+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(44+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (44+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(48+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (48+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(48+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (48+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(48+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (48+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(48+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (48+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(52+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (52+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(52+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (52+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(52+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (52+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(52+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (52+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(56)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (56)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + bne sha256d_ms_finish + ldr r12, [r1, #(57)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (57)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(58)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (58)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(59)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (59)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + ldr r12, [r1, #(60+0)*4] + and r3, r9, r8 + bic lr, r10, r8 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (60+0)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + eor r3, r4, r5 + add r11, r11, lr, ror #6 + + and r3, r3, r6 + eor r12, r4, r4, ror #11 + and lr, r4, r5 + eor r12, r12, r4, ror #20 + eor lr, lr, r3 + add r3, r11, lr + add r11, r11, r7 + add r7, r3, r12, ror #2 + ldr r12, [r1, #(60+1)*4] + and r3, r8, r11 + bic lr, r9, r11 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (60+1)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + eor r3, r7, r4 + add r10, r10, lr, ror #6 + + and r3, r3, r5 + eor r12, r7, r7, ror #11 + and lr, r7, r4 + eor r12, r12, r7, ror #20 + eor lr, lr, r3 + add r3, r10, lr + add r10, r10, r6 + add r6, r3, r12, ror #2 + ldr r12, [r1, #(60+2)*4] + and r3, r11, r10 + bic lr, r8, r10 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (60+2)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + eor r3, r6, r7 + add r9, r9, lr, ror #6 + + and r3, r3, r4 + eor r12, r6, r6, ror #11 + and lr, r6, r7 + eor r12, r12, r6, ror #20 + eor lr, lr, r3 + add r3, r9, lr + add r9, r9, r5 + add r5, r3, r12, ror #2 + ldr r12, [r1, #(60+3)*4] + and r3, r10, r9 + bic lr, r11, r9 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (60+3)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + eor r3, r5, r6 + add r8, r8, lr, ror #6 + + and r3, r3, r7 + eor r12, r5, r5, ror #11 + and lr, r5, r6 + eor r12, r12, r5, ror #20 + eor lr, lr, r3 + add r3, r8, lr + add r8, r8, r4 + add r4, r3, r12, ror #2 + + ldmia r2!, {r3, r12, lr} + add r4, r4, r3 + add r5, r5, r12 + add r6, r6, lr + stmia sp, {r4-r6} + ldmia r2, {r3, r4, r5, r6, r12} + add lr, sp, #3*4 + add r7, r7, r3 + add r8, r8, r4 + add r9, r9, r5 + add r10, r10, r6 + add r11, r11, r12 + add r12, sp, #18*4 + stmia lr!, {r7-r11} + + ldmia r12, {r4-r11} + str r4, [r1, #18*4] + str r5, [r1, #19*4] + str r6, [r1, #20*4] + str r7, [r1, #22*4] + str r8, [r1, #23*4] + str r9, [r1, #24*4] + str r10, [r1, #30*4] + str r11, [r1, #31*4] + + mov r3, #0x80000000 + mov r4, #0 + mov r5, #0 + mov r6, #0 + mov r7, #0 + mov r8, #0 + mov r9, #0 + mov r10, #0x00000100 + stmia lr, {r3-r10} + + ldr lr, [sp, #1*4] + movs r1, sp + ldr r4, [sp, #0*4] + + ldr r11, [sp, #2*4] + mov r12, lr, ror #7 + eor r12, r12, lr, ror #18 + add r5, lr, #0x00a00000 + eor r12, r12, lr, lsr #3 + mov lr, r11, ror #7 + add r4, r4, r12 + eor lr, lr, r11, ror #18 + str r4, [sp, #16*4] + eor lr, lr, r11, lsr #3 + mov r12, r4, ror #17 + add r5, r5, lr + ldr lr, [sp, #3*4] + + str r5, [sp, #17*4] + eor r12, r12, r4, ror #19 + mov r6, lr, ror #7 + eor r12, r12, r4, lsr #10 + eor r6, r6, lr, ror #18 + add r11, r11, r12 + eor r6, r6, lr, lsr #3 + mov r12, r5, ror #17 + add r6, r6, r11 + ldr r11, [sp, #4*4] + + str r6, [sp, #18*4] + eor r12, r12, r5, ror #19 + mov r7, r11, ror #7 + eor r12, r12, r5, lsr #10 + eor r7, r7, r11, ror #18 + add lr, lr, r12 + eor r7, r7, r11, lsr #3 + mov r12, r6, ror #17 + add r7, r7, lr + ldr lr, [sp, #5*4] + + str r7, [sp, #19*4] + eor r12, r12, r6, ror #19 + mov r8, lr, ror #7 + eor r12, r12, r6, lsr #10 + eor r8, r8, lr, ror #18 + add r11, r11, r12 + eor r8, r8, lr, lsr #3 + mov r12, r7, ror #17 + add r8, r8, r11 + ldr r11, [sp, #6*4] + + str r8, [sp, #20*4] + eor r12, r12, r7, ror #19 + mov r9, r11, ror #7 + eor r12, r12, r7, lsr #10 + eor r9, r9, r11, ror #18 + add lr, lr, r12 + eor r9, r9, r11, lsr #3 + mov r12, r8, ror #17 + add r9, r9, lr + ldr lr, [sp, #7*4] + + str r9, [sp, #21*4] + eor r12, r12, r8, ror #19 + mov r10, lr, ror #7 + eor r12, r12, r8, lsr #10 + eor r10, r10, lr, ror #18 + add r11, r11, r12 + eor r10, r10, lr, lsr #3 + mov r12, r9, ror #17 + add r11, r11, #0x00000100 + add lr, lr, r4 + add r10, r10, r11 + + eor r12, r12, r9, ror #19 + str r10, [sp, #22*4] + add lr, lr, #0x11000000 + eor r12, r12, r9, lsr #10 + add lr, lr, r12 + mov r12, r10, ror #17 + add r4, lr, #0x00002000 + eor r12, r12, r10, ror #19 + str r4, [sp, #23*4] + add r5, r5, #0x80000000 + eor r12, r12, r10, lsr #10 + add r5, r5, r12 + + mov r12, r4, ror #17 + str r5, [sp, #24*4] + eor r12, r12, r4, ror #19 + mov r11, r5, ror #17 + eor r12, r12, r4, lsr #10 + eor r11, r11, r5, ror #19 + add r6, r6, r12 + eor r11, r11, r5, lsr #10 + str r6, [sp, #25*4] + add r7, r7, r11 + + mov r12, r6, ror #17 + str r7, [sp, #26*4] + eor r12, r12, r6, ror #19 + mov r11, r7, ror #17 + eor r12, r12, r6, lsr #10 + eor r11, r11, r7, ror #19 + add r8, r8, r12 + eor r11, r11, r7, lsr #10 + str r8, [sp, #27*4] + add r9, r9, r11 + + mov lr, r8, ror #17 + mov r12, r9, ror #17 + str r9, [sp, #28*4] + add r4, r4, #0x00400000 + eor lr, lr, r8, ror #19 + eor r12, r12, r9, ror #19 + eor lr, lr, r8, lsr #10 + eor r12, r12, r9, lsr #10 + add r4, r4, #0x00000022 + add r10, r10, lr + add r4, r4, r12 + ldr r11, [sp, #16*4] + + add r5, r5, #0x00000100 + str r4, [sp, #30*4] + mov lr, r11, ror #7 + str r10, [sp, #29*4] + mov r12, r10, ror #17 + eor lr, lr, r11, ror #18 + eor r12, r12, r10, ror #19 + eor lr, lr, r11, lsr #3 + eor r12, r12, r10, lsr #10 + add r5, r5, lr + ldr lr, [r1, #17*4] + add r5, r5, r12 + + b sha256d_ms_extend_loop2 + +sha256d_ms_extend_coda2: + str r5, [r1, #(44+15)*4] + mov r12, r4, ror #17 + add r11, r11, r6 + mov r6, lr, ror #7 + eor r12, r12, r4, ror #19 + eor r6, r6, lr, ror #18 + eor r12, r12, r4, lsr #10 + eor r6, r6, lr, lsr #3 + add r12, r12, r11 + add r6, r6, r12 + str r6, [r1, #(44+16)*4] + + adr r2, sha256d_ms_h + ldmia r2, {r4-r11} + b sha256d_ms_main_loop2 + +sha256d_ms_h: + .long 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a + .long 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 + + +sha256d_ms_finish: + ldr r12, [r1, #(57)*4] + and r3, r8, r11 + bic lr, r9, r11 + add r10, r10, r6 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (57)*4 + add r10, r10, lr + eor lr, r11, r11, ror #5 + add r10, r10, r12 + eor lr, lr, r11, ror #19 + add r10, r10, r3 + add r10, r10, lr, ror #6 + ldr r12, [r1, #(58)*4] + and r3, r11, r10 + bic lr, r8, r10 + add r9, r9, r5 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (58)*4 + add r9, r9, lr + eor lr, r10, r10, ror #5 + add r9, r9, r12 + eor lr, lr, r10, ror #19 + add r9, r9, r3 + add r9, r9, lr, ror #6 + ldr r12, [r1, #(59)*4] + and r3, r10, r9 + bic lr, r11, r9 + add r8, r8, r4 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (59)*4 + add r8, r8, lr + eor lr, r9, r9, ror #5 + add r8, r8, r12 + eor lr, lr, r9, ror #19 + add r8, r8, r3 + add r8, r8, lr, ror #6 + ldr r5, [r2, #7*4] + ldr r12, [r1, #(60)*4] + and r3, r9, r8 + bic lr, r10, r8 + add r11, r11, r7 + orr lr, lr, r3 + ldr r3, sha256d_ms_k + (60)*4 + add r11, r11, lr + eor lr, r8, r8, ror #5 + add r11, r11, r12 + eor lr, lr, r8, ror #19 + add r11, r11, r3 + add r11, r11, lr, ror #6 + + add r11, r11, r5 + str r11, [r0, #7*4] + + add sp, sp, #64*4 +#ifdef __thumb__ + ldmfd sp!, {r4-r11, lr} + bx lr +#else + ldmfd sp!, {r4-r11, pc} +#endif + + +#ifdef __ARM_NEON__ + + .text + .code 32 + .align 2 + .globl sha256_init_4way + .globl _sha256_init_4way +#ifdef __ELF__ + .type sha256_init_4way, %function +#endif +sha256_init_4way: +_sha256_init_4way: + adr r12, sha256_4h + vldmia r12, {q8-q15} + vstmia r0, {q8-q15} + bx lr + .align 4 +sha256_4h: + .long 0x6a09e667, 0x6a09e667, 0x6a09e667, 0x6a09e667 + .long 0xbb67ae85, 0xbb67ae85, 0xbb67ae85, 0xbb67ae85 + .long 0x3c6ef372, 0x3c6ef372, 0x3c6ef372, 0x3c6ef372 + .long 0xa54ff53a, 0xa54ff53a, 0xa54ff53a, 0xa54ff53a + .long 0x510e527f, 0x510e527f, 0x510e527f, 0x510e527f + .long 0x9b05688c, 0x9b05688c, 0x9b05688c, 0x9b05688c + .long 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab + .long 0x5be0cd19, 0x5be0cd19, 0x5be0cd19, 0x5be0cd19 + + + + + + + + + + .text + .code 32 + .align 2 + .globl sha256_transform_4way + .globl _sha256_transform_4way +#ifdef __ELF__ + .type sha256_transform_4way, %function +#endif +sha256_transform_4way: +_sha256_transform_4way: + stmfd sp!, {r4, lr} + vpush {q4-q7} + mov r12, sp + sub sp, sp, #64*16 + bic sp, sp, #63 + cmp r2, #0 + bne sha256_transform_4way_swap + + vldmia r1!, {q0-q7} + vstmia sp, {q0-q7} + add r3, sp, #8*16 + vldmia r1, {q8-q15} + vstmia r3, {q8-q15} + b sha256_transform_4way_extend + +sha256_transform_4way_swap: + vldmia r1!, {q0-q7} + vrev32.8 q0, q0 + vrev32.8 q1, q1 + vrev32.8 q2, q2 + vrev32.8 q3, q3 + vldmia r1, {q8-q15} + vrev32.8 q4, q4 + vrev32.8 q5, q5 + vrev32.8 q6, q6 + vrev32.8 q7, q7 + vstmia sp, {q0-q7} + vrev32.8 q8, q8 + vrev32.8 q9, q9 + vrev32.8 q10, q10 + vrev32.8 q11, q11 + vrev32.8 q12, q12 + vrev32.8 q13, q13 + vrev32.8 q14, q14 + vrev32.8 q15, q15 + add r3, sp, #8*16 + vstmia r3, {q8-q15} + +sha256_transform_4way_extend: + add r1, sp, #1*16 + add r2, sp, #16*16 + vmov.u32 q5, q0 + vld1.u32 {q6}, [r1]! + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vadd.u32 q5, q5, q9 + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshr.u32 q1, q14, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q9, q9, q1 + vadd.u32 q4, q4, q5 + veor.u32 q9, q9, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q9, q9, q4 + + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vadd.u32 q6, q6, q10 + vst1.u32 {q9}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q15, #10 + veor.u32 q10, q10, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q10, q10, q1 + vadd.u32 q1, q6, q4 + veor.u32 q10, q10, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q10, q10, q1 + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vst1.u32 {q10}, [r2]! + vadd.u32 q5, q5, q11 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshr.u32 q1, q9, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q11, q11, q1 + vadd.u32 q4, q4, q5 + veor.u32 q11, q11, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q11, q11, q4 + + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vadd.u32 q6, q6, q12 + vst1.u32 {q11}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q10, #10 + veor.u32 q12, q12, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q12, q12, q1 + vadd.u32 q1, q6, q4 + veor.u32 q12, q12, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q12, q12, q1 + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vst1.u32 {q12}, [r2]! + vadd.u32 q5, q5, q13 + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshr.u32 q1, q11, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q13, q13, q1 + vadd.u32 q4, q4, q5 + veor.u32 q13, q13, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q13, q13, q4 + + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vadd.u32 q6, q6, q14 + vst1.u32 {q13}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q12, #10 + veor.u32 q14, q14, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q14, q14, q1 + vadd.u32 q1, q6, q4 + veor.u32 q14, q14, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q14, q14, q1 + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vst1.u32 {q14}, [r2]! + vadd.u32 q5, q5, q15 + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshr.u32 q1, q13, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q15, q15, q1 + vadd.u32 q4, q4, q5 + veor.u32 q15, q15, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q15, q15, q4 + + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vadd.u32 q6, q6, q9 + vst1.u32 {q15}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q14, #10 + veor.u32 q9, q9, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q9, q9, q1 + vadd.u32 q1, q6, q4 + veor.u32 q9, q9, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q9, q9, q1 + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vst1.u32 {q9}, [r2]! + vadd.u32 q5, q5, q10 + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshr.u32 q1, q15, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q10, q10, q1 + vadd.u32 q4, q4, q5 + veor.u32 q10, q10, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q10, q10, q4 + + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vadd.u32 q6, q6, q11 + vst1.u32 {q10}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q9, #10 + veor.u32 q11, q11, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q11, q11, q1 + vadd.u32 q1, q6, q4 + veor.u32 q11, q11, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q11, q11, q1 + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vst1.u32 {q11}, [r2]! + vadd.u32 q5, q5, q12 + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshr.u32 q1, q10, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q12, q12, q1 + vadd.u32 q4, q4, q5 + veor.u32 q12, q12, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q12, q12, q4 + + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vadd.u32 q6, q6, q13 + vst1.u32 {q12}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q11, #10 + veor.u32 q13, q13, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q13, q13, q1 + vadd.u32 q1, q6, q4 + veor.u32 q13, q13, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q13, q13, q1 + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vst1.u32 {q13}, [r2]! + vadd.u32 q5, q5, q14 + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshr.u32 q1, q12, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q14, q14, q1 + vadd.u32 q4, q4, q5 + veor.u32 q14, q14, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q14, q14, q4 + + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vadd.u32 q6, q6, q15 + vst1.u32 {q14}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q13, #10 + veor.u32 q15, q15, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q15, q15, q1 + vadd.u32 q1, q6, q4 + veor.u32 q15, q15, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q15, q15, q1 + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vst1.u32 {q15}, [r2]! + vadd.u32 q5, q5, q9 + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshr.u32 q1, q14, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q9, q9, q1 + vadd.u32 q4, q4, q5 + veor.u32 q9, q9, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q9, q9, q4 + + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vadd.u32 q6, q6, q10 + vst1.u32 {q9}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q15, #10 + veor.u32 q10, q10, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q10, q10, q1 + vadd.u32 q1, q6, q4 + veor.u32 q10, q10, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q10, q10, q1 + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vst1.u32 {q10}, [r2]! + vadd.u32 q5, q5, q11 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshr.u32 q1, q9, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q11, q11, q1 + vadd.u32 q4, q4, q5 + veor.u32 q11, q11, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q11, q11, q4 + + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vadd.u32 q6, q6, q12 + vst1.u32 {q11}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q10, #10 + veor.u32 q12, q12, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q12, q12, q1 + vadd.u32 q1, q6, q4 + veor.u32 q12, q12, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q12, q12, q1 + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vst1.u32 {q12}, [r2]! + vadd.u32 q5, q5, q13 + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshr.u32 q1, q11, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q13, q13, q1 + vadd.u32 q4, q4, q5 + veor.u32 q13, q13, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q13, q13, q4 + + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vadd.u32 q6, q6, q14 + vst1.u32 {q13}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q12, #10 + veor.u32 q14, q14, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q14, q14, q1 + vadd.u32 q1, q6, q4 + veor.u32 q14, q14, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q14, q14, q1 + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vst1.u32 {q14}, [r2]! + vadd.u32 q5, q5, q15 + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshr.u32 q1, q13, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q15, q15, q1 + vadd.u32 q4, q4, q5 + veor.u32 q15, q15, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q15, q15, q4 + + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vadd.u32 q6, q6, q9 + vst1.u32 {q15}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q14, #10 + veor.u32 q9, q9, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q9, q9, q1 + vadd.u32 q1, q6, q4 + veor.u32 q9, q9, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q9, q9, q1 + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vst1.u32 {q9}, [r2]! + vadd.u32 q5, q5, q10 + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshr.u32 q1, q15, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q10, q10, q1 + vadd.u32 q4, q4, q5 + veor.u32 q10, q10, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q10, q10, q4 + + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vadd.u32 q6, q6, q11 + vst1.u32 {q10}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q9, #10 + veor.u32 q11, q11, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q11, q11, q1 + vadd.u32 q1, q6, q4 + veor.u32 q11, q11, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q11, q11, q1 + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vst1.u32 {q11}, [r2]! + vadd.u32 q5, q5, q12 + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshr.u32 q1, q10, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q12, q12, q1 + vadd.u32 q4, q4, q5 + veor.u32 q12, q12, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q12, q12, q4 + + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vadd.u32 q6, q6, q13 + vst1.u32 {q12}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q11, #10 + veor.u32 q13, q13, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q13, q13, q1 + vadd.u32 q1, q6, q4 + veor.u32 q13, q13, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q13, q13, q1 + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vst1.u32 {q13}, [r2]! + vadd.u32 q5, q5, q14 + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshr.u32 q1, q12, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q14, q14, q1 + vadd.u32 q4, q4, q5 + veor.u32 q14, q14, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q14, q14, q4 + + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vadd.u32 q6, q6, q15 + vst1.u32 {q14}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q13, #10 + veor.u32 q15, q15, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q15, q15, q1 + vadd.u32 q1, q6, q4 + veor.u32 q15, q15, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q15, q15, q1 + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vst1.u32 {q15}, [r2]! + vadd.u32 q5, q5, q9 + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshr.u32 q1, q14, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q9, q9, q1 + vadd.u32 q4, q4, q5 + veor.u32 q9, q9, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q9, q9, q4 + + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vadd.u32 q6, q6, q10 + vst1.u32 {q9}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q15, #10 + veor.u32 q10, q10, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q10, q10, q1 + vadd.u32 q1, q6, q4 + veor.u32 q10, q10, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q10, q10, q1 + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vst1.u32 {q10}, [r2]! + vadd.u32 q5, q5, q11 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshr.u32 q1, q9, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q11, q11, q1 + vadd.u32 q4, q4, q5 + veor.u32 q11, q11, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q11, q11, q4 + + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vadd.u32 q6, q6, q12 + vst1.u32 {q11}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q10, #10 + veor.u32 q12, q12, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q12, q12, q1 + vadd.u32 q1, q6, q4 + veor.u32 q12, q12, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q12, q12, q1 + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vst1.u32 {q12}, [r2]! + vadd.u32 q5, q5, q13 + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshr.u32 q1, q11, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q13, q13, q1 + vadd.u32 q4, q4, q5 + veor.u32 q13, q13, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q13, q13, q4 + + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vadd.u32 q6, q6, q14 + vst1.u32 {q13}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q12, #10 + veor.u32 q14, q14, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q14, q14, q1 + vadd.u32 q1, q6, q4 + veor.u32 q14, q14, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q14, q14, q1 + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vst1.u32 {q14}, [r2]! + vadd.u32 q5, q5, q15 + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshr.u32 q1, q13, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q15, q15, q1 + vadd.u32 q4, q4, q5 + veor.u32 q15, q15, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q15, q15, q4 + + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vadd.u32 q6, q6, q9 + vst1.u32 {q15}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q14, #10 + veor.u32 q9, q9, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q9, q9, q1 + vadd.u32 q1, q6, q4 + veor.u32 q9, q9, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q9, q9, q1 + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vst1.u32 {q9}, [r2]! + vadd.u32 q5, q5, q10 + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshr.u32 q1, q15, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q10, q10, q1 + vadd.u32 q4, q4, q5 + veor.u32 q10, q10, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q10, q10, q4 + + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vadd.u32 q6, q6, q11 + vst1.u32 {q10}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q9, #10 + veor.u32 q11, q11, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q11, q11, q1 + vadd.u32 q1, q6, q4 + veor.u32 q11, q11, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q11, q11, q1 + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vst1.u32 {q11}, [r2]! + vadd.u32 q5, q5, q12 + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshr.u32 q1, q10, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q12, q12, q1 + vadd.u32 q4, q4, q5 + veor.u32 q12, q12, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q12, q12, q4 + + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vadd.u32 q6, q6, q13 + vst1.u32 {q12}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q11, #10 + veor.u32 q13, q13, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q13, q13, q1 + vadd.u32 q1, q6, q4 + veor.u32 q13, q13, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q13, q13, q1 + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vst1.u32 {q13}, [r2]! + vadd.u32 q5, q5, q14 + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshr.u32 q1, q12, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q14, q14, q1 + vadd.u32 q4, q4, q5 + veor.u32 q14, q14, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q14, q14, q4 + + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vadd.u32 q6, q6, q15 + vst1.u32 {q14}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q13, #10 + veor.u32 q15, q15, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q15, q15, q1 + vadd.u32 q1, q6, q4 + veor.u32 q15, q15, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q15, q15, q1 + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vst1.u32 {q15}, [r2]! + vadd.u32 q5, q5, q9 + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshr.u32 q1, q14, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q9, q9, q1 + vadd.u32 q4, q4, q5 + veor.u32 q9, q9, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q9, q9, q4 + + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vadd.u32 q6, q6, q10 + vst1.u32 {q9}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q15, #10 + veor.u32 q10, q10, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q10, q10, q1 + vadd.u32 q1, q6, q4 + veor.u32 q10, q10, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q10, q10, q1 + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vst1.u32 {q10}, [r2]! + vadd.u32 q5, q5, q11 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshr.u32 q1, q9, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q11, q11, q1 + vadd.u32 q4, q4, q5 + veor.u32 q11, q11, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q11, q11, q4 + + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vadd.u32 q6, q6, q12 + vst1.u32 {q11}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q10, #10 + veor.u32 q12, q12, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q12, q12, q1 + vadd.u32 q1, q6, q4 + veor.u32 q12, q12, q0 + vld1.u32 {q6}, [r1]! + vadd.u32 q12, q12, q1 + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vst1.u32 {q12}, [r2]! + vadd.u32 q5, q5, q13 + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshr.u32 q1, q11, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q13, q13, q1 + vadd.u32 q4, q4, q5 + veor.u32 q13, q13, q0 + vld1.u32 {q5}, [r1]! + vadd.u32 q13, q13, q4 + + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vadd.u32 q6, q6, q14 + vst1.u32 {q13}, [r2]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q12, #10 + veor.u32 q14, q14, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q14, q14, q1 + vadd.u32 q1, q6, q4 + veor.u32 q14, q14, q0 + vadd.u32 q14, q14, q1 + vst1.u32 {q14}, [r2]! + + vldmia r0, {q0-q7} + adr r4, sha256_transform_4way_4k + b sha256_transform_4way_4k_over + .align 4 +sha256_transform_4way_4k: + .long 0x428a2f98, 0x428a2f98, 0x428a2f98, 0x428a2f98 + .long 0x71374491, 0x71374491, 0x71374491, 0x71374491 + .long 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf + .long 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5 + .long 0x3956c25b, 0x3956c25b, 0x3956c25b, 0x3956c25b + .long 0x59f111f1, 0x59f111f1, 0x59f111f1, 0x59f111f1 + .long 0x923f82a4, 0x923f82a4, 0x923f82a4, 0x923f82a4 + .long 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5 + .long 0xd807aa98, 0xd807aa98, 0xd807aa98, 0xd807aa98 + .long 0x12835b01, 0x12835b01, 0x12835b01, 0x12835b01 + .long 0x243185be, 0x243185be, 0x243185be, 0x243185be + .long 0x550c7dc3, 0x550c7dc3, 0x550c7dc3, 0x550c7dc3 + .long 0x72be5d74, 0x72be5d74, 0x72be5d74, 0x72be5d74 + .long 0x80deb1fe, 0x80deb1fe, 0x80deb1fe, 0x80deb1fe + .long 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7 + .long 0xc19bf174, 0xc19bf174, 0xc19bf174, 0xc19bf174 + .long 0xe49b69c1, 0xe49b69c1, 0xe49b69c1, 0xe49b69c1 + .long 0xefbe4786, 0xefbe4786, 0xefbe4786, 0xefbe4786 + .long 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6 + .long 0x240ca1cc, 0x240ca1cc, 0x240ca1cc, 0x240ca1cc + .long 0x2de92c6f, 0x2de92c6f, 0x2de92c6f, 0x2de92c6f + .long 0x4a7484aa, 0x4a7484aa, 0x4a7484aa, 0x4a7484aa + .long 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc + .long 0x76f988da, 0x76f988da, 0x76f988da, 0x76f988da + .long 0x983e5152, 0x983e5152, 0x983e5152, 0x983e5152 + .long 0xa831c66d, 0xa831c66d, 0xa831c66d, 0xa831c66d + .long 0xb00327c8, 0xb00327c8, 0xb00327c8, 0xb00327c8 + .long 0xbf597fc7, 0xbf597fc7, 0xbf597fc7, 0xbf597fc7 + .long 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3 + .long 0xd5a79147, 0xd5a79147, 0xd5a79147, 0xd5a79147 + .long 0x06ca6351, 0x06ca6351, 0x06ca6351, 0x06ca6351 + .long 0x14292967, 0x14292967, 0x14292967, 0x14292967 + .long 0x27b70a85, 0x27b70a85, 0x27b70a85, 0x27b70a85 + .long 0x2e1b2138, 0x2e1b2138, 0x2e1b2138, 0x2e1b2138 + .long 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc + .long 0x53380d13, 0x53380d13, 0x53380d13, 0x53380d13 + .long 0x650a7354, 0x650a7354, 0x650a7354, 0x650a7354 + .long 0x766a0abb, 0x766a0abb, 0x766a0abb, 0x766a0abb + .long 0x81c2c92e, 0x81c2c92e, 0x81c2c92e, 0x81c2c92e + .long 0x92722c85, 0x92722c85, 0x92722c85, 0x92722c85 + .long 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1 + .long 0xa81a664b, 0xa81a664b, 0xa81a664b, 0xa81a664b + .long 0xc24b8b70, 0xc24b8b70, 0xc24b8b70, 0xc24b8b70 + .long 0xc76c51a3, 0xc76c51a3, 0xc76c51a3, 0xc76c51a3 + .long 0xd192e819, 0xd192e819, 0xd192e819, 0xd192e819 + .long 0xd6990624, 0xd6990624, 0xd6990624, 0xd6990624 + .long 0xf40e3585, 0xf40e3585, 0xf40e3585, 0xf40e3585 + .long 0x106aa070, 0x106aa070, 0x106aa070, 0x106aa070 + .long 0x19a4c116, 0x19a4c116, 0x19a4c116, 0x19a4c116 + .long 0x1e376c08, 0x1e376c08, 0x1e376c08, 0x1e376c08 + .long 0x2748774c, 0x2748774c, 0x2748774c, 0x2748774c + .long 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5 + .long 0x391c0cb3, 0x391c0cb3, 0x391c0cb3, 0x391c0cb3 + .long 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a + .long 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f + .long 0x682e6ff3, 0x682e6ff3, 0x682e6ff3, 0x682e6ff3 + .long 0x748f82ee, 0x748f82ee, 0x748f82ee, 0x748f82ee + .long 0x78a5636f, 0x78a5636f, 0x78a5636f, 0x78a5636f + .long 0x84c87814, 0x84c87814, 0x84c87814, 0x84c87814 + .long 0x8cc70208, 0x8cc70208, 0x8cc70208, 0x8cc70208 + .long 0x90befffa, 0x90befffa, 0x90befffa, 0x90befffa + .long 0xa4506ceb, 0xa4506ceb, 0xa4506ceb, 0xa4506ceb + .long 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7 + .long 0xc67178f2, 0xc67178f2, 0xc67178f2, 0xc67178f2 +sha256_transform_4way_4k_over: + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [sp]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r4]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + + vldmia r0, {q8-q15} + vadd.u32 q0, q0, q8 + vadd.u32 q1, q1, q9 + vadd.u32 q2, q2, q10 + vadd.u32 q3, q3, q11 + vadd.u32 q4, q4, q12 + vadd.u32 q5, q5, q13 + vadd.u32 q6, q6, q14 + vadd.u32 q7, q7, q15 + vstmia r0, {q0-q7} + + mov sp, r12 + vpop {q4-q7} + ldmfd sp!, {r4, pc} + + + .text + .code 32 + .align 2 + .globl sha256d_ms_4way + .globl _sha256d_ms_4way +#ifdef __ELF__ + .type sha256d_ms_4way, %function +#endif +sha256d_ms_4way: +_sha256d_ms_4way: + stmfd sp!, {r4, lr} + vpush {q4-q7} + mov r12, sp + sub sp, sp, #64*16 + bic sp, sp, #63 + + add r4, r1, #3*16 + vld1.u32 {q6}, [r4]! + add r1, r1, #18*16 + vldmia r1, {q11-q13} + cmp r0, r0 + + vshr.u32 q10, q6, #7 + vshl.u32 q0, q6, #32-7 + vshr.u32 q1, q6, #18 + veor.u32 q10, q10, q0 + vshl.u32 q0, q6, #32-18 + veor.u32 q10, q10, q1 + vshr.u32 q1, q6, #3 + veor.u32 q10, q10, q0 + vstmia sp!, {q11-q13} + veor.u32 q4, q10, q1 + vadd.u32 q12, q12, q6 + vadd.u32 q11, q11, q4 + + vshr.u32 q14, q12, #17 + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vst1.u32 {q11}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vst1.u32 {q12}, [r1]! + veor.u32 q4, q4, q1 + vshr.u32 q1, q11, #10 + vshl.u32 q0, q12, #32-17 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vadd.u32 q13, q13, q4 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q14, q14, q0 + vst1.u32 {q13}, [r1]! + veor.u32 q14, q14, q1 + vshr.u32 q1, q12, #10 + + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + veor.u32 q14, q14, q1 + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vst1.u32 {q14}, [r1]! + veor.u32 q4, q4, q1 + vshr.u32 q1, q13, #10 + vld1.u32 {q15}, [r1] + veor.u32 q4, q4, q1 + vst1.u32 {q15}, [sp]! + vadd.u32 q15, q15, q4 + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vst1.u32 {q15}, [r1]! + veor.u32 q4, q4, q0 + vld1.u32 {q9}, [r1] + veor.u32 q4, q4, q1 + vshr.u32 q1, q14, #10 + vst1.u32 {q9}, [sp]! + veor.u32 q5, q4, q1 + + vshr.u32 q4, q15, #17 + vadd.u32 q9, q9, q5 + vshl.u32 q0, q15, #32-17 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vst1.u32 {q9}, [r1]! + veor.u32 q4, q4, q0 + vld1.u32 {q10}, [r1] + veor.u32 q4, q4, q1 + vshr.u32 q1, q15, #10 + vst1.u32 {q10}, [sp]! + veor.u32 q4, q4, q1 + vshl.u32 q0, q9, #32-17 + vadd.u32 q10, q10, q4 + vshr.u32 q4, q9, #17 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + veor.u32 q4, q4, q1 + vshr.u32 q1, q9, #10 + veor.u32 q4, q4, q0 + vst1.u32 {q10}, [r1]! + veor.u32 q5, q4, q1 + + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vadd.u32 q11, q11, q5 + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vst1.u32 {q11}, [r1]! + veor.u32 q4, q4, q1 + vshr.u32 q1, q10, #10 + vshl.u32 q0, q11, #32-17 + veor.u32 q2, q4, q1 + vshr.u32 q4, q11, #17 + vadd.u32 q12, q12, q2 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + veor.u32 q4, q4, q1 + vshr.u32 q1, q11, #10 + veor.u32 q4, q4, q0 + vst1.u32 {q12}, [r1]! + veor.u32 q5, q4, q1 + + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vadd.u32 q13, q13, q5 + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vst1.u32 {q13}, [r1]! + veor.u32 q4, q4, q1 + vshr.u32 q1, q12, #10 + vshl.u32 q0, q13, #32-17 + veor.u32 q2, q4, q1 + vshr.u32 q4, q13, #17 + vadd.u32 q14, q14, q2 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + veor.u32 q4, q4, q1 + vshr.u32 q1, q13, #10 + veor.u32 q4, q4, q0 + vst1.u32 {q14}, [r1]! + veor.u32 q5, q4, q1 + add r4, r4, #12*16 + + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vadd.u32 q15, q15, q5 + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vst1.u32 {q15}, [r1]! + veor.u32 q4, q4, q1 + vshr.u32 q1, q14, #10 + vld1.u32 {q2}, [r1] + veor.u32 q4, q4, q1 + vshl.u32 q0, q15, #32-17 + vadd.u32 q9, q9, q4 + vst1.u32 {q2}, [sp]! + vadd.u32 q9, q9, q2 + vshr.u32 q4, q15, #17 + vshr.u32 q2, q15, #19 + veor.u32 q4, q4, q0 + vst1.u32 {q9}, [r1]! + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q2 + vshr.u32 q0, q15, #10 + veor.u32 q4, q4, q1 + vld1.u32 {q5-q6}, [r4]! + veor.u32 q4, q4, q0 + vld1.u32 {q2}, [r1] + vadd.u32 q10, q10, q4 + vst1.u32 {q2}, [sp]! + vadd.u32 q10, q10, q2 + + sub sp, sp, #8*16 + +sha256d_ms_4way_extend_loop2: + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vst1.u32 {q10}, [r1]! + vadd.u32 q5, q5, q11 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshr.u32 q1, q9, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q11, q11, q1 + vadd.u32 q4, q4, q5 + veor.u32 q11, q11, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q11, q11, q4 + + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vadd.u32 q6, q6, q12 + vst1.u32 {q11}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q10, #10 + veor.u32 q12, q12, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q12, q12, q1 + vadd.u32 q1, q6, q4 + veor.u32 q12, q12, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q12, q12, q1 + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vst1.u32 {q12}, [r1]! + vadd.u32 q5, q5, q13 + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshr.u32 q1, q11, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q13, q13, q1 + vadd.u32 q4, q4, q5 + veor.u32 q13, q13, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q13, q13, q4 + + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vadd.u32 q6, q6, q14 + vst1.u32 {q13}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q12, #10 + veor.u32 q14, q14, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q14, q14, q1 + vadd.u32 q1, q6, q4 + veor.u32 q14, q14, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q14, q14, q1 + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vst1.u32 {q14}, [r1]! + vadd.u32 q5, q5, q15 + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshr.u32 q1, q13, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q15, q15, q1 + vadd.u32 q4, q4, q5 + veor.u32 q15, q15, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q15, q15, q4 + + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vadd.u32 q6, q6, q9 + vst1.u32 {q15}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q14, #10 + veor.u32 q9, q9, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q9, q9, q1 + vadd.u32 q1, q6, q4 + veor.u32 q9, q9, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q9, q9, q1 + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vst1.u32 {q9}, [r1]! + vadd.u32 q5, q5, q10 + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshr.u32 q1, q15, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q10, q10, q1 + vadd.u32 q4, q4, q5 + veor.u32 q10, q10, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q10, q10, q4 + + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vadd.u32 q6, q6, q11 + vst1.u32 {q10}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q9, #10 + veor.u32 q11, q11, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q11, q11, q1 + vadd.u32 q1, q6, q4 + veor.u32 q11, q11, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q11, q11, q1 + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vst1.u32 {q11}, [r1]! + vadd.u32 q5, q5, q12 + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshr.u32 q1, q10, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q12, q12, q1 + vadd.u32 q4, q4, q5 + veor.u32 q12, q12, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q12, q12, q4 + + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vadd.u32 q6, q6, q13 + vst1.u32 {q12}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q11, #10 + veor.u32 q13, q13, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q13, q13, q1 + vadd.u32 q1, q6, q4 + veor.u32 q13, q13, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q13, q13, q1 + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vst1.u32 {q13}, [r1]! + vadd.u32 q5, q5, q14 + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshr.u32 q1, q12, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q14, q14, q1 + vadd.u32 q4, q4, q5 + veor.u32 q14, q14, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q14, q14, q4 + + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vadd.u32 q6, q6, q15 + vst1.u32 {q14}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q13, #10 + veor.u32 q15, q15, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q15, q15, q1 + vadd.u32 q1, q6, q4 + veor.u32 q15, q15, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q15, q15, q1 + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vst1.u32 {q15}, [r1]! + vadd.u32 q5, q5, q9 + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshr.u32 q1, q14, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q9, q9, q1 + vadd.u32 q4, q4, q5 + veor.u32 q9, q9, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q9, q9, q4 + + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vadd.u32 q6, q6, q10 + vst1.u32 {q9}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q15, #10 + veor.u32 q10, q10, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q10, q10, q1 + vadd.u32 q1, q6, q4 + veor.u32 q10, q10, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q10, q10, q1 + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vst1.u32 {q10}, [r1]! + vadd.u32 q5, q5, q11 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshr.u32 q1, q9, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q11, q11, q1 + vadd.u32 q4, q4, q5 + veor.u32 q11, q11, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q11, q11, q4 + + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vadd.u32 q6, q6, q12 + vst1.u32 {q11}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q10, #10 + veor.u32 q12, q12, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q12, q12, q1 + vadd.u32 q1, q6, q4 + veor.u32 q12, q12, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q12, q12, q1 + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vst1.u32 {q12}, [r1]! + vadd.u32 q5, q5, q13 + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshr.u32 q1, q11, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q13, q13, q1 + vadd.u32 q4, q4, q5 + veor.u32 q13, q13, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q13, q13, q4 + + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vadd.u32 q6, q6, q14 + vst1.u32 {q13}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q12, #10 + veor.u32 q14, q14, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q14, q14, q1 + vadd.u32 q1, q6, q4 + veor.u32 q14, q14, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q14, q14, q1 + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vst1.u32 {q14}, [r1]! + vadd.u32 q5, q5, q15 + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshr.u32 q1, q13, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q15, q15, q1 + vadd.u32 q4, q4, q5 + veor.u32 q15, q15, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q15, q15, q4 + + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vadd.u32 q6, q6, q9 + vst1.u32 {q15}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q14, #10 + veor.u32 q9, q9, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q9, q9, q1 + vadd.u32 q1, q6, q4 + veor.u32 q9, q9, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q9, q9, q1 + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vst1.u32 {q9}, [r1]! + vadd.u32 q5, q5, q10 + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshr.u32 q1, q15, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q10, q10, q1 + vadd.u32 q4, q4, q5 + veor.u32 q10, q10, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q10, q10, q4 + + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vadd.u32 q6, q6, q11 + vst1.u32 {q10}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q9, #10 + veor.u32 q11, q11, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q11, q11, q1 + vadd.u32 q1, q6, q4 + veor.u32 q11, q11, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q11, q11, q1 + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vst1.u32 {q11}, [r1]! + vadd.u32 q5, q5, q12 + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshr.u32 q1, q10, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q12, q12, q1 + vadd.u32 q4, q4, q5 + veor.u32 q12, q12, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q12, q12, q4 + + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vadd.u32 q6, q6, q13 + vst1.u32 {q12}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q11, #10 + veor.u32 q13, q13, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q13, q13, q1 + vadd.u32 q1, q6, q4 + veor.u32 q13, q13, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q13, q13, q1 + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vst1.u32 {q13}, [r1]! + vadd.u32 q5, q5, q14 + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshr.u32 q1, q12, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q14, q14, q1 + vadd.u32 q4, q4, q5 + veor.u32 q14, q14, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q14, q14, q4 + + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vadd.u32 q6, q6, q15 + vst1.u32 {q14}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q13, #10 + veor.u32 q15, q15, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q15, q15, q1 + vadd.u32 q1, q6, q4 + veor.u32 q15, q15, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q15, q15, q1 + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vst1.u32 {q15}, [r1]! + vadd.u32 q5, q5, q9 + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q9, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshr.u32 q1, q14, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q9, q9, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q9, q9, q1 + vadd.u32 q4, q4, q5 + veor.u32 q9, q9, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q9, q9, q4 + + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vadd.u32 q6, q6, q10 + vst1.u32 {q9}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q15, #10 + veor.u32 q10, q10, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q10, q10, q1 + vadd.u32 q1, q6, q4 + veor.u32 q10, q10, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q10, q10, q1 + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vst1.u32 {q10}, [r1]! + vadd.u32 q5, q5, q11 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshr.u32 q1, q9, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q11, q11, q1 + vadd.u32 q4, q4, q5 + veor.u32 q11, q11, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q11, q11, q4 + + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vadd.u32 q6, q6, q12 + vst1.u32 {q11}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q10, #10 + veor.u32 q12, q12, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q12, q12, q1 + vadd.u32 q1, q6, q4 + veor.u32 q12, q12, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q12, q12, q1 + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vst1.u32 {q12}, [r1]! + vadd.u32 q5, q5, q13 + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshr.u32 q1, q11, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q13, q13, q1 + vadd.u32 q4, q4, q5 + veor.u32 q13, q13, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q13, q13, q4 + + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vadd.u32 q6, q6, q14 + vst1.u32 {q13}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q12, #10 + veor.u32 q14, q14, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q14, q14, q1 + vadd.u32 q1, q6, q4 + veor.u32 q14, q14, q0 + vadd.u32 q14, q14, q1 + vst1.u32 {q14}, [r1]! + bne sha256d_ms_4way_extend_coda2 + + vldmia r3!, {q4-q7} + vldmia r3, {q0-q3} + vswp q0, q4 + adr r3, sha256d_ms_4way_4k+3*16 + sub r1, r1, #(64-3)*16 + b sha256d_ms_4way_main_loop1 + + .align 4 +sha256d_ms_4way_4k: + .long 0x428a2f98, 0x428a2f98, 0x428a2f98, 0x428a2f98 + .long 0x71374491, 0x71374491, 0x71374491, 0x71374491 + .long 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf + .long 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5 + .long 0x3956c25b, 0x3956c25b, 0x3956c25b, 0x3956c25b + .long 0x59f111f1, 0x59f111f1, 0x59f111f1, 0x59f111f1 + .long 0x923f82a4, 0x923f82a4, 0x923f82a4, 0x923f82a4 + .long 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5 + .long 0xd807aa98, 0xd807aa98, 0xd807aa98, 0xd807aa98 + .long 0x12835b01, 0x12835b01, 0x12835b01, 0x12835b01 + .long 0x243185be, 0x243185be, 0x243185be, 0x243185be + .long 0x550c7dc3, 0x550c7dc3, 0x550c7dc3, 0x550c7dc3 + .long 0x72be5d74, 0x72be5d74, 0x72be5d74, 0x72be5d74 + .long 0x80deb1fe, 0x80deb1fe, 0x80deb1fe, 0x80deb1fe + .long 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7 + .long 0xc19bf174, 0xc19bf174, 0xc19bf174, 0xc19bf174 + .long 0xe49b69c1, 0xe49b69c1, 0xe49b69c1, 0xe49b69c1 + .long 0xefbe4786, 0xefbe4786, 0xefbe4786, 0xefbe4786 + .long 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6 + .long 0x240ca1cc, 0x240ca1cc, 0x240ca1cc, 0x240ca1cc + .long 0x2de92c6f, 0x2de92c6f, 0x2de92c6f, 0x2de92c6f + .long 0x4a7484aa, 0x4a7484aa, 0x4a7484aa, 0x4a7484aa + .long 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc + .long 0x76f988da, 0x76f988da, 0x76f988da, 0x76f988da + .long 0x983e5152, 0x983e5152, 0x983e5152, 0x983e5152 + .long 0xa831c66d, 0xa831c66d, 0xa831c66d, 0xa831c66d + .long 0xb00327c8, 0xb00327c8, 0xb00327c8, 0xb00327c8 + .long 0xbf597fc7, 0xbf597fc7, 0xbf597fc7, 0xbf597fc7 + .long 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3 + .long 0xd5a79147, 0xd5a79147, 0xd5a79147, 0xd5a79147 + .long 0x06ca6351, 0x06ca6351, 0x06ca6351, 0x06ca6351 + .long 0x14292967, 0x14292967, 0x14292967, 0x14292967 + .long 0x27b70a85, 0x27b70a85, 0x27b70a85, 0x27b70a85 + .long 0x2e1b2138, 0x2e1b2138, 0x2e1b2138, 0x2e1b2138 + .long 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc + .long 0x53380d13, 0x53380d13, 0x53380d13, 0x53380d13 + .long 0x650a7354, 0x650a7354, 0x650a7354, 0x650a7354 + .long 0x766a0abb, 0x766a0abb, 0x766a0abb, 0x766a0abb + .long 0x81c2c92e, 0x81c2c92e, 0x81c2c92e, 0x81c2c92e + .long 0x92722c85, 0x92722c85, 0x92722c85, 0x92722c85 + .long 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1 + .long 0xa81a664b, 0xa81a664b, 0xa81a664b, 0xa81a664b + .long 0xc24b8b70, 0xc24b8b70, 0xc24b8b70, 0xc24b8b70 + .long 0xc76c51a3, 0xc76c51a3, 0xc76c51a3, 0xc76c51a3 + .long 0xd192e819, 0xd192e819, 0xd192e819, 0xd192e819 + .long 0xd6990624, 0xd6990624, 0xd6990624, 0xd6990624 + .long 0xf40e3585, 0xf40e3585, 0xf40e3585, 0xf40e3585 + .long 0x106aa070, 0x106aa070, 0x106aa070, 0x106aa070 + .long 0x19a4c116, 0x19a4c116, 0x19a4c116, 0x19a4c116 + .long 0x1e376c08, 0x1e376c08, 0x1e376c08, 0x1e376c08 + .long 0x2748774c, 0x2748774c, 0x2748774c, 0x2748774c + .long 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5 + .long 0x391c0cb3, 0x391c0cb3, 0x391c0cb3, 0x391c0cb3 + .long 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a + .long 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f + .long 0x682e6ff3, 0x682e6ff3, 0x682e6ff3, 0x682e6ff3 + .long 0x748f82ee, 0x748f82ee, 0x748f82ee, 0x748f82ee + .long 0x78a5636f, 0x78a5636f, 0x78a5636f, 0x78a5636f + .long 0x84c87814, 0x84c87814, 0x84c87814, 0x84c87814 + .long 0x8cc70208, 0x8cc70208, 0x8cc70208, 0x8cc70208 + .long 0x90befffa, 0x90befffa, 0x90befffa, 0x90befffa + .long 0xa4506ceb, 0xa4506ceb, 0xa4506ceb, 0xa4506ceb + .long 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7 + .long 0xc67178f2, 0xc67178f2, 0xc67178f2, 0xc67178f2 + +sha256d_ms_4way_main_loop2: + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 +sha256d_ms_4way_main_loop1: + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + bne sha256d_ms_4way_finish + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q10 + vshl.u32 q12, q4, #32-5 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vadd.u32 q7, q7, q9 + veor.u32 q9, q0, q1 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + + vshr.u32 q11, q0, #11 + vshl.u32 q12, q0, #32-11 + veor.u32 q8, q0, q11 + vand.u32 q10, q0, q1 + veor.u32 q8, q8, q12 + vshr.u32 q11, q0, #20 + vshl.u32 q12, q0, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q2 + veor.u32 q8, q8, q12 + vadd.u32 q7, q7, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q7, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q7, q7, q3 + vadd.u32 q3, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q10 + vshl.u32 q12, q7, #32-5 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vadd.u32 q6, q6, q9 + veor.u32 q9, q3, q0 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + + vshr.u32 q11, q3, #11 + vshl.u32 q12, q3, #32-11 + veor.u32 q8, q3, q11 + vand.u32 q10, q3, q0 + veor.u32 q8, q8, q12 + vshr.u32 q11, q3, #20 + vshl.u32 q12, q3, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q1 + veor.u32 q8, q8, q12 + vadd.u32 q6, q6, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q6, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q6, q6, q2 + vadd.u32 q2, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q10 + vshl.u32 q12, q6, #32-5 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vadd.u32 q5, q5, q9 + veor.u32 q9, q2, q3 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + + vshr.u32 q11, q2, #11 + vshl.u32 q12, q2, #32-11 + veor.u32 q8, q2, q11 + vand.u32 q10, q2, q3 + veor.u32 q8, q8, q12 + vshr.u32 q11, q2, #20 + vshl.u32 q12, q2, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q0 + veor.u32 q8, q8, q12 + vadd.u32 q5, q5, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q5, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q5, q5, q1 + vadd.u32 q1, q9, q12 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q10 + vshl.u32 q12, q5, #32-5 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vadd.u32 q4, q4, q9 + veor.u32 q9, q1, q2 + vshr.u32 q11, q10, #6 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + + vshr.u32 q11, q1, #11 + vshl.u32 q12, q1, #32-11 + veor.u32 q8, q1, q11 + vand.u32 q10, q1, q2 + veor.u32 q8, q8, q12 + vshr.u32 q11, q1, #20 + vshl.u32 q12, q1, #32-20 + veor.u32 q8, q8, q11 + vand.u32 q9, q9, q3 + veor.u32 q8, q8, q12 + vadd.u32 q4, q4, q13 + veor.u32 q10, q10, q9 + vshr.u32 q11, q8, #2 + vshl.u32 q12, q8, #32-2 + vadd.u32 q9, q4, q10 + vadd.u32 q12, q12, q11 + vadd.u32 q4, q4, q0 + vadd.u32 q0, q9, q12 + + vldmia r2, {q8-q15} + vadd.u32 q0, q0, q8 + vadd.u32 q1, q1, q9 + vadd.u32 q2, q2, q10 + vadd.u32 q3, q3, q11 + vadd.u32 q4, q4, q12 + vadd.u32 q5, q5, q13 + vadd.u32 q6, q6, q14 + vadd.u32 q7, q7, q15 + + vldmia sp, {q8-q15} + sub r1, r1, #(64-18)*16 + vstmia r1, {q8-q10} + add r1, r1, #4*16 + vstmia r1, {q11-q13} + add r1, r1, #8*16 + vstmia r1, {q14-q15} + + vstmia sp, {q0-q7} + vmov.u32 q8, #0x80000000 + vmov.u32 q9, #0 + vmov.u32 q10, #0 + vmov.u32 q11, #0 + vmov.u32 q12, #0 + vmov.u32 q13, #0 + vmov.u32 q14, #0 + vmov.u32 q15, #0x00000100 + add r1, sp, #8*16 + vstmia r1!, {q8-q15} + adds r4, sp, #2*16 + + vshr.u32 q9, q1, #7 + vshl.u32 q2, q1, #32-7 + vshr.u32 q4, q1, #18 + veor.u32 q9, q9, q2 + vshl.u32 q3, q1, #32-18 + veor.u32 q9, q9, q4 + vshr.u32 q2, q1, #3 + veor.u32 q9, q9, q3 + vld1.u32 {q5}, [r4]! + veor.u32 q9, q9, q2 + vmov.u32 q7, #0x00a00000 + vadd.u32 q9, q9, q0 + vshr.u32 q10, q5, #7 + vshl.u32 q0, q5, #32-7 + vshl.u32 q3, q5, #32-18 + veor.u32 q10, q10, q0 + vshr.u32 q0, q5, #18 + veor.u32 q10, q10, q3 + vst1.u32 {q9}, [r1]! + vadd.u32 q3, q1, q7 + veor.u32 q10, q10, q0 + vshr.u32 q0, q5, #3 + vld1.u32 {q6}, [r4]! + veor.u32 q10, q10, q0 + + vshr.u32 q4, q9, #17 + vshl.u32 q0, q9, #32-17 + vadd.u32 q10, q10, q3 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q11, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshr.u32 q1, q9, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q11, q11, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q11, q11, q1 + vadd.u32 q4, q4, q5 + veor.u32 q11, q11, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q11, q11, q4 + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vst1.u32 {q10}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q12, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q10, #10 + veor.u32 q12, q12, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q12, q12, q0 + vshl.u32 q1, q5, #32-18 + vst1.u32 {q11}, [r1]! + veor.u32 q12, q12, q1 + vshr.u32 q0, q5, #3 + vadd.u32 q1, q6, q4 + veor.u32 q12, q12, q0 + + vshr.u32 q4, q11, #17 + vshl.u32 q0, q11, #32-17 + vadd.u32 q12, q12, q1 + vld1.u32 {q6}, [r4]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q13, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshr.u32 q1, q11, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q13, q13, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q13, q13, q1 + vadd.u32 q4, q4, q5 + veor.u32 q13, q13, q0 + vld1.u32 {q5}, [r4]! + vadd.u32 q13, q13, q4 + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vst1.u32 {q12}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q14, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q12, #10 + veor.u32 q14, q14, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q14, q14, q0 + vshl.u32 q1, q5, #32-18 + vst1.u32 {q13}, [r1]! + veor.u32 q14, q14, q1 + vshr.u32 q0, q5, #3 + vadd.u32 q1, q6, q4 + veor.u32 q14, q14, q0 + + vshr.u32 q4, q13, #17 + vshl.u32 q0, q13, #32-17 + vadd.u32 q14, q14, q1 + vld1.u32 {q6}, [r4]! + vadd.u32 q5, q5, q15 + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q15, q6, #7 + vshl.u32 q0, q6, #32-7 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshr.u32 q1, q13, #10 + vshr.u32 q0, q6, #18 + veor.u32 q4, q4, q1 + veor.u32 q15, q15, q0 + vshl.u32 q1, q6, #32-18 + vshr.u32 q0, q6, #3 + veor.u32 q15, q15, q1 + vadd.u32 q4, q4, q5 + veor.u32 q15, q15, q0 + vmov.u32 q5, #0x80000000 + vadd.u32 q15, q15, q4 + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vadd.u32 q6, q6, q9 + vst1.u32 {q14}, [r1]! + vmov.u32 q7, #0x11000000 + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + vadd.u32 q6, q6, q7 + vmov.u32 q2, #0x00002000 + veor.u32 q4, q4, q0 + vst1.u32 {q15}, [r1]! + veor.u32 q4, q4, q1 + vshr.u32 q1, q14, #10 + vadd.u32 q6, q6, q2 + veor.u32 q1, q4, q1 + add r4, r4, #8*16 + + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vadd.u32 q9, q6, q1 + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vst1.u32 {q9}, [r1]! + vadd.u32 q5, q5, q10 + veor.u32 q4, q4, q1 + vshr.u32 q1, q15, #10 + vshl.u32 q0, q9, #32-17 + veor.u32 q10, q4, q1 + vshr.u32 q4, q9, #17 + vadd.u32 q10, q10, q5 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #19 + vshl.u32 q1, q9, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q0, q9, #10 + veor.u32 q4, q4, q1 + vst1.u32 {q10}, [r1]! + veor.u32 q1, q4, q0 + + vshr.u32 q4, q10, #17 + vshl.u32 q0, q10, #32-17 + vadd.u32 q11, q11, q1 + veor.u32 q4, q4, q0 + vshr.u32 q0, q10, #19 + vshl.u32 q1, q10, #32-19 + veor.u32 q4, q4, q0 + vst1.u32 {q11}, [r1]! + veor.u32 q4, q4, q1 + vshr.u32 q1, q10, #10 + vshl.u32 q0, q11, #32-17 + veor.u32 q1, q4, q1 + vshr.u32 q4, q11, #17 + vadd.u32 q12, q12, q1 + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #19 + vshl.u32 q1, q11, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q0, q11, #10 + veor.u32 q4, q4, q1 + vst1.u32 {q12}, [r1]! + veor.u32 q1, q4, q0 + + vshr.u32 q4, q12, #17 + vshl.u32 q0, q12, #32-17 + vadd.u32 q13, q13, q1 + veor.u32 q4, q4, q0 + vshr.u32 q0, q12, #19 + vshl.u32 q1, q12, #32-19 + veor.u32 q4, q4, q0 + vst1.u32 {q13}, [r1]! + veor.u32 q4, q4, q1 + vshr.u32 q1, q12, #10 + vshl.u32 q0, q13, #32-17 + veor.u32 q1, q4, q1 + vshr.u32 q4, q13, #17 + vadd.u32 q14, q14, q1 + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #19 + vshl.u32 q1, q13, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q0, q13, #10 + veor.u32 q4, q4, q1 + vst1.u32 {q14}, [r1]! + veor.u32 q4, q4, q0 + vmov.u32 q6, #0x00000100 + vadd.u32 q15, q15, q4 + + vshr.u32 q4, q14, #17 + vshl.u32 q0, q14, #32-17 + vmov.u32 q7, #0x00400000 + vst1.u32 {q15}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q14, #19 + vshl.u32 q1, q14, #32-19 + veor.u32 q4, q4, q0 + vadd.u32 q9, q9, q7 + veor.u32 q4, q4, q1 + vshr.u32 q1, q14, #10 + vmov.u32 q2, #0x00000022 + veor.u32 q4, q4, q1 + vadd.u32 q9, q9, q2 + vld1.u32 {q5}, [r4]! + vadd.u32 q9, q9, q4 + vshr.u32 q4, q15, #17 + vshl.u32 q0, q15, #32-17 + vadd.u32 q6, q6, q10 + vst1.u32 {q9}, [r1]! + veor.u32 q4, q4, q0 + vshr.u32 q0, q15, #19 + vshl.u32 q1, q15, #32-19 + veor.u32 q4, q4, q0 + vshr.u32 q10, q5, #7 + veor.u32 q4, q4, q1 + vshl.u32 q0, q5, #32-7 + vshr.u32 q1, q15, #10 + veor.u32 q10, q10, q0 + vshr.u32 q0, q5, #18 + veor.u32 q4, q4, q1 + veor.u32 q10, q10, q0 + vshl.u32 q1, q5, #32-18 + vshr.u32 q0, q5, #3 + veor.u32 q10, q10, q1 + vadd.u32 q1, q6, q4 + veor.u32 q10, q10, q0 + vld1.u32 {q6}, [r4]! + vadd.u32 q10, q10, q1 + + b sha256d_ms_4way_extend_loop2 + + .align 4 +sha256d_ms_4way_4h: + .long 0x6a09e667, 0x6a09e667, 0x6a09e667, 0x6a09e667 + .long 0xbb67ae85, 0xbb67ae85, 0xbb67ae85, 0xbb67ae85 + .long 0x3c6ef372, 0x3c6ef372, 0x3c6ef372, 0x3c6ef372 + .long 0xa54ff53a, 0xa54ff53a, 0xa54ff53a, 0xa54ff53a + .long 0x510e527f, 0x510e527f, 0x510e527f, 0x510e527f + .long 0x9b05688c, 0x9b05688c, 0x9b05688c, 0x9b05688c + .long 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab + .long 0x5be0cd19, 0x5be0cd19, 0x5be0cd19, 0x5be0cd19 + +sha256d_ms_4way_extend_coda2: + adr r4, sha256d_ms_4way_4h + mov r1, sp + vldmia r4, {q0-q7} + vmov.u32 q15, q7 + sub r3, r3, #64*16 + b sha256d_ms_4way_main_loop2 + + +sha256d_ms_4way_finish: + vld1.u32 {q8}, [r1]! + vand.u32 q9, q4, q7 + vbic.u32 q10, q5, q7 + vshr.u32 q11, q7, #5 + vorr.u32 q10, q10, q9 + vshl.u32 q12, q7, #32-5 + vadd.u32 q6, q6, q10 + veor.u32 q10, q7, q11 + vshr.u32 q11, q7, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q7, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q6, q6, q8 + veor.u32 q10, q10, q12 + vld1.u32 {q9}, [r3]! + vadd.u32 q6, q6, q2 + vshr.u32 q11, q10, #6 + vadd.u32 q6, q6, q9 + vshl.u32 q13, q10, #32-6 + vadd.u32 q6, q6, q11 + vadd.u32 q6, q6, q13 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q7, q6 + vbic.u32 q10, q4, q6 + vshr.u32 q11, q6, #5 + vorr.u32 q10, q10, q9 + vshl.u32 q12, q6, #32-5 + vadd.u32 q5, q5, q10 + veor.u32 q10, q6, q11 + vshr.u32 q11, q6, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q6, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q5, q5, q8 + veor.u32 q10, q10, q12 + vld1.u32 {q9}, [r3]! + vadd.u32 q5, q5, q1 + vshr.u32 q11, q10, #6 + vadd.u32 q5, q5, q9 + vshl.u32 q13, q10, #32-6 + vadd.u32 q5, q5, q11 + vadd.u32 q5, q5, q13 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q6, q5 + vbic.u32 q10, q7, q5 + vshr.u32 q11, q5, #5 + vorr.u32 q10, q10, q9 + vshl.u32 q12, q5, #32-5 + vadd.u32 q4, q4, q10 + veor.u32 q10, q5, q11 + vshr.u32 q11, q5, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q5, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q4, q4, q8 + veor.u32 q10, q10, q12 + vld1.u32 {q9}, [r3]! + vadd.u32 q4, q4, q0 + vshr.u32 q11, q10, #6 + vadd.u32 q4, q4, q9 + vshl.u32 q13, q10, #32-6 + vadd.u32 q4, q4, q11 + vadd.u32 q4, q4, q13 + vld1.u32 {q8}, [r1]! + vand.u32 q9, q5, q4 + vbic.u32 q10, q6, q4 + vshr.u32 q11, q4, #5 + vorr.u32 q10, q10, q9 + vshl.u32 q12, q4, #32-5 + vadd.u32 q7, q7, q10 + veor.u32 q10, q4, q11 + vshr.u32 q11, q4, #19 + veor.u32 q10, q10, q12 + vshl.u32 q12, q4, #32-19 + veor.u32 q10, q10, q11 + vadd.u32 q7, q7, q8 + veor.u32 q10, q10, q12 + vld1.u32 {q9}, [r3]! + vadd.u32 q7, q7, q3 + vshr.u32 q11, q10, #6 + vadd.u32 q7, q7, q9 + vshl.u32 q13, q10, #32-6 + vadd.u32 q7, q7, q11 + vadd.u32 q7, q7, q13 + + vadd.u32 q7, q7, q15 + add r0, r0, #7*16 + vst1.u32 {q7}, [r0] + + mov sp, r12 + vpop {q4-q7} + ldmfd sp!, {r4, pc} + + + .text + .code 32 + .align 2 + .globl sha256_use_4way + .globl _sha256_use_4way +#ifdef __ELF__ + .type sha256_use_4way, %function +#endif +sha256_use_4way: +_sha256_use_4way: + mov r0, #1 + bx lr + +#endif /* __ARM_NEON__ */ + +#endif diff --git a/src/crypto/sha2-armv8.c b/src/crypto/sha2-armv8.c new file mode 100644 index 0000000000..2759a5f569 --- /dev/null +++ b/src/crypto/sha2-armv8.c @@ -0,0 +1,199 @@ +/* + * ARMv8-A Cryptography Extension SHA256 support functions + * + * Copyright (C) 2016, CriticalBlue Limited, All Rights Reserved + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * This file is part of mbed TLS (https://tls.mbed.org) + */ + + +#include +#include +#include + +static const uint32_t sha256_h[8] = { + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, + 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 +}; + +static const uint32_t K[] = { + 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, + 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, + 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, + 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, + 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, + 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, + 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, + 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, + 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, + 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, + 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, + 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, + 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, + 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, + 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, + 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2, +}; + +void sha256_init(uint32_t *state) +{ + memcpy(state, sha256_h, 32); +} + +#define Rx(T0, T1, K, W0, W1, W2, W3) \ + W0 = vsha256su0q_u32( W0, W1 ); \ + d2 = d0; \ + T1 = vaddq_u32( W1, K ); \ + d0 = vsha256hq_u32( d0, d1, T0 ); \ + d1 = vsha256h2q_u32( d1, d2, T0 ); \ + W0 = vsha256su1q_u32( W0, W2, W3 ); + +#define Ry(T0, T1, K, W1) \ + d2 = d0; \ + T1 = vaddq_u32( W1, K ); \ + d0 = vsha256hq_u32( d0, d1, T0 ); \ + d1 = vsha256h2q_u32( d1, d2, T0 ); + +#define Rz(T0) \ + d2 = d0; \ + d0 = vsha256hq_u32( d0, d1, T0 ); \ + d1 = vsha256h2q_u32( d1, d2, T0 ); + + +void sha256_transform(uint32_t state[8], const uint32_t data[16], int swap) +{ + /* declare variables */ + uint32x4_t k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, ka, kb, kc, kd, ke, kf; + uint32x4_t s0, s1; + uint32x4_t w0, w1, w2, w3; + uint32x4_t d0, d1, d2; + uint32x4_t t0, t1; + + /* set K0..Kf constants */ + k0 = vld1q_u32(&K[0x00]); + k1 = vld1q_u32(&K[0x04]); + k2 = vld1q_u32(&K[0x08]); + k3 = vld1q_u32(&K[0x0c]); + k4 = vld1q_u32(&K[0x10]); + k5 = vld1q_u32(&K[0x14]); + k6 = vld1q_u32(&K[0x18]); + k7 = vld1q_u32(&K[0x1c]); + k8 = vld1q_u32(&K[0x20]); + k9 = vld1q_u32(&K[0x24]); + ka = vld1q_u32(&K[0x28]); + kb = vld1q_u32(&K[0x2c]); + kc = vld1q_u32(&K[0x30]); + kd = vld1q_u32(&K[0x34]); + ke = vld1q_u32(&K[0x38]); + kf = vld1q_u32(&K[0x3c]); + + /* load state */ + s0 = vld1q_u32(&state[0]); + s1 = vld1q_u32(&state[4]); + + /* load message */ + w0 = vld1q_u32(data); + w1 = vld1q_u32(data + 4); + w2 = vld1q_u32(data + 8); + w3 = vld1q_u32(data + 12); + + if (swap) { + w0 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(w0))); + w1 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(w1))); + w2 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(w2))); + w3 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(w3))); + } + + /* initialize t0, d0, d1 */ + t0 = vaddq_u32(w0, k0); + d0 = s0; + d1 = s1; + + /* perform rounds of four */ + Rx(t0, t1, k1, w0, w1, w2, w3); + Rx(t1, t0, k2, w1, w2, w3, w0); + Rx(t0, t1, k3, w2, w3, w0, w1); + Rx(t1, t0, k4, w3, w0, w1, w2); + Rx(t0, t1, k5, w0, w1, w2, w3); + Rx(t1, t0, k6, w1, w2, w3, w0); + Rx(t0, t1, k7, w2, w3, w0, w1); + Rx(t1, t0, k8, w3, w0, w1, w2); + Rx(t0, t1, k9, w0, w1, w2, w3); + Rx(t1, t0, ka, w1, w2, w3, w0); + Rx(t0, t1, kb, w2, w3, w0, w1); + Rx(t1, t0, kc, w3, w0, w1, w2); + Ry(t0, t1, kd, w1); + Ry(t1, t0, ke, w2); + Ry(t0, t1, kf, w3); + Rz(t1); + + /* update state */ + s0 = vaddq_u32(s0, d0); + s1 = vaddq_u32(s1, d1); + + /* save state */ + vst1q_u32(&state[0], s0); + vst1q_u32(&state[4], s1); +} + +static const uint32_t sha256d_hash1[16] = { + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x80000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000100 +}; + +static inline uint32_t be32dec(const void *pp) +{ + const uint8_t *p = (uint8_t const *)pp; + return ((uint32_t)(p[3]) + ((uint32_t)(p[2]) << 8) + + ((uint32_t)(p[1]) << 16) + ((uint32_t)(p[0]) << 24)); +} + +static inline void be32enc(void *pp, uint32_t x) +{ + uint8_t *p = (uint8_t *)pp; + p[3] = x & 0xff; + p[2] = (x >> 8) & 0xff; + p[1] = (x >> 16) & 0xff; + p[0] = (x >> 24) & 0xff; +} + +extern void sha256d(unsigned char *hash, const unsigned char *data, int len) +{ + uint32_t S[16], T[16]; + int i, r; + + sha256_init(S); + for (r = len; r > -9; r -= 64) { + if (r < 64) + memset(T, 0, 64); + memcpy(T, data + len - r, r > 64 ? 64 : (r < 0 ? 0 : r)); + if (r >= 0 && r < 64) + ((unsigned char *)T)[r] = 0x80; + for (i = 0; i < 16; i++) + T[i] = be32dec(T + i); + if (r < 56) + T[15] = 8 * len; + sha256_transform(S, T, 0); + } + memcpy(S + 8, sha256d_hash1 + 8, 32); + sha256_init(T); + sha256_transform(T, S, 0); + for (i = 0; i < 8; i++) + be32enc((uint32_t *)hash + i, T[i]); +} + diff --git a/src/crypto/sha2-x64.S b/src/crypto/sha2-x64.S new file mode 100644 index 0000000000..3a255f69d0 --- /dev/null +++ b/src/crypto/sha2-x64.S @@ -0,0 +1,29734 @@ +/* + * Copyright 2012-2015 pooler@litecoinpool.org + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. See COPYING for more details. + */ + + +#if defined(__linux__) && defined(__ELF__) + .section .note.GNU-stack,"",%progbits +#endif + +#if defined(__x86_64__) + + .data + .p2align 4 +sha256_h: + .long 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a + .long 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 + + .data + .p2align 6 +sha256_k: + .long 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5 + .long 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5 + .long 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3 + .long 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174 + .long 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc + .long 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da + .long 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7 + .long 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967 + .long 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13 + .long 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85 + .long 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3 + .long 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070 + .long 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5 + .long 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3 + .long 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208 + .long 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + +bswap_xmm_mask: + .long 0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f + + + + + + .text + .p2align 6 +sha256_transform_sse2: + pushq %rbx + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + pushq %rsi + subq $5*16, %rsp + movdqa %xmm6, 1*16(%rsp) + movdqa %xmm7, 2*16(%rsp) + movdqa %xmm8, 3*16(%rsp) + movdqa %xmm9, 4*16(%rsp) + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx +#else + subq $16, %rsp +#endif + + movl 0*4(%rdi), %r8d + movl 1*4(%rdi), %r9d + movl 2*4(%rdi), %r10d + movl 3*4(%rdi), %r11d + movl 4*4(%rdi), %r12d + movl 5*4(%rdi), %r13d + movl 6*4(%rdi), %r14d + movl 7*4(%rdi), %r15d + + testq %rdx, %rdx + jnz sha256_transform_sse2_swap + + movdqu 0*16(%rsi), %xmm0 + movdqu 1*16(%rsi), %xmm1 + movdqu 2*16(%rsi), %xmm2 + movdqu 3*16(%rsi), %xmm3 + jmp sha256_transform_sse2_core + +sha256_transform_sse2_swap: + movdqu 0*16(%rsi), %xmm0 + movdqu 1*16(%rsi), %xmm1 + movdqu 2*16(%rsi), %xmm2 + movdqu 3*16(%rsi), %xmm3 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm1, %xmm1 + pshuflw $0xb1, %xmm2, %xmm2 + pshuflw $0xb1, %xmm3, %xmm3 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm1, %xmm1 + pshufhw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm3, %xmm3 + movdqa %xmm0, %xmm4 + movdqa %xmm1, %xmm5 + movdqa %xmm2, %xmm6 + movdqa %xmm3, %xmm7 + psrlw $8, %xmm4 + psrlw $8, %xmm5 + psrlw $8, %xmm6 + psrlw $8, %xmm7 + psllw $8, %xmm0 + psllw $8, %xmm1 + psllw $8, %xmm2 + psllw $8, %xmm3 + pxor %xmm4, %xmm0 + pxor %xmm5, %xmm1 + pxor %xmm6, %xmm2 + pxor %xmm7, %xmm3 + +sha256_transform_sse2_core: + leaq sha256_k(%rip), %rdx + movq $48, %rsi + .p2align 4 +sha256_transform_sse2_loop: + movdqa 0*16(%rdx), %xmm9 + paddd %xmm0, %xmm9 + movdqa %xmm9, (%rsp) + movdqa %xmm3, %xmm4 + movl %r12d, %eax + movdqa %xmm2, %xmm6 + rorl $(25-11), %eax + movl %r8d, %ebx + pslldq $12, %xmm4 + rorl $(22-13), %ebx + psrldq $4, %xmm6 + xorl %r12d, %eax + movl %r13d, %ecx + rorl $(11-6), %eax + pxor %xmm6, %xmm4 + movdqa %xmm1, %xmm5 + xorl %r8d, %ebx + xorl %r14d, %ecx + xorl %r12d, %eax + paddd %xmm0, %xmm4 + movdqa %xmm0, %xmm7 + andl %r12d, %ecx + rorl $(13-2), %ebx + xorl %r8d, %ebx + pslldq $12, %xmm5 + psrldq $4, %xmm7 + rorl $6, %eax + xorl %r14d, %ecx + pxor %xmm7, %xmm5 + rorl $2, %ebx + addl %eax, %ecx + addl (%rsp) , %ecx + movdqa %xmm5, %xmm6 + movl %r8d, %eax + addl %ecx, %r15d + movl %r8d, %ecx + movdqa %xmm5, %xmm7 + orl %r10d, %eax + addl %r15d, %r11d + andl %r10d, %ecx + pslld $(32-7), %xmm5 + psrld $7, %xmm6 + andl %r9d, %eax + addl %ebx, %r15d + orl %ecx, %eax + por %xmm6, %xmm5 + addl %eax, %r15d + + movl %r11d, %eax + movdqa %xmm7, %xmm6 + movl %r15d, %ebx + rorl $(25-11), %eax + xorl %r11d, %eax + movdqa %xmm7, %xmm8 + movl %r12d, %ecx + rorl $(22-13), %ebx + xorl %r15d, %ebx + pslld $(32-18), %xmm7 + rorl $(11-6), %eax + xorl %r13d, %ecx + rorl $(13-2), %ebx + psrld $18, %xmm6 + xorl %r11d, %eax + andl %r11d, %ecx + rorl $6, %eax + pxor %xmm7, %xmm5 + xorl %r15d, %ebx + xorl %r13d, %ecx + psrld $3, %xmm8 + addl %eax, %ecx + addl 1*4(%rsp), %ecx + rorl $2, %ebx + pxor %xmm6, %xmm5 + movl %r15d, %eax + addl %ecx, %r14d + movl %r15d, %ecx + pxor %xmm8, %xmm5 + orl %r9d, %eax + addl %r14d, %r10d + andl %r9d, %ecx + pshufd $0xfa, %xmm3, %xmm6 + andl %r8d, %eax + addl %ebx, %r14d + paddd %xmm5, %xmm4 + orl %ecx, %eax + addl %eax, %r14d + + movl %r10d, %eax + movdqa %xmm6, %xmm7 + movl %r14d, %ebx + rorl $(25-11), %eax + xorl %r10d, %eax + movdqa %xmm6, %xmm8 + rorl $(22-13), %ebx + movl %r11d, %ecx + xorl %r14d, %ebx + psrlq $17, %xmm6 + psrlq $19, %xmm7 + rorl $(11-6), %eax + xorl %r12d, %ecx + xorl %r10d, %eax + psrld $10, %xmm8 + pxor %xmm7, %xmm6 + andl %r10d, %ecx + rorl $(13-2), %ebx + xorl %r14d, %ebx + pxor %xmm6, %xmm8 + xorl %r12d, %ecx + rorl $6, %eax + addl %eax, %ecx + pshufd $0x8f, %xmm8, %xmm8 + rorl $2, %ebx + addl 2*4(%rsp), %ecx + movl %r14d, %eax + psrldq $8, %xmm8 + addl %ecx, %r13d + movl %r14d, %ecx + orl %r8d, %eax + paddd %xmm8, %xmm4 + addl %r13d, %r9d + andl %r8d, %ecx + andl %r15d, %eax + pshufd $0x50, %xmm4, %xmm6 + addl %ebx, %r13d + orl %ecx, %eax + addl %eax, %r13d + + movdqa %xmm6, %xmm7 + movl %r9d, %eax + rorl $(25-11), %eax + movl %r13d, %ebx + movdqa %xmm6, %xmm0 + rorl $(22-13), %ebx + xorl %r9d, %eax + movl %r10d, %ecx + psrlq $17, %xmm6 + rorl $(11-6), %eax + xorl %r13d, %ebx + xorl %r11d, %ecx + psrlq $19, %xmm7 + xorl %r9d, %eax + andl %r9d, %ecx + rorl $(13-2), %ebx + psrld $10, %xmm0 + xorl %r13d, %ebx + rorl $6, %eax + pxor %xmm7, %xmm6 + xorl %r11d, %ecx + rorl $2, %ebx + addl %eax, %ecx + pxor %xmm6, %xmm0 + addl 3*4(%rsp), %ecx + movl %r13d, %eax + addl %ecx, %r12d + pshufd $0xf8, %xmm0, %xmm0 + movl %r13d, %ecx + orl %r15d, %eax + addl %r12d, %r8d + pslldq $8, %xmm0 + andl %r15d, %ecx + andl %r14d, %eax + paddd %xmm4, %xmm0 + addl %ebx, %r12d + orl %ecx, %eax + addl %eax, %r12d + movdqa 1*16(%rdx), %xmm9 + paddd %xmm1, %xmm9 + movdqa %xmm9, (%rsp) + movdqa %xmm0, %xmm4 + movl %r8d, %eax + movdqa %xmm3, %xmm6 + rorl $(25-11), %eax + movl %r12d, %ebx + pslldq $12, %xmm4 + rorl $(22-13), %ebx + psrldq $4, %xmm6 + xorl %r8d, %eax + movl %r9d, %ecx + rorl $(11-6), %eax + pxor %xmm6, %xmm4 + movdqa %xmm2, %xmm5 + xorl %r12d, %ebx + xorl %r10d, %ecx + xorl %r8d, %eax + paddd %xmm1, %xmm4 + movdqa %xmm1, %xmm7 + andl %r8d, %ecx + rorl $(13-2), %ebx + xorl %r12d, %ebx + pslldq $12, %xmm5 + psrldq $4, %xmm7 + rorl $6, %eax + xorl %r10d, %ecx + pxor %xmm7, %xmm5 + rorl $2, %ebx + addl %eax, %ecx + addl (%rsp) , %ecx + movdqa %xmm5, %xmm6 + movl %r12d, %eax + addl %ecx, %r11d + movl %r12d, %ecx + movdqa %xmm5, %xmm7 + orl %r14d, %eax + addl %r11d, %r15d + andl %r14d, %ecx + pslld $(32-7), %xmm5 + psrld $7, %xmm6 + andl %r13d, %eax + addl %ebx, %r11d + orl %ecx, %eax + por %xmm6, %xmm5 + addl %eax, %r11d + + movl %r15d, %eax + movdqa %xmm7, %xmm6 + movl %r11d, %ebx + rorl $(25-11), %eax + xorl %r15d, %eax + movdqa %xmm7, %xmm8 + movl %r8d, %ecx + rorl $(22-13), %ebx + xorl %r11d, %ebx + pslld $(32-18), %xmm7 + rorl $(11-6), %eax + xorl %r9d, %ecx + rorl $(13-2), %ebx + psrld $18, %xmm6 + xorl %r15d, %eax + andl %r15d, %ecx + rorl $6, %eax + pxor %xmm7, %xmm5 + xorl %r11d, %ebx + xorl %r9d, %ecx + psrld $3, %xmm8 + addl %eax, %ecx + addl 1*4(%rsp), %ecx + rorl $2, %ebx + pxor %xmm6, %xmm5 + movl %r11d, %eax + addl %ecx, %r10d + movl %r11d, %ecx + pxor %xmm8, %xmm5 + orl %r13d, %eax + addl %r10d, %r14d + andl %r13d, %ecx + pshufd $0xfa, %xmm0, %xmm6 + andl %r12d, %eax + addl %ebx, %r10d + paddd %xmm5, %xmm4 + orl %ecx, %eax + addl %eax, %r10d + + movl %r14d, %eax + movdqa %xmm6, %xmm7 + movl %r10d, %ebx + rorl $(25-11), %eax + xorl %r14d, %eax + movdqa %xmm6, %xmm8 + rorl $(22-13), %ebx + movl %r15d, %ecx + xorl %r10d, %ebx + psrlq $17, %xmm6 + psrlq $19, %xmm7 + rorl $(11-6), %eax + xorl %r8d, %ecx + xorl %r14d, %eax + psrld $10, %xmm8 + pxor %xmm7, %xmm6 + andl %r14d, %ecx + rorl $(13-2), %ebx + xorl %r10d, %ebx + pxor %xmm6, %xmm8 + xorl %r8d, %ecx + rorl $6, %eax + addl %eax, %ecx + pshufd $0x8f, %xmm8, %xmm8 + rorl $2, %ebx + addl 2*4(%rsp), %ecx + movl %r10d, %eax + psrldq $8, %xmm8 + addl %ecx, %r9d + movl %r10d, %ecx + orl %r12d, %eax + paddd %xmm8, %xmm4 + addl %r9d, %r13d + andl %r12d, %ecx + andl %r11d, %eax + pshufd $0x50, %xmm4, %xmm6 + addl %ebx, %r9d + orl %ecx, %eax + addl %eax, %r9d + + movdqa %xmm6, %xmm7 + movl %r13d, %eax + rorl $(25-11), %eax + movl %r9d, %ebx + movdqa %xmm6, %xmm1 + rorl $(22-13), %ebx + xorl %r13d, %eax + movl %r14d, %ecx + psrlq $17, %xmm6 + rorl $(11-6), %eax + xorl %r9d, %ebx + xorl %r15d, %ecx + psrlq $19, %xmm7 + xorl %r13d, %eax + andl %r13d, %ecx + rorl $(13-2), %ebx + psrld $10, %xmm1 + xorl %r9d, %ebx + rorl $6, %eax + pxor %xmm7, %xmm6 + xorl %r15d, %ecx + rorl $2, %ebx + addl %eax, %ecx + pxor %xmm6, %xmm1 + addl 3*4(%rsp), %ecx + movl %r9d, %eax + addl %ecx, %r8d + pshufd $0xf8, %xmm1, %xmm1 + movl %r9d, %ecx + orl %r11d, %eax + addl %r8d, %r12d + pslldq $8, %xmm1 + andl %r11d, %ecx + andl %r10d, %eax + paddd %xmm4, %xmm1 + addl %ebx, %r8d + orl %ecx, %eax + addl %eax, %r8d + movdqa 2*16(%rdx), %xmm9 + paddd %xmm2, %xmm9 + movdqa %xmm9, (%rsp) + movdqa %xmm1, %xmm4 + movl %r12d, %eax + movdqa %xmm0, %xmm6 + rorl $(25-11), %eax + movl %r8d, %ebx + pslldq $12, %xmm4 + rorl $(22-13), %ebx + psrldq $4, %xmm6 + xorl %r12d, %eax + movl %r13d, %ecx + rorl $(11-6), %eax + pxor %xmm6, %xmm4 + movdqa %xmm3, %xmm5 + xorl %r8d, %ebx + xorl %r14d, %ecx + xorl %r12d, %eax + paddd %xmm2, %xmm4 + movdqa %xmm2, %xmm7 + andl %r12d, %ecx + rorl $(13-2), %ebx + xorl %r8d, %ebx + pslldq $12, %xmm5 + psrldq $4, %xmm7 + rorl $6, %eax + xorl %r14d, %ecx + pxor %xmm7, %xmm5 + rorl $2, %ebx + addl %eax, %ecx + addl (%rsp) , %ecx + movdqa %xmm5, %xmm6 + movl %r8d, %eax + addl %ecx, %r15d + movl %r8d, %ecx + movdqa %xmm5, %xmm7 + orl %r10d, %eax + addl %r15d, %r11d + andl %r10d, %ecx + pslld $(32-7), %xmm5 + psrld $7, %xmm6 + andl %r9d, %eax + addl %ebx, %r15d + orl %ecx, %eax + por %xmm6, %xmm5 + addl %eax, %r15d + + movl %r11d, %eax + movdqa %xmm7, %xmm6 + movl %r15d, %ebx + rorl $(25-11), %eax + xorl %r11d, %eax + movdqa %xmm7, %xmm8 + movl %r12d, %ecx + rorl $(22-13), %ebx + xorl %r15d, %ebx + pslld $(32-18), %xmm7 + rorl $(11-6), %eax + xorl %r13d, %ecx + rorl $(13-2), %ebx + psrld $18, %xmm6 + xorl %r11d, %eax + andl %r11d, %ecx + rorl $6, %eax + pxor %xmm7, %xmm5 + xorl %r15d, %ebx + xorl %r13d, %ecx + psrld $3, %xmm8 + addl %eax, %ecx + addl 1*4(%rsp), %ecx + rorl $2, %ebx + pxor %xmm6, %xmm5 + movl %r15d, %eax + addl %ecx, %r14d + movl %r15d, %ecx + pxor %xmm8, %xmm5 + orl %r9d, %eax + addl %r14d, %r10d + andl %r9d, %ecx + pshufd $0xfa, %xmm1, %xmm6 + andl %r8d, %eax + addl %ebx, %r14d + paddd %xmm5, %xmm4 + orl %ecx, %eax + addl %eax, %r14d + + movl %r10d, %eax + movdqa %xmm6, %xmm7 + movl %r14d, %ebx + rorl $(25-11), %eax + xorl %r10d, %eax + movdqa %xmm6, %xmm8 + rorl $(22-13), %ebx + movl %r11d, %ecx + xorl %r14d, %ebx + psrlq $17, %xmm6 + psrlq $19, %xmm7 + rorl $(11-6), %eax + xorl %r12d, %ecx + xorl %r10d, %eax + psrld $10, %xmm8 + pxor %xmm7, %xmm6 + andl %r10d, %ecx + rorl $(13-2), %ebx + xorl %r14d, %ebx + pxor %xmm6, %xmm8 + xorl %r12d, %ecx + rorl $6, %eax + addl %eax, %ecx + pshufd $0x8f, %xmm8, %xmm8 + rorl $2, %ebx + addl 2*4(%rsp), %ecx + movl %r14d, %eax + psrldq $8, %xmm8 + addl %ecx, %r13d + movl %r14d, %ecx + orl %r8d, %eax + paddd %xmm8, %xmm4 + addl %r13d, %r9d + andl %r8d, %ecx + andl %r15d, %eax + pshufd $0x50, %xmm4, %xmm6 + addl %ebx, %r13d + orl %ecx, %eax + addl %eax, %r13d + + movdqa %xmm6, %xmm7 + movl %r9d, %eax + rorl $(25-11), %eax + movl %r13d, %ebx + movdqa %xmm6, %xmm2 + rorl $(22-13), %ebx + xorl %r9d, %eax + movl %r10d, %ecx + psrlq $17, %xmm6 + rorl $(11-6), %eax + xorl %r13d, %ebx + xorl %r11d, %ecx + psrlq $19, %xmm7 + xorl %r9d, %eax + andl %r9d, %ecx + rorl $(13-2), %ebx + psrld $10, %xmm2 + xorl %r13d, %ebx + rorl $6, %eax + pxor %xmm7, %xmm6 + xorl %r11d, %ecx + rorl $2, %ebx + addl %eax, %ecx + pxor %xmm6, %xmm2 + addl 3*4(%rsp), %ecx + movl %r13d, %eax + addl %ecx, %r12d + pshufd $0xf8, %xmm2, %xmm2 + movl %r13d, %ecx + orl %r15d, %eax + addl %r12d, %r8d + pslldq $8, %xmm2 + andl %r15d, %ecx + andl %r14d, %eax + paddd %xmm4, %xmm2 + addl %ebx, %r12d + orl %ecx, %eax + addl %eax, %r12d + movdqa 3*16(%rdx), %xmm9 + paddd %xmm3, %xmm9 + movdqa %xmm9, (%rsp) + addq $4*16, %rdx + movdqa %xmm2, %xmm4 + movl %r8d, %eax + movdqa %xmm1, %xmm6 + rorl $(25-11), %eax + movl %r12d, %ebx + pslldq $12, %xmm4 + rorl $(22-13), %ebx + psrldq $4, %xmm6 + xorl %r8d, %eax + movl %r9d, %ecx + rorl $(11-6), %eax + pxor %xmm6, %xmm4 + movdqa %xmm0, %xmm5 + xorl %r12d, %ebx + xorl %r10d, %ecx + xorl %r8d, %eax + paddd %xmm3, %xmm4 + movdqa %xmm3, %xmm7 + andl %r8d, %ecx + rorl $(13-2), %ebx + xorl %r12d, %ebx + pslldq $12, %xmm5 + psrldq $4, %xmm7 + rorl $6, %eax + xorl %r10d, %ecx + pxor %xmm7, %xmm5 + rorl $2, %ebx + addl %eax, %ecx + addl (%rsp) , %ecx + movdqa %xmm5, %xmm6 + movl %r12d, %eax + addl %ecx, %r11d + movl %r12d, %ecx + movdqa %xmm5, %xmm7 + orl %r14d, %eax + addl %r11d, %r15d + andl %r14d, %ecx + pslld $(32-7), %xmm5 + psrld $7, %xmm6 + andl %r13d, %eax + addl %ebx, %r11d + orl %ecx, %eax + por %xmm6, %xmm5 + addl %eax, %r11d + + movl %r15d, %eax + movdqa %xmm7, %xmm6 + movl %r11d, %ebx + rorl $(25-11), %eax + xorl %r15d, %eax + movdqa %xmm7, %xmm8 + movl %r8d, %ecx + rorl $(22-13), %ebx + xorl %r11d, %ebx + pslld $(32-18), %xmm7 + rorl $(11-6), %eax + xorl %r9d, %ecx + rorl $(13-2), %ebx + psrld $18, %xmm6 + xorl %r15d, %eax + andl %r15d, %ecx + rorl $6, %eax + pxor %xmm7, %xmm5 + xorl %r11d, %ebx + xorl %r9d, %ecx + psrld $3, %xmm8 + addl %eax, %ecx + addl 1*4(%rsp), %ecx + rorl $2, %ebx + pxor %xmm6, %xmm5 + movl %r11d, %eax + addl %ecx, %r10d + movl %r11d, %ecx + pxor %xmm8, %xmm5 + orl %r13d, %eax + addl %r10d, %r14d + andl %r13d, %ecx + pshufd $0xfa, %xmm2, %xmm6 + andl %r12d, %eax + addl %ebx, %r10d + paddd %xmm5, %xmm4 + orl %ecx, %eax + addl %eax, %r10d + + movl %r14d, %eax + movdqa %xmm6, %xmm7 + movl %r10d, %ebx + rorl $(25-11), %eax + xorl %r14d, %eax + movdqa %xmm6, %xmm8 + rorl $(22-13), %ebx + movl %r15d, %ecx + xorl %r10d, %ebx + psrlq $17, %xmm6 + psrlq $19, %xmm7 + rorl $(11-6), %eax + xorl %r8d, %ecx + xorl %r14d, %eax + psrld $10, %xmm8 + pxor %xmm7, %xmm6 + andl %r14d, %ecx + rorl $(13-2), %ebx + xorl %r10d, %ebx + pxor %xmm6, %xmm8 + xorl %r8d, %ecx + rorl $6, %eax + addl %eax, %ecx + pshufd $0x8f, %xmm8, %xmm8 + rorl $2, %ebx + addl 2*4(%rsp), %ecx + movl %r10d, %eax + psrldq $8, %xmm8 + addl %ecx, %r9d + movl %r10d, %ecx + orl %r12d, %eax + paddd %xmm8, %xmm4 + addl %r9d, %r13d + andl %r12d, %ecx + andl %r11d, %eax + pshufd $0x50, %xmm4, %xmm6 + addl %ebx, %r9d + orl %ecx, %eax + addl %eax, %r9d + + movdqa %xmm6, %xmm7 + movl %r13d, %eax + rorl $(25-11), %eax + movl %r9d, %ebx + movdqa %xmm6, %xmm3 + rorl $(22-13), %ebx + xorl %r13d, %eax + movl %r14d, %ecx + psrlq $17, %xmm6 + rorl $(11-6), %eax + xorl %r9d, %ebx + xorl %r15d, %ecx + psrlq $19, %xmm7 + xorl %r13d, %eax + andl %r13d, %ecx + rorl $(13-2), %ebx + psrld $10, %xmm3 + xorl %r9d, %ebx + rorl $6, %eax + pxor %xmm7, %xmm6 + xorl %r15d, %ecx + rorl $2, %ebx + addl %eax, %ecx + pxor %xmm6, %xmm3 + addl 3*4(%rsp), %ecx + movl %r9d, %eax + addl %ecx, %r8d + pshufd $0xf8, %xmm3, %xmm3 + movl %r9d, %ecx + orl %r11d, %eax + addl %r8d, %r12d + pslldq $8, %xmm3 + andl %r11d, %ecx + andl %r10d, %eax + paddd %xmm4, %xmm3 + addl %ebx, %r8d + orl %ecx, %eax + addl %eax, %r8d + + subq $16, %rsi + jne sha256_transform_sse2_loop + + paddd 0*16(%rdx), %xmm0 + movdqa %xmm0, (%rsp) + movl %r12d, %eax + rorl $(25-11), %eax + movl %r8d, %ebx + xorl %r12d, %eax + rorl $(22-13), %ebx + movl %r13d, %ecx + xorl %r8d, %ebx + rorl $(11-6), %eax + xorl %r14d, %ecx + xorl %r12d, %eax + rorl $(13-2), %ebx + andl %r12d, %ecx + xorl %r8d, %ebx + rorl $6, %eax + xorl %r14d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 0*4(%rsp), %ecx + movl %r8d, %eax + addl %ecx, %r15d + movl %r8d, %ecx + orl %r10d, %eax + addl %r15d, %r11d + andl %r10d, %ecx + andl %r9d, %eax + addl %ebx, %r15d + orl %ecx, %eax + addl %eax, %r15d + movl %r11d, %eax + rorl $(25-11), %eax + movl %r15d, %ebx + xorl %r11d, %eax + rorl $(22-13), %ebx + movl %r12d, %ecx + xorl %r15d, %ebx + rorl $(11-6), %eax + xorl %r13d, %ecx + xorl %r11d, %eax + rorl $(13-2), %ebx + andl %r11d, %ecx + xorl %r15d, %ebx + rorl $6, %eax + xorl %r13d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 1*4(%rsp), %ecx + movl %r15d, %eax + addl %ecx, %r14d + movl %r15d, %ecx + orl %r9d, %eax + addl %r14d, %r10d + andl %r9d, %ecx + andl %r8d, %eax + addl %ebx, %r14d + orl %ecx, %eax + addl %eax, %r14d + movl %r10d, %eax + rorl $(25-11), %eax + movl %r14d, %ebx + xorl %r10d, %eax + rorl $(22-13), %ebx + movl %r11d, %ecx + xorl %r14d, %ebx + rorl $(11-6), %eax + xorl %r12d, %ecx + xorl %r10d, %eax + rorl $(13-2), %ebx + andl %r10d, %ecx + xorl %r14d, %ebx + rorl $6, %eax + xorl %r12d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 2*4(%rsp), %ecx + movl %r14d, %eax + addl %ecx, %r13d + movl %r14d, %ecx + orl %r8d, %eax + addl %r13d, %r9d + andl %r8d, %ecx + andl %r15d, %eax + addl %ebx, %r13d + orl %ecx, %eax + addl %eax, %r13d + movl %r9d, %eax + rorl $(25-11), %eax + movl %r13d, %ebx + xorl %r9d, %eax + rorl $(22-13), %ebx + movl %r10d, %ecx + xorl %r13d, %ebx + rorl $(11-6), %eax + xorl %r11d, %ecx + xorl %r9d, %eax + rorl $(13-2), %ebx + andl %r9d, %ecx + xorl %r13d, %ebx + rorl $6, %eax + xorl %r11d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 3*4(%rsp), %ecx + movl %r13d, %eax + addl %ecx, %r12d + movl %r13d, %ecx + orl %r15d, %eax + addl %r12d, %r8d + andl %r15d, %ecx + andl %r14d, %eax + addl %ebx, %r12d + orl %ecx, %eax + addl %eax, %r12d + paddd 1*16(%rdx), %xmm1 + movdqa %xmm1, (%rsp) + movl %r8d, %eax + rorl $(25-11), %eax + movl %r12d, %ebx + xorl %r8d, %eax + rorl $(22-13), %ebx + movl %r9d, %ecx + xorl %r12d, %ebx + rorl $(11-6), %eax + xorl %r10d, %ecx + xorl %r8d, %eax + rorl $(13-2), %ebx + andl %r8d, %ecx + xorl %r12d, %ebx + rorl $6, %eax + xorl %r10d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 0*4(%rsp), %ecx + movl %r12d, %eax + addl %ecx, %r11d + movl %r12d, %ecx + orl %r14d, %eax + addl %r11d, %r15d + andl %r14d, %ecx + andl %r13d, %eax + addl %ebx, %r11d + orl %ecx, %eax + addl %eax, %r11d + movl %r15d, %eax + rorl $(25-11), %eax + movl %r11d, %ebx + xorl %r15d, %eax + rorl $(22-13), %ebx + movl %r8d, %ecx + xorl %r11d, %ebx + rorl $(11-6), %eax + xorl %r9d, %ecx + xorl %r15d, %eax + rorl $(13-2), %ebx + andl %r15d, %ecx + xorl %r11d, %ebx + rorl $6, %eax + xorl %r9d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 1*4(%rsp), %ecx + movl %r11d, %eax + addl %ecx, %r10d + movl %r11d, %ecx + orl %r13d, %eax + addl %r10d, %r14d + andl %r13d, %ecx + andl %r12d, %eax + addl %ebx, %r10d + orl %ecx, %eax + addl %eax, %r10d + movl %r14d, %eax + rorl $(25-11), %eax + movl %r10d, %ebx + xorl %r14d, %eax + rorl $(22-13), %ebx + movl %r15d, %ecx + xorl %r10d, %ebx + rorl $(11-6), %eax + xorl %r8d, %ecx + xorl %r14d, %eax + rorl $(13-2), %ebx + andl %r14d, %ecx + xorl %r10d, %ebx + rorl $6, %eax + xorl %r8d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 2*4(%rsp), %ecx + movl %r10d, %eax + addl %ecx, %r9d + movl %r10d, %ecx + orl %r12d, %eax + addl %r9d, %r13d + andl %r12d, %ecx + andl %r11d, %eax + addl %ebx, %r9d + orl %ecx, %eax + addl %eax, %r9d + movl %r13d, %eax + rorl $(25-11), %eax + movl %r9d, %ebx + xorl %r13d, %eax + rorl $(22-13), %ebx + movl %r14d, %ecx + xorl %r9d, %ebx + rorl $(11-6), %eax + xorl %r15d, %ecx + xorl %r13d, %eax + rorl $(13-2), %ebx + andl %r13d, %ecx + xorl %r9d, %ebx + rorl $6, %eax + xorl %r15d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 3*4(%rsp), %ecx + movl %r9d, %eax + addl %ecx, %r8d + movl %r9d, %ecx + orl %r11d, %eax + addl %r8d, %r12d + andl %r11d, %ecx + andl %r10d, %eax + addl %ebx, %r8d + orl %ecx, %eax + addl %eax, %r8d + paddd 2*16(%rdx), %xmm2 + movdqa %xmm2, (%rsp) + movl %r12d, %eax + rorl $(25-11), %eax + movl %r8d, %ebx + xorl %r12d, %eax + rorl $(22-13), %ebx + movl %r13d, %ecx + xorl %r8d, %ebx + rorl $(11-6), %eax + xorl %r14d, %ecx + xorl %r12d, %eax + rorl $(13-2), %ebx + andl %r12d, %ecx + xorl %r8d, %ebx + rorl $6, %eax + xorl %r14d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 0*4(%rsp), %ecx + movl %r8d, %eax + addl %ecx, %r15d + movl %r8d, %ecx + orl %r10d, %eax + addl %r15d, %r11d + andl %r10d, %ecx + andl %r9d, %eax + addl %ebx, %r15d + orl %ecx, %eax + addl %eax, %r15d + movl %r11d, %eax + rorl $(25-11), %eax + movl %r15d, %ebx + xorl %r11d, %eax + rorl $(22-13), %ebx + movl %r12d, %ecx + xorl %r15d, %ebx + rorl $(11-6), %eax + xorl %r13d, %ecx + xorl %r11d, %eax + rorl $(13-2), %ebx + andl %r11d, %ecx + xorl %r15d, %ebx + rorl $6, %eax + xorl %r13d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 1*4(%rsp), %ecx + movl %r15d, %eax + addl %ecx, %r14d + movl %r15d, %ecx + orl %r9d, %eax + addl %r14d, %r10d + andl %r9d, %ecx + andl %r8d, %eax + addl %ebx, %r14d + orl %ecx, %eax + addl %eax, %r14d + movl %r10d, %eax + rorl $(25-11), %eax + movl %r14d, %ebx + xorl %r10d, %eax + rorl $(22-13), %ebx + movl %r11d, %ecx + xorl %r14d, %ebx + rorl $(11-6), %eax + xorl %r12d, %ecx + xorl %r10d, %eax + rorl $(13-2), %ebx + andl %r10d, %ecx + xorl %r14d, %ebx + rorl $6, %eax + xorl %r12d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 2*4(%rsp), %ecx + movl %r14d, %eax + addl %ecx, %r13d + movl %r14d, %ecx + orl %r8d, %eax + addl %r13d, %r9d + andl %r8d, %ecx + andl %r15d, %eax + addl %ebx, %r13d + orl %ecx, %eax + addl %eax, %r13d + movl %r9d, %eax + rorl $(25-11), %eax + movl %r13d, %ebx + xorl %r9d, %eax + rorl $(22-13), %ebx + movl %r10d, %ecx + xorl %r13d, %ebx + rorl $(11-6), %eax + xorl %r11d, %ecx + xorl %r9d, %eax + rorl $(13-2), %ebx + andl %r9d, %ecx + xorl %r13d, %ebx + rorl $6, %eax + xorl %r11d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 3*4(%rsp), %ecx + movl %r13d, %eax + addl %ecx, %r12d + movl %r13d, %ecx + orl %r15d, %eax + addl %r12d, %r8d + andl %r15d, %ecx + andl %r14d, %eax + addl %ebx, %r12d + orl %ecx, %eax + addl %eax, %r12d + paddd 3*16(%rdx), %xmm3 + movdqa %xmm3, (%rsp) + movl %r8d, %eax + rorl $(25-11), %eax + movl %r12d, %ebx + xorl %r8d, %eax + rorl $(22-13), %ebx + movl %r9d, %ecx + xorl %r12d, %ebx + rorl $(11-6), %eax + xorl %r10d, %ecx + xorl %r8d, %eax + rorl $(13-2), %ebx + andl %r8d, %ecx + xorl %r12d, %ebx + rorl $6, %eax + xorl %r10d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 0*4(%rsp), %ecx + movl %r12d, %eax + addl %ecx, %r11d + movl %r12d, %ecx + orl %r14d, %eax + addl %r11d, %r15d + andl %r14d, %ecx + andl %r13d, %eax + addl %ebx, %r11d + orl %ecx, %eax + addl %eax, %r11d + movl %r15d, %eax + rorl $(25-11), %eax + movl %r11d, %ebx + xorl %r15d, %eax + rorl $(22-13), %ebx + movl %r8d, %ecx + xorl %r11d, %ebx + rorl $(11-6), %eax + xorl %r9d, %ecx + xorl %r15d, %eax + rorl $(13-2), %ebx + andl %r15d, %ecx + xorl %r11d, %ebx + rorl $6, %eax + xorl %r9d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 1*4(%rsp), %ecx + movl %r11d, %eax + addl %ecx, %r10d + movl %r11d, %ecx + orl %r13d, %eax + addl %r10d, %r14d + andl %r13d, %ecx + andl %r12d, %eax + addl %ebx, %r10d + orl %ecx, %eax + addl %eax, %r10d + movl %r14d, %eax + rorl $(25-11), %eax + movl %r10d, %ebx + xorl %r14d, %eax + rorl $(22-13), %ebx + movl %r15d, %ecx + xorl %r10d, %ebx + rorl $(11-6), %eax + xorl %r8d, %ecx + xorl %r14d, %eax + rorl $(13-2), %ebx + andl %r14d, %ecx + xorl %r10d, %ebx + rorl $6, %eax + xorl %r8d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 2*4(%rsp), %ecx + movl %r10d, %eax + addl %ecx, %r9d + movl %r10d, %ecx + orl %r12d, %eax + addl %r9d, %r13d + andl %r12d, %ecx + andl %r11d, %eax + addl %ebx, %r9d + orl %ecx, %eax + addl %eax, %r9d + movl %r13d, %eax + rorl $(25-11), %eax + movl %r9d, %ebx + xorl %r13d, %eax + rorl $(22-13), %ebx + movl %r14d, %ecx + xorl %r9d, %ebx + rorl $(11-6), %eax + xorl %r15d, %ecx + xorl %r13d, %eax + rorl $(13-2), %ebx + andl %r13d, %ecx + xorl %r9d, %ebx + rorl $6, %eax + xorl %r15d, %ecx + addl %eax, %ecx + rorl $2, %ebx + addl 3*4(%rsp), %ecx + movl %r9d, %eax + addl %ecx, %r8d + movl %r9d, %ecx + orl %r11d, %eax + addl %r8d, %r12d + andl %r11d, %ecx + andl %r10d, %eax + addl %ebx, %r8d + orl %ecx, %eax + addl %eax, %r8d + + addl %r8d, 0*4(%rdi) + addl %r9d, 1*4(%rdi) + addl %r10d, 2*4(%rdi) + addl %r11d, 3*4(%rdi) + addl %r12d, 4*4(%rdi) + addl %r13d, 5*4(%rdi) + addl %r14d, 6*4(%rdi) + addl %r15d, 7*4(%rdi) + +#if defined(_WIN64) || defined(__CYGWIN__) + movdqa 1*16(%rsp), %xmm6 + movdqa 2*16(%rsp), %xmm7 + movdqa 3*16(%rsp), %xmm8 + movdqa 4*16(%rsp), %xmm9 + addq $5*16, %rsp + popq %rsi + popq %rdi +#else + addq $16, %rsp +#endif + popq %r15 + popq %r14 + popq %r13 + popq %r12 + popq %rbx + ret + + + .text + .p2align 6 +sha256_transform_phe: +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx +#endif + movq %rsp, %r8 + subq $64, %rsp + andq $-64, %rsp + + testq %rdx, %rdx + jnz sha256_transform_phe_noswap + + movl 0*4(%rsi), %eax + movl 1*4(%rsi), %ecx + movl 2*4(%rsi), %edx + movl 3*4(%rsi), %r9d + bswapl %eax + bswapl %ecx + bswapl %edx + bswapl %r9d + movl %eax, 0*4(%rsp) + movl %ecx, 1*4(%rsp) + movl %edx, 2*4(%rsp) + movl %r9d, 3*4(%rsp) + movl 4*4(%rsi), %eax + movl 5*4(%rsi), %ecx + movl 6*4(%rsi), %edx + movl 7*4(%rsi), %r9d + bswapl %eax + bswapl %ecx + bswapl %edx + bswapl %r9d + movl %eax, 4*4(%rsp) + movl %ecx, 5*4(%rsp) + movl %edx, 6*4(%rsp) + movl %r9d, 7*4(%rsp) + + movdqu 2*16(%rsi), %xmm0 + movdqu 3*16(%rsi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, 2*16(%rsp) + movdqa %xmm2, 3*16(%rsp) + + jmp sha256_transform_phe_core + +sha256_transform_phe_noswap: + movdqu 0*16(%rsi), %xmm0 + movdqu 1*16(%rsi), %xmm1 + movdqu 2*16(%rsi), %xmm2 + movdqu 3*16(%rsi), %xmm3 + movdqa %xmm0, 0*16(%rsp) + movdqa %xmm1, 1*16(%rsp) + movdqa %xmm2, 2*16(%rsp) + movdqa %xmm3, 3*16(%rsp) + +sha256_transform_phe_core: + movq %rsp, %rsi + movq $-1, %rax + movq $1, %rcx + /* rep xsha256 */ + .byte 0xf3, 0x0f, 0xa6, 0xd0 + + movq %r8, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + popq %rdi +#endif + ret + + + .data + .p2align 3 +sha256_transform_addr: + .quad sha256_transform_sse2 + + .text + .p2align 3 + .globl sha256_transform + .globl _sha256_transform +sha256_transform: +_sha256_transform: + jmp *sha256_transform_addr(%rip) + + + .text + .p2align 6 + .globl sha256d_ms + .globl _sha256d_ms +sha256d_ms: +_sha256d_ms: +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx +#endif + movq %rsp, %r8 + subq $32, %rsp + andq $-32, %rsp + + movdqa 0*16(%rdx), %xmm0 + movdqa 1*16(%rdx), %xmm1 + movdqa %xmm0, 0*16(%rdi) + movdqa %xmm1, 1*16(%rdi) + + movl 0*4(%rsi), %eax + movl 1*4(%rsi), %ecx + movl 2*4(%rsi), %edx + movl 3*4(%rsi), %r9d + bswapl %eax + bswapl %ecx + bswapl %edx + bswapl %r9d + movl %eax, 0*4(%rsp) + movl %ecx, 1*4(%rsp) + movl %edx, 2*4(%rsp) + movl %r9d, 3*4(%rsp) + + movq %rsp, %rsi + movl $64, %eax + movl $80, %ecx + /* rep xsha256 */ + .byte 0xf3, 0x0f, 0xa6, 0xd0 + + movdqa bswap_xmm_mask(%rip), %xmm1 + movdqa 0*16(%rdi), %xmm0 + movdqa 1*16(%rdi), %xmm2 + pshufb %xmm1, %xmm0 + pshufb %xmm1, %xmm2 + movdqa %xmm0, 0*16(%rsp) + movdqa %xmm2, 1*16(%rsp) + + movdqa sha256_h+0*16(%rip), %xmm0 + movdqa sha256_h+1*16(%rip), %xmm1 + movdqa %xmm0, 0*16(%rdi) + movdqa %xmm1, 1*16(%rdi) + + movq %rsp, %rsi + xorq %rax, %rax + movl $32, %ecx + /* rep xsha256 */ + .byte 0xf3, 0x0f, 0xa6, 0xd0 + + movq %r8, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + popq %rdi +#endif + ret + + + .data + .p2align 7 +sha256_4h: + .long 0x6a09e667, 0x6a09e667, 0x6a09e667, 0x6a09e667 + .long 0xbb67ae85, 0xbb67ae85, 0xbb67ae85, 0xbb67ae85 + .long 0x3c6ef372, 0x3c6ef372, 0x3c6ef372, 0x3c6ef372 + .long 0xa54ff53a, 0xa54ff53a, 0xa54ff53a, 0xa54ff53a + .long 0x510e527f, 0x510e527f, 0x510e527f, 0x510e527f + .long 0x9b05688c, 0x9b05688c, 0x9b05688c, 0x9b05688c + .long 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab + .long 0x5be0cd19, 0x5be0cd19, 0x5be0cd19, 0x5be0cd19 + + .data + .p2align 7 +sha256_4k: + .long 0x428a2f98, 0x428a2f98, 0x428a2f98, 0x428a2f98 + .long 0x71374491, 0x71374491, 0x71374491, 0x71374491 + .long 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf + .long 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5 + .long 0x3956c25b, 0x3956c25b, 0x3956c25b, 0x3956c25b + .long 0x59f111f1, 0x59f111f1, 0x59f111f1, 0x59f111f1 + .long 0x923f82a4, 0x923f82a4, 0x923f82a4, 0x923f82a4 + .long 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5 + .long 0xd807aa98, 0xd807aa98, 0xd807aa98, 0xd807aa98 + .long 0x12835b01, 0x12835b01, 0x12835b01, 0x12835b01 + .long 0x243185be, 0x243185be, 0x243185be, 0x243185be + .long 0x550c7dc3, 0x550c7dc3, 0x550c7dc3, 0x550c7dc3 + .long 0x72be5d74, 0x72be5d74, 0x72be5d74, 0x72be5d74 + .long 0x80deb1fe, 0x80deb1fe, 0x80deb1fe, 0x80deb1fe + .long 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7 + .long 0xc19bf174, 0xc19bf174, 0xc19bf174, 0xc19bf174 + .long 0xe49b69c1, 0xe49b69c1, 0xe49b69c1, 0xe49b69c1 + .long 0xefbe4786, 0xefbe4786, 0xefbe4786, 0xefbe4786 + .long 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6 + .long 0x240ca1cc, 0x240ca1cc, 0x240ca1cc, 0x240ca1cc + .long 0x2de92c6f, 0x2de92c6f, 0x2de92c6f, 0x2de92c6f + .long 0x4a7484aa, 0x4a7484aa, 0x4a7484aa, 0x4a7484aa + .long 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc + .long 0x76f988da, 0x76f988da, 0x76f988da, 0x76f988da + .long 0x983e5152, 0x983e5152, 0x983e5152, 0x983e5152 + .long 0xa831c66d, 0xa831c66d, 0xa831c66d, 0xa831c66d + .long 0xb00327c8, 0xb00327c8, 0xb00327c8, 0xb00327c8 + .long 0xbf597fc7, 0xbf597fc7, 0xbf597fc7, 0xbf597fc7 + .long 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3 + .long 0xd5a79147, 0xd5a79147, 0xd5a79147, 0xd5a79147 + .long 0x06ca6351, 0x06ca6351, 0x06ca6351, 0x06ca6351 + .long 0x14292967, 0x14292967, 0x14292967, 0x14292967 + .long 0x27b70a85, 0x27b70a85, 0x27b70a85, 0x27b70a85 + .long 0x2e1b2138, 0x2e1b2138, 0x2e1b2138, 0x2e1b2138 + .long 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc + .long 0x53380d13, 0x53380d13, 0x53380d13, 0x53380d13 + .long 0x650a7354, 0x650a7354, 0x650a7354, 0x650a7354 + .long 0x766a0abb, 0x766a0abb, 0x766a0abb, 0x766a0abb + .long 0x81c2c92e, 0x81c2c92e, 0x81c2c92e, 0x81c2c92e + .long 0x92722c85, 0x92722c85, 0x92722c85, 0x92722c85 + .long 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1 + .long 0xa81a664b, 0xa81a664b, 0xa81a664b, 0xa81a664b + .long 0xc24b8b70, 0xc24b8b70, 0xc24b8b70, 0xc24b8b70 + .long 0xc76c51a3, 0xc76c51a3, 0xc76c51a3, 0xc76c51a3 + .long 0xd192e819, 0xd192e819, 0xd192e819, 0xd192e819 + .long 0xd6990624, 0xd6990624, 0xd6990624, 0xd6990624 + .long 0xf40e3585, 0xf40e3585, 0xf40e3585, 0xf40e3585 + .long 0x106aa070, 0x106aa070, 0x106aa070, 0x106aa070 + .long 0x19a4c116, 0x19a4c116, 0x19a4c116, 0x19a4c116 + .long 0x1e376c08, 0x1e376c08, 0x1e376c08, 0x1e376c08 + .long 0x2748774c, 0x2748774c, 0x2748774c, 0x2748774c + .long 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5 + .long 0x391c0cb3, 0x391c0cb3, 0x391c0cb3, 0x391c0cb3 + .long 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a + .long 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f + .long 0x682e6ff3, 0x682e6ff3, 0x682e6ff3, 0x682e6ff3 + .long 0x748f82ee, 0x748f82ee, 0x748f82ee, 0x748f82ee + .long 0x78a5636f, 0x78a5636f, 0x78a5636f, 0x78a5636f + .long 0x84c87814, 0x84c87814, 0x84c87814, 0x84c87814 + .long 0x8cc70208, 0x8cc70208, 0x8cc70208, 0x8cc70208 + .long 0x90befffa, 0x90befffa, 0x90befffa, 0x90befffa + .long 0xa4506ceb, 0xa4506ceb, 0xa4506ceb, 0xa4506ceb + .long 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7 + .long 0xc67178f2, 0xc67178f2, 0xc67178f2, 0xc67178f2 + + .data + .p2align 6 +sha256d_4preext2_17: + .long 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000 +sha256d_4preext2_23: + .long 0x11002000, 0x11002000, 0x11002000, 0x11002000 +sha256d_4preext2_24: + .long 0x80000000, 0x80000000, 0x80000000, 0x80000000 +sha256d_4preext2_30: + .long 0x00400022, 0x00400022, 0x00400022, 0x00400022 + + +#ifdef USE_AVX2 + + .data + .p2align 7 +sha256_8h: + .long 0x6a09e667, 0x6a09e667, 0x6a09e667, 0x6a09e667, 0x6a09e667, 0x6a09e667, 0x6a09e667, 0x6a09e667 + .long 0xbb67ae85, 0xbb67ae85, 0xbb67ae85, 0xbb67ae85, 0xbb67ae85, 0xbb67ae85, 0xbb67ae85, 0xbb67ae85 + .long 0x3c6ef372, 0x3c6ef372, 0x3c6ef372, 0x3c6ef372, 0x3c6ef372, 0x3c6ef372, 0x3c6ef372, 0x3c6ef372 + .long 0xa54ff53a, 0xa54ff53a, 0xa54ff53a, 0xa54ff53a, 0xa54ff53a, 0xa54ff53a, 0xa54ff53a, 0xa54ff53a + .long 0x510e527f, 0x510e527f, 0x510e527f, 0x510e527f, 0x510e527f, 0x510e527f, 0x510e527f, 0x510e527f + .long 0x9b05688c, 0x9b05688c, 0x9b05688c, 0x9b05688c, 0x9b05688c, 0x9b05688c, 0x9b05688c, 0x9b05688c + .long 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab + .long 0x5be0cd19, 0x5be0cd19, 0x5be0cd19, 0x5be0cd19, 0x5be0cd19, 0x5be0cd19, 0x5be0cd19, 0x5be0cd19 + + .data + .p2align 7 +sha256_8k: + .long 0x428a2f98, 0x428a2f98, 0x428a2f98, 0x428a2f98, 0x428a2f98, 0x428a2f98, 0x428a2f98, 0x428a2f98 + .long 0x71374491, 0x71374491, 0x71374491, 0x71374491, 0x71374491, 0x71374491, 0x71374491, 0x71374491 + .long 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf + .long 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5 + .long 0x3956c25b, 0x3956c25b, 0x3956c25b, 0x3956c25b, 0x3956c25b, 0x3956c25b, 0x3956c25b, 0x3956c25b + .long 0x59f111f1, 0x59f111f1, 0x59f111f1, 0x59f111f1, 0x59f111f1, 0x59f111f1, 0x59f111f1, 0x59f111f1 + .long 0x923f82a4, 0x923f82a4, 0x923f82a4, 0x923f82a4, 0x923f82a4, 0x923f82a4, 0x923f82a4, 0x923f82a4 + .long 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5 + .long 0xd807aa98, 0xd807aa98, 0xd807aa98, 0xd807aa98, 0xd807aa98, 0xd807aa98, 0xd807aa98, 0xd807aa98 + .long 0x12835b01, 0x12835b01, 0x12835b01, 0x12835b01, 0x12835b01, 0x12835b01, 0x12835b01, 0x12835b01 + .long 0x243185be, 0x243185be, 0x243185be, 0x243185be, 0x243185be, 0x243185be, 0x243185be, 0x243185be + .long 0x550c7dc3, 0x550c7dc3, 0x550c7dc3, 0x550c7dc3, 0x550c7dc3, 0x550c7dc3, 0x550c7dc3, 0x550c7dc3 + .long 0x72be5d74, 0x72be5d74, 0x72be5d74, 0x72be5d74, 0x72be5d74, 0x72be5d74, 0x72be5d74, 0x72be5d74 + .long 0x80deb1fe, 0x80deb1fe, 0x80deb1fe, 0x80deb1fe, 0x80deb1fe, 0x80deb1fe, 0x80deb1fe, 0x80deb1fe + .long 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7 + .long 0xc19bf174, 0xc19bf174, 0xc19bf174, 0xc19bf174, 0xc19bf174, 0xc19bf174, 0xc19bf174, 0xc19bf174 + .long 0xe49b69c1, 0xe49b69c1, 0xe49b69c1, 0xe49b69c1, 0xe49b69c1, 0xe49b69c1, 0xe49b69c1, 0xe49b69c1 + .long 0xefbe4786, 0xefbe4786, 0xefbe4786, 0xefbe4786, 0xefbe4786, 0xefbe4786, 0xefbe4786, 0xefbe4786 + .long 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6 + .long 0x240ca1cc, 0x240ca1cc, 0x240ca1cc, 0x240ca1cc, 0x240ca1cc, 0x240ca1cc, 0x240ca1cc, 0x240ca1cc + .long 0x2de92c6f, 0x2de92c6f, 0x2de92c6f, 0x2de92c6f, 0x2de92c6f, 0x2de92c6f, 0x2de92c6f, 0x2de92c6f + .long 0x4a7484aa, 0x4a7484aa, 0x4a7484aa, 0x4a7484aa, 0x4a7484aa, 0x4a7484aa, 0x4a7484aa, 0x4a7484aa + .long 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc + .long 0x76f988da, 0x76f988da, 0x76f988da, 0x76f988da, 0x76f988da, 0x76f988da, 0x76f988da, 0x76f988da + .long 0x983e5152, 0x983e5152, 0x983e5152, 0x983e5152, 0x983e5152, 0x983e5152, 0x983e5152, 0x983e5152 + .long 0xa831c66d, 0xa831c66d, 0xa831c66d, 0xa831c66d, 0xa831c66d, 0xa831c66d, 0xa831c66d, 0xa831c66d + .long 0xb00327c8, 0xb00327c8, 0xb00327c8, 0xb00327c8, 0xb00327c8, 0xb00327c8, 0xb00327c8, 0xb00327c8 + .long 0xbf597fc7, 0xbf597fc7, 0xbf597fc7, 0xbf597fc7, 0xbf597fc7, 0xbf597fc7, 0xbf597fc7, 0xbf597fc7 + .long 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3 + .long 0xd5a79147, 0xd5a79147, 0xd5a79147, 0xd5a79147, 0xd5a79147, 0xd5a79147, 0xd5a79147, 0xd5a79147 + .long 0x06ca6351, 0x06ca6351, 0x06ca6351, 0x06ca6351, 0x06ca6351, 0x06ca6351, 0x06ca6351, 0x06ca6351 + .long 0x14292967, 0x14292967, 0x14292967, 0x14292967, 0x14292967, 0x14292967, 0x14292967, 0x14292967 + .long 0x27b70a85, 0x27b70a85, 0x27b70a85, 0x27b70a85, 0x27b70a85, 0x27b70a85, 0x27b70a85, 0x27b70a85 + .long 0x2e1b2138, 0x2e1b2138, 0x2e1b2138, 0x2e1b2138, 0x2e1b2138, 0x2e1b2138, 0x2e1b2138, 0x2e1b2138 + .long 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc + .long 0x53380d13, 0x53380d13, 0x53380d13, 0x53380d13, 0x53380d13, 0x53380d13, 0x53380d13, 0x53380d13 + .long 0x650a7354, 0x650a7354, 0x650a7354, 0x650a7354, 0x650a7354, 0x650a7354, 0x650a7354, 0x650a7354 + .long 0x766a0abb, 0x766a0abb, 0x766a0abb, 0x766a0abb, 0x766a0abb, 0x766a0abb, 0x766a0abb, 0x766a0abb + .long 0x81c2c92e, 0x81c2c92e, 0x81c2c92e, 0x81c2c92e, 0x81c2c92e, 0x81c2c92e, 0x81c2c92e, 0x81c2c92e + .long 0x92722c85, 0x92722c85, 0x92722c85, 0x92722c85, 0x92722c85, 0x92722c85, 0x92722c85, 0x92722c85 + .long 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1 + .long 0xa81a664b, 0xa81a664b, 0xa81a664b, 0xa81a664b, 0xa81a664b, 0xa81a664b, 0xa81a664b, 0xa81a664b + .long 0xc24b8b70, 0xc24b8b70, 0xc24b8b70, 0xc24b8b70, 0xc24b8b70, 0xc24b8b70, 0xc24b8b70, 0xc24b8b70 + .long 0xc76c51a3, 0xc76c51a3, 0xc76c51a3, 0xc76c51a3, 0xc76c51a3, 0xc76c51a3, 0xc76c51a3, 0xc76c51a3 + .long 0xd192e819, 0xd192e819, 0xd192e819, 0xd192e819, 0xd192e819, 0xd192e819, 0xd192e819, 0xd192e819 + .long 0xd6990624, 0xd6990624, 0xd6990624, 0xd6990624, 0xd6990624, 0xd6990624, 0xd6990624, 0xd6990624 + .long 0xf40e3585, 0xf40e3585, 0xf40e3585, 0xf40e3585, 0xf40e3585, 0xf40e3585, 0xf40e3585, 0xf40e3585 + .long 0x106aa070, 0x106aa070, 0x106aa070, 0x106aa070, 0x106aa070, 0x106aa070, 0x106aa070, 0x106aa070 + .long 0x19a4c116, 0x19a4c116, 0x19a4c116, 0x19a4c116, 0x19a4c116, 0x19a4c116, 0x19a4c116, 0x19a4c116 + .long 0x1e376c08, 0x1e376c08, 0x1e376c08, 0x1e376c08, 0x1e376c08, 0x1e376c08, 0x1e376c08, 0x1e376c08 + .long 0x2748774c, 0x2748774c, 0x2748774c, 0x2748774c, 0x2748774c, 0x2748774c, 0x2748774c, 0x2748774c + .long 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5 + .long 0x391c0cb3, 0x391c0cb3, 0x391c0cb3, 0x391c0cb3, 0x391c0cb3, 0x391c0cb3, 0x391c0cb3, 0x391c0cb3 + .long 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a + .long 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f + .long 0x682e6ff3, 0x682e6ff3, 0x682e6ff3, 0x682e6ff3, 0x682e6ff3, 0x682e6ff3, 0x682e6ff3, 0x682e6ff3 + .long 0x748f82ee, 0x748f82ee, 0x748f82ee, 0x748f82ee, 0x748f82ee, 0x748f82ee, 0x748f82ee, 0x748f82ee + .long 0x78a5636f, 0x78a5636f, 0x78a5636f, 0x78a5636f, 0x78a5636f, 0x78a5636f, 0x78a5636f, 0x78a5636f + .long 0x84c87814, 0x84c87814, 0x84c87814, 0x84c87814, 0x84c87814, 0x84c87814, 0x84c87814, 0x84c87814 + .long 0x8cc70208, 0x8cc70208, 0x8cc70208, 0x8cc70208, 0x8cc70208, 0x8cc70208, 0x8cc70208, 0x8cc70208 + .long 0x90befffa, 0x90befffa, 0x90befffa, 0x90befffa, 0x90befffa, 0x90befffa, 0x90befffa, 0x90befffa + .long 0xa4506ceb, 0xa4506ceb, 0xa4506ceb, 0xa4506ceb, 0xa4506ceb, 0xa4506ceb, 0xa4506ceb, 0xa4506ceb + .long 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7 + .long 0xc67178f2, 0xc67178f2, 0xc67178f2, 0xc67178f2, 0xc67178f2, 0xc67178f2, 0xc67178f2, 0xc67178f2 + + .data + .p2align 6 +sha256d_8preext2_17: + .long 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000 +sha256d_8preext2_23: + .long 0x11002000, 0x11002000, 0x11002000, 0x11002000, 0x11002000, 0x11002000, 0x11002000, 0x11002000 +sha256d_8preext2_24: + .long 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000 +sha256d_8preext2_30: + .long 0x00400022, 0x00400022, 0x00400022, 0x00400022, 0x00400022, 0x00400022, 0x00400022, 0x00400022 + +#endif /* USE_AVX2 */ + + + .text + .p2align 6 + .globl sha256_init_4way + .globl _sha256_init_4way +sha256_init_4way: +_sha256_init_4way: +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + movq %rcx, %rdi +#endif + movdqa sha256_4h+0(%rip), %xmm0 + movdqa sha256_4h+16(%rip), %xmm1 + movdqa sha256_4h+32(%rip), %xmm2 + movdqa sha256_4h+48(%rip), %xmm3 + movdqu %xmm0, 0(%rdi) + movdqu %xmm1, 16(%rdi) + movdqu %xmm2, 32(%rdi) + movdqu %xmm3, 48(%rdi) + movdqa sha256_4h+64(%rip), %xmm0 + movdqa sha256_4h+80(%rip), %xmm1 + movdqa sha256_4h+96(%rip), %xmm2 + movdqa sha256_4h+112(%rip), %xmm3 + movdqu %xmm0, 64(%rdi) + movdqu %xmm1, 80(%rdi) + movdqu %xmm2, 96(%rdi) + movdqu %xmm3, 112(%rdi) +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rdi +#endif + ret + + +#ifdef USE_AVX2 + .text + .p2align 6 + .globl sha256_init_8way + .globl _sha256_init_8way +sha256_init_8way: +_sha256_init_8way: +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + movq %rcx, %rdi +#endif + vpbroadcastd sha256_4h+0(%rip), %ymm0 + vpbroadcastd sha256_4h+16(%rip), %ymm1 + vpbroadcastd sha256_4h+32(%rip), %ymm2 + vpbroadcastd sha256_4h+48(%rip), %ymm3 + vmovdqu %ymm0, 0*32(%rdi) + vmovdqu %ymm1, 1*32(%rdi) + vmovdqu %ymm2, 2*32(%rdi) + vmovdqu %ymm3, 3*32(%rdi) + vpbroadcastd sha256_4h+64(%rip), %ymm0 + vpbroadcastd sha256_4h+80(%rip), %ymm1 + vpbroadcastd sha256_4h+96(%rip), %ymm2 + vpbroadcastd sha256_4h+112(%rip), %ymm3 + vmovdqu %ymm0, 4*32(%rdi) + vmovdqu %ymm1, 5*32(%rdi) + vmovdqu %ymm2, 6*32(%rdi) + vmovdqu %ymm3, 7*32(%rdi) +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rdi +#endif + ret +#endif /* USE_AVX2 */ + + + + + + + +#if defined(USE_AVX) + + + + + +#endif /* USE_AVX */ + + +#if defined(USE_AVX2) + + + + + +#endif /* USE_AVX2 */ + + +#if defined(USE_XOP) + + + + + +#endif /* USE_XOP */ + + + .text + .p2align 6 +sha256_transform_4way_core_sse2: + leaq 256(%rsp), %rcx + leaq 48*16(%rcx), %rax + movdqa -2*16(%rcx), %xmm3 + movdqa -1*16(%rcx), %xmm7 +sha256_transform_4way_sse2_extend_loop: + movdqa -15*16(%rcx), %xmm0 + movdqa -14*16(%rcx), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd -16*16(%rcx), %xmm0 + paddd -15*16(%rcx), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd -7*16(%rcx), %xmm0 + paddd -6*16(%rcx), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, (%rcx) + movdqa %xmm7, 16(%rcx) + addq $2*16, %rcx + cmpq %rcx, %rax + jne sha256_transform_4way_sse2_extend_loop + + movdqu 0(%rdi), %xmm7 + movdqu 16(%rdi), %xmm5 + movdqu 32(%rdi), %xmm4 + movdqu 48(%rdi), %xmm3 + movdqu 64(%rdi), %xmm0 + movdqu 80(%rdi), %xmm8 + movdqu 96(%rdi), %xmm9 + movdqu 112(%rdi), %xmm10 + + leaq sha256_4k(%rip), %rcx + xorq %rax, %rax +sha256_transform_4way_sse2_main_loop: + movdqa (%rsp, %rax), %xmm6 + paddd (%rcx, %rax), %xmm6 + paddd %xmm10, %xmm6 + + movdqa %xmm0, %xmm1 + movdqa %xmm9, %xmm2 + pandn %xmm2, %xmm1 + + movdqa %xmm2, %xmm10 + movdqa %xmm8, %xmm2 + movdqa %xmm2, %xmm9 + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, %xmm8 + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $5, %xmm1 + pxor %xmm1, %xmm0 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + paddd %xmm6, %xmm0 + + movdqa %xmm5, %xmm1 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + pand %xmm5, %xmm2 + pand %xmm7, %xmm4 + pand %xmm7, %xmm1 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pxor %xmm1, %xmm7 + pslld $9, %xmm2 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pxor %xmm1, %xmm7 + pslld $11, %xmm2 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + + addq $16, %rax + cmpq $16*64, %rax + jne sha256_transform_4way_sse2_main_loop + jmp sha256_transform_4way_finish + + +#if defined(USE_AVX) + .text + .p2align 6 +sha256_transform_4way_core_avx: + leaq 256(%rsp), %rax + movdqa -2*16(%rax), %xmm3 + movdqa -1*16(%rax), %xmm7 + vmovdqa (0-15)*16(%rax), %xmm0 + vmovdqa (0-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (0-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (0-7)*16(%rax), %xmm0, %xmm0 + vpaddd (0-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 0*16(%rax) + vmovdqa %xmm7, (0+1)*16(%rax) + vmovdqa (2-15)*16(%rax), %xmm0 + vmovdqa (2-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (2-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (2-7)*16(%rax), %xmm0, %xmm0 + vpaddd (2-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 2*16(%rax) + vmovdqa %xmm7, (2+1)*16(%rax) + vmovdqa (4-15)*16(%rax), %xmm0 + vmovdqa (4-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (4-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (4-7)*16(%rax), %xmm0, %xmm0 + vpaddd (4-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 4*16(%rax) + vmovdqa %xmm7, (4+1)*16(%rax) + vmovdqa (6-15)*16(%rax), %xmm0 + vmovdqa (6-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (6-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (6-7)*16(%rax), %xmm0, %xmm0 + vpaddd (6-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 6*16(%rax) + vmovdqa %xmm7, (6+1)*16(%rax) + vmovdqa (8-15)*16(%rax), %xmm0 + vmovdqa (8-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (8-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (8-7)*16(%rax), %xmm0, %xmm0 + vpaddd (8-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 8*16(%rax) + vmovdqa %xmm7, (8+1)*16(%rax) + vmovdqa (10-15)*16(%rax), %xmm0 + vmovdqa (10-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (10-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (10-7)*16(%rax), %xmm0, %xmm0 + vpaddd (10-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 10*16(%rax) + vmovdqa %xmm7, (10+1)*16(%rax) + vmovdqa (12-15)*16(%rax), %xmm0 + vmovdqa (12-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (12-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (12-7)*16(%rax), %xmm0, %xmm0 + vpaddd (12-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 12*16(%rax) + vmovdqa %xmm7, (12+1)*16(%rax) + vmovdqa (14-15)*16(%rax), %xmm0 + vmovdqa (14-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (14-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (14-7)*16(%rax), %xmm0, %xmm0 + vpaddd (14-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 14*16(%rax) + vmovdqa %xmm7, (14+1)*16(%rax) + vmovdqa (16-15)*16(%rax), %xmm0 + vmovdqa (16-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (16-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (16-7)*16(%rax), %xmm0, %xmm0 + vpaddd (16-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 16*16(%rax) + vmovdqa %xmm7, (16+1)*16(%rax) + vmovdqa (18-15)*16(%rax), %xmm0 + vmovdqa (18-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (18-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (18-7)*16(%rax), %xmm0, %xmm0 + vpaddd (18-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 18*16(%rax) + vmovdqa %xmm7, (18+1)*16(%rax) + vmovdqa (20-15)*16(%rax), %xmm0 + vmovdqa (20-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (20-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (20-7)*16(%rax), %xmm0, %xmm0 + vpaddd (20-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 20*16(%rax) + vmovdqa %xmm7, (20+1)*16(%rax) + vmovdqa (22-15)*16(%rax), %xmm0 + vmovdqa (22-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (22-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (22-7)*16(%rax), %xmm0, %xmm0 + vpaddd (22-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 22*16(%rax) + vmovdqa %xmm7, (22+1)*16(%rax) + vmovdqa (24-15)*16(%rax), %xmm0 + vmovdqa (24-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (24-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (24-7)*16(%rax), %xmm0, %xmm0 + vpaddd (24-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 24*16(%rax) + vmovdqa %xmm7, (24+1)*16(%rax) + vmovdqa (26-15)*16(%rax), %xmm0 + vmovdqa (26-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (26-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (26-7)*16(%rax), %xmm0, %xmm0 + vpaddd (26-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 26*16(%rax) + vmovdqa %xmm7, (26+1)*16(%rax) + vmovdqa (28-15)*16(%rax), %xmm0 + vmovdqa (28-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (28-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (28-7)*16(%rax), %xmm0, %xmm0 + vpaddd (28-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 28*16(%rax) + vmovdqa %xmm7, (28+1)*16(%rax) + vmovdqa (30-15)*16(%rax), %xmm0 + vmovdqa (30-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (30-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (30-7)*16(%rax), %xmm0, %xmm0 + vpaddd (30-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 30*16(%rax) + vmovdqa %xmm7, (30+1)*16(%rax) + vmovdqa (32-15)*16(%rax), %xmm0 + vmovdqa (32-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (32-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (32-7)*16(%rax), %xmm0, %xmm0 + vpaddd (32-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 32*16(%rax) + vmovdqa %xmm7, (32+1)*16(%rax) + vmovdqa (34-15)*16(%rax), %xmm0 + vmovdqa (34-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (34-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (34-7)*16(%rax), %xmm0, %xmm0 + vpaddd (34-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 34*16(%rax) + vmovdqa %xmm7, (34+1)*16(%rax) + vmovdqa (36-15)*16(%rax), %xmm0 + vmovdqa (36-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (36-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (36-7)*16(%rax), %xmm0, %xmm0 + vpaddd (36-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 36*16(%rax) + vmovdqa %xmm7, (36+1)*16(%rax) + vmovdqa (38-15)*16(%rax), %xmm0 + vmovdqa (38-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (38-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (38-7)*16(%rax), %xmm0, %xmm0 + vpaddd (38-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 38*16(%rax) + vmovdqa %xmm7, (38+1)*16(%rax) + vmovdqa (40-15)*16(%rax), %xmm0 + vmovdqa (40-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (40-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (40-7)*16(%rax), %xmm0, %xmm0 + vpaddd (40-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 40*16(%rax) + vmovdqa %xmm7, (40+1)*16(%rax) + vmovdqa (42-15)*16(%rax), %xmm0 + vmovdqa (42-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (42-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (42-7)*16(%rax), %xmm0, %xmm0 + vpaddd (42-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 42*16(%rax) + vmovdqa %xmm7, (42+1)*16(%rax) + vmovdqa (44-15)*16(%rax), %xmm0 + vmovdqa (44-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (44-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (44-7)*16(%rax), %xmm0, %xmm0 + vpaddd (44-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 44*16(%rax) + vmovdqa %xmm7, (44+1)*16(%rax) + vmovdqa (46-15)*16(%rax), %xmm0 + vmovdqa (46-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (46-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (46-7)*16(%rax), %xmm0, %xmm0 + vpaddd (46-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 46*16(%rax) + vmovdqa %xmm7, (46+1)*16(%rax) + movdqu 0(%rdi), %xmm7 + movdqu 16(%rdi), %xmm5 + movdqu 32(%rdi), %xmm4 + movdqu 48(%rdi), %xmm3 + movdqu 64(%rdi), %xmm0 + movdqu 80(%rdi), %xmm8 + movdqu 96(%rdi), %xmm9 + movdqu 112(%rdi), %xmm10 + movq %rsp, %rax + leaq sha256_4k(%rip), %rcx + vpaddd 16*(0+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(0+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(0+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(0+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(0+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(0+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(0+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(0+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(4+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(4+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(4+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(4+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(4+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(4+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(4+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(4+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(8+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(8+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(8+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(8+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(8+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(8+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(8+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(8+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(12+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(12+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(12+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(12+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(12+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(12+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(12+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(12+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(16+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(16+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(16+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(16+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(16+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(16+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(16+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(16+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(20+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(20+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(20+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(20+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(20+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(20+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(20+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(20+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(24+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(24+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(24+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(24+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(24+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(24+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(24+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(24+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(28+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(28+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(28+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(28+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(28+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(28+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(28+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(28+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(32+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(32+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(32+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(32+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(32+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(32+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(32+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(32+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(36+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(36+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(36+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(36+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(36+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(36+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(36+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(36+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(40+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(40+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(40+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(40+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(40+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(40+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(40+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(40+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(44+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(44+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(44+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(44+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(44+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(44+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(44+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(44+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(48+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(48+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(48+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(48+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(48+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(48+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(48+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(48+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(52+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(52+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(52+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(52+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(52+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(52+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(52+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(52+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(56+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(56+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(56+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(56+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(56+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(56+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(56+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(56+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(60+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(60+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(60+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(60+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(60+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(60+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(60+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(60+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + jmp sha256_transform_4way_finish +#endif /* USE_AVX */ + + +#if defined(USE_XOP) + .text + .p2align 6 +sha256_transform_4way_core_xop: + leaq 256(%rsp), %rax + movdqa -2*16(%rax), %xmm3 + movdqa -1*16(%rax), %xmm7 + vmovdqa (0-15)*16(%rax), %xmm0 + vmovdqa (0-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (0-16)*16(%rax), %xmm0, %xmm0 + vpaddd (0-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (0-7)*16(%rax), %xmm0, %xmm0 + vpaddd (0-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 0*16(%rax) + vmovdqa %xmm7, (0+1)*16(%rax) + vmovdqa (2-15)*16(%rax), %xmm0 + vmovdqa (2-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (2-16)*16(%rax), %xmm0, %xmm0 + vpaddd (2-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (2-7)*16(%rax), %xmm0, %xmm0 + vpaddd (2-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 2*16(%rax) + vmovdqa %xmm7, (2+1)*16(%rax) + vmovdqa (4-15)*16(%rax), %xmm0 + vmovdqa (4-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (4-16)*16(%rax), %xmm0, %xmm0 + vpaddd (4-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (4-7)*16(%rax), %xmm0, %xmm0 + vpaddd (4-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 4*16(%rax) + vmovdqa %xmm7, (4+1)*16(%rax) + vmovdqa (6-15)*16(%rax), %xmm0 + vmovdqa (6-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (6-16)*16(%rax), %xmm0, %xmm0 + vpaddd (6-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (6-7)*16(%rax), %xmm0, %xmm0 + vpaddd (6-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 6*16(%rax) + vmovdqa %xmm7, (6+1)*16(%rax) + vmovdqa (8-15)*16(%rax), %xmm0 + vmovdqa (8-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (8-16)*16(%rax), %xmm0, %xmm0 + vpaddd (8-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (8-7)*16(%rax), %xmm0, %xmm0 + vpaddd (8-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 8*16(%rax) + vmovdqa %xmm7, (8+1)*16(%rax) + vmovdqa (10-15)*16(%rax), %xmm0 + vmovdqa (10-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (10-16)*16(%rax), %xmm0, %xmm0 + vpaddd (10-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (10-7)*16(%rax), %xmm0, %xmm0 + vpaddd (10-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 10*16(%rax) + vmovdqa %xmm7, (10+1)*16(%rax) + vmovdqa (12-15)*16(%rax), %xmm0 + vmovdqa (12-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (12-16)*16(%rax), %xmm0, %xmm0 + vpaddd (12-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (12-7)*16(%rax), %xmm0, %xmm0 + vpaddd (12-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 12*16(%rax) + vmovdqa %xmm7, (12+1)*16(%rax) + vmovdqa (14-15)*16(%rax), %xmm0 + vmovdqa (14-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (14-16)*16(%rax), %xmm0, %xmm0 + vpaddd (14-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (14-7)*16(%rax), %xmm0, %xmm0 + vpaddd (14-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 14*16(%rax) + vmovdqa %xmm7, (14+1)*16(%rax) + vmovdqa (16-15)*16(%rax), %xmm0 + vmovdqa (16-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (16-16)*16(%rax), %xmm0, %xmm0 + vpaddd (16-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (16-7)*16(%rax), %xmm0, %xmm0 + vpaddd (16-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 16*16(%rax) + vmovdqa %xmm7, (16+1)*16(%rax) + vmovdqa (18-15)*16(%rax), %xmm0 + vmovdqa (18-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (18-16)*16(%rax), %xmm0, %xmm0 + vpaddd (18-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (18-7)*16(%rax), %xmm0, %xmm0 + vpaddd (18-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 18*16(%rax) + vmovdqa %xmm7, (18+1)*16(%rax) + vmovdqa (20-15)*16(%rax), %xmm0 + vmovdqa (20-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (20-16)*16(%rax), %xmm0, %xmm0 + vpaddd (20-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (20-7)*16(%rax), %xmm0, %xmm0 + vpaddd (20-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 20*16(%rax) + vmovdqa %xmm7, (20+1)*16(%rax) + vmovdqa (22-15)*16(%rax), %xmm0 + vmovdqa (22-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (22-16)*16(%rax), %xmm0, %xmm0 + vpaddd (22-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (22-7)*16(%rax), %xmm0, %xmm0 + vpaddd (22-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 22*16(%rax) + vmovdqa %xmm7, (22+1)*16(%rax) + vmovdqa (24-15)*16(%rax), %xmm0 + vmovdqa (24-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (24-16)*16(%rax), %xmm0, %xmm0 + vpaddd (24-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (24-7)*16(%rax), %xmm0, %xmm0 + vpaddd (24-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 24*16(%rax) + vmovdqa %xmm7, (24+1)*16(%rax) + vmovdqa (26-15)*16(%rax), %xmm0 + vmovdqa (26-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (26-16)*16(%rax), %xmm0, %xmm0 + vpaddd (26-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (26-7)*16(%rax), %xmm0, %xmm0 + vpaddd (26-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 26*16(%rax) + vmovdqa %xmm7, (26+1)*16(%rax) + vmovdqa (28-15)*16(%rax), %xmm0 + vmovdqa (28-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (28-16)*16(%rax), %xmm0, %xmm0 + vpaddd (28-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (28-7)*16(%rax), %xmm0, %xmm0 + vpaddd (28-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 28*16(%rax) + vmovdqa %xmm7, (28+1)*16(%rax) + vmovdqa (30-15)*16(%rax), %xmm0 + vmovdqa (30-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (30-16)*16(%rax), %xmm0, %xmm0 + vpaddd (30-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (30-7)*16(%rax), %xmm0, %xmm0 + vpaddd (30-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 30*16(%rax) + vmovdqa %xmm7, (30+1)*16(%rax) + vmovdqa (32-15)*16(%rax), %xmm0 + vmovdqa (32-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (32-16)*16(%rax), %xmm0, %xmm0 + vpaddd (32-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (32-7)*16(%rax), %xmm0, %xmm0 + vpaddd (32-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 32*16(%rax) + vmovdqa %xmm7, (32+1)*16(%rax) + vmovdqa (34-15)*16(%rax), %xmm0 + vmovdqa (34-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (34-16)*16(%rax), %xmm0, %xmm0 + vpaddd (34-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (34-7)*16(%rax), %xmm0, %xmm0 + vpaddd (34-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 34*16(%rax) + vmovdqa %xmm7, (34+1)*16(%rax) + vmovdqa (36-15)*16(%rax), %xmm0 + vmovdqa (36-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (36-16)*16(%rax), %xmm0, %xmm0 + vpaddd (36-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (36-7)*16(%rax), %xmm0, %xmm0 + vpaddd (36-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 36*16(%rax) + vmovdqa %xmm7, (36+1)*16(%rax) + vmovdqa (38-15)*16(%rax), %xmm0 + vmovdqa (38-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (38-16)*16(%rax), %xmm0, %xmm0 + vpaddd (38-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (38-7)*16(%rax), %xmm0, %xmm0 + vpaddd (38-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 38*16(%rax) + vmovdqa %xmm7, (38+1)*16(%rax) + vmovdqa (40-15)*16(%rax), %xmm0 + vmovdqa (40-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (40-16)*16(%rax), %xmm0, %xmm0 + vpaddd (40-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (40-7)*16(%rax), %xmm0, %xmm0 + vpaddd (40-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 40*16(%rax) + vmovdqa %xmm7, (40+1)*16(%rax) + vmovdqa (42-15)*16(%rax), %xmm0 + vmovdqa (42-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (42-16)*16(%rax), %xmm0, %xmm0 + vpaddd (42-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (42-7)*16(%rax), %xmm0, %xmm0 + vpaddd (42-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 42*16(%rax) + vmovdqa %xmm7, (42+1)*16(%rax) + vmovdqa (44-15)*16(%rax), %xmm0 + vmovdqa (44-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (44-16)*16(%rax), %xmm0, %xmm0 + vpaddd (44-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (44-7)*16(%rax), %xmm0, %xmm0 + vpaddd (44-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 44*16(%rax) + vmovdqa %xmm7, (44+1)*16(%rax) + vmovdqa (46-15)*16(%rax), %xmm0 + vmovdqa (46-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (46-16)*16(%rax), %xmm0, %xmm0 + vpaddd (46-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (46-7)*16(%rax), %xmm0, %xmm0 + vpaddd (46-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 46*16(%rax) + vmovdqa %xmm7, (46+1)*16(%rax) + movdqu 0(%rdi), %xmm7 + movdqu 16(%rdi), %xmm5 + movdqu 32(%rdi), %xmm4 + movdqu 48(%rdi), %xmm3 + movdqu 64(%rdi), %xmm0 + movdqu 80(%rdi), %xmm8 + movdqu 96(%rdi), %xmm9 + movdqu 112(%rdi), %xmm10 + movq %rsp, %rax + leaq sha256_4k(%rip), %rcx + vpaddd 16*(0+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(0+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(0+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(0+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(0+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(0+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(0+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(0+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(4+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(4+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(4+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(4+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(4+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(4+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(4+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(4+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(8+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(8+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(8+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(8+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(8+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(8+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(8+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(8+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(12+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(12+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(12+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(12+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(12+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(12+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(12+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(12+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(16+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(16+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(16+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(16+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(16+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(16+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(16+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(16+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(20+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(20+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(20+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(20+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(20+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(20+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(20+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(20+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(24+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(24+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(24+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(24+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(24+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(24+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(24+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(24+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(28+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(28+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(28+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(28+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(28+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(28+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(28+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(28+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(32+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(32+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(32+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(32+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(32+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(32+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(32+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(32+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(36+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(36+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(36+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(36+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(36+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(36+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(36+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(36+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(40+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(40+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(40+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(40+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(40+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(40+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(40+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(40+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(44+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(44+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(44+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(44+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(44+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(44+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(44+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(44+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(48+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(48+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(48+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(48+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(48+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(48+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(48+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(48+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(52+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(52+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(52+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(52+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(52+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(52+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(52+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(52+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(56+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(56+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(56+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(56+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(56+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(56+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(56+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(56+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(60+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(60+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(60+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(60+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(60+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(60+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(60+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(60+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + jmp sha256_transform_4way_finish +#endif /* USE_XOP */ + + + .data + .p2align 3 +sha256_transform_4way_core_addr: + .quad 0x0 + + + .text + .p2align 6 + .globl sha256_transform_4way + .globl _sha256_transform_4way +sha256_transform_4way: +_sha256_transform_4way: +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + subq $96, %rsp + movdqa %xmm6, 0(%rsp) + movdqa %xmm7, 16(%rsp) + movdqa %xmm8, 32(%rsp) + movdqa %xmm9, 48(%rsp) + movdqa %xmm10, 64(%rsp) + movdqa %xmm11, 80(%rsp) + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx +#endif + movq %rsp, %r8 + subq $1032, %rsp + andq $-128, %rsp + + testq %rdx, %rdx + jnz sha256_transform_4way_swap + + movdqu 0*16(%rsi), %xmm0 + movdqu 1*16(%rsi), %xmm1 + movdqu 2*16(%rsi), %xmm2 + movdqu 3*16(%rsi), %xmm3 + movdqu 4*16(%rsi), %xmm4 + movdqu 5*16(%rsi), %xmm5 + movdqu 6*16(%rsi), %xmm6 + movdqu 7*16(%rsi), %xmm7 + movdqa %xmm0, 0*16(%rsp) + movdqa %xmm1, 1*16(%rsp) + movdqa %xmm2, 2*16(%rsp) + movdqa %xmm3, 3*16(%rsp) + movdqa %xmm4, 4*16(%rsp) + movdqa %xmm5, 5*16(%rsp) + movdqa %xmm6, 6*16(%rsp) + movdqa %xmm7, 7*16(%rsp) + movdqu 8*16(%rsi), %xmm0 + movdqu 9*16(%rsi), %xmm1 + movdqu 10*16(%rsi), %xmm2 + movdqu 11*16(%rsi), %xmm3 + movdqu 12*16(%rsi), %xmm4 + movdqu 13*16(%rsi), %xmm5 + movdqu 14*16(%rsi), %xmm6 + movdqu 15*16(%rsi), %xmm7 + movdqa %xmm0, 8*16(%rsp) + movdqa %xmm1, 9*16(%rsp) + movdqa %xmm2, 10*16(%rsp) + movdqa %xmm3, 11*16(%rsp) + movdqa %xmm4, 12*16(%rsp) + movdqa %xmm5, 13*16(%rsp) + movdqa %xmm6, 14*16(%rsp) + movdqa %xmm7, 15*16(%rsp) + jmp *sha256_transform_4way_core_addr(%rip) + + .p2align 6 +sha256_transform_4way_swap: + movdqu 0*16(%rsi), %xmm0 + movdqu (0+1)*16(%rsi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, 0*16(%rsp) + movdqa %xmm2, (0+1)*16(%rsp) + movdqu 2*16(%rsi), %xmm0 + movdqu (2+1)*16(%rsi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, 2*16(%rsp) + movdqa %xmm2, (2+1)*16(%rsp) + movdqu 4*16(%rsi), %xmm0 + movdqu (4+1)*16(%rsi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, 4*16(%rsp) + movdqa %xmm2, (4+1)*16(%rsp) + movdqu 6*16(%rsi), %xmm0 + movdqu (6+1)*16(%rsi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, 6*16(%rsp) + movdqa %xmm2, (6+1)*16(%rsp) + movdqu 8*16(%rsi), %xmm0 + movdqu (8+1)*16(%rsi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, 8*16(%rsp) + movdqa %xmm2, (8+1)*16(%rsp) + movdqu 10*16(%rsi), %xmm0 + movdqu (10+1)*16(%rsi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, 10*16(%rsp) + movdqa %xmm2, (10+1)*16(%rsp) + movdqu 12*16(%rsi), %xmm0 + movdqu (12+1)*16(%rsi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, 12*16(%rsp) + movdqa %xmm2, (12+1)*16(%rsp) + movdqu 14*16(%rsi), %xmm0 + movdqu (14+1)*16(%rsi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, 14*16(%rsp) + movdqa %xmm2, (14+1)*16(%rsp) + jmp *sha256_transform_4way_core_addr(%rip) + + .p2align 6 +sha256_transform_4way_finish: + movdqu 0(%rdi), %xmm2 + movdqu 16(%rdi), %xmm6 + movdqu 32(%rdi), %xmm11 + movdqu 48(%rdi), %xmm1 + paddd %xmm2, %xmm7 + paddd %xmm6, %xmm5 + paddd %xmm11, %xmm4 + paddd %xmm1, %xmm3 + movdqu 64(%rdi), %xmm2 + movdqu 80(%rdi), %xmm6 + movdqu 96(%rdi), %xmm11 + movdqu 112(%rdi), %xmm1 + paddd %xmm2, %xmm0 + paddd %xmm6, %xmm8 + paddd %xmm11, %xmm9 + paddd %xmm1, %xmm10 + + movdqu %xmm7, 0(%rdi) + movdqu %xmm5, 16(%rdi) + movdqu %xmm4, 32(%rdi) + movdqu %xmm3, 48(%rdi) + movdqu %xmm0, 64(%rdi) + movdqu %xmm8, 80(%rdi) + movdqu %xmm9, 96(%rdi) + movdqu %xmm10, 112(%rdi) + + movq %r8, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + movdqa 0(%rsp), %xmm6 + movdqa 16(%rsp), %xmm7 + movdqa 32(%rsp), %xmm8 + movdqa 48(%rsp), %xmm9 + movdqa 64(%rsp), %xmm10 + movdqa 80(%rsp), %xmm11 + addq $96, %rsp + popq %rdi +#endif + ret + + +#ifdef USE_AVX2 + + .text + .p2align 6 +sha256_transform_8way_core_avx2: + leaq 8*64(%rsp), %rax + vmovdqa -2*32(%rax), %ymm3 + vmovdqa -1*32(%rax), %ymm7 + vmovdqa (0-15)*32(%rax), %ymm0 + vmovdqa (0-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (0-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (0-7)*32(%rax), %ymm0, %ymm0 + vpaddd (0-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 0*32(%rax) + vmovdqa %ymm7, (0+1)*32(%rax) + vmovdqa (2-15)*32(%rax), %ymm0 + vmovdqa (2-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (2-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (2-7)*32(%rax), %ymm0, %ymm0 + vpaddd (2-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 2*32(%rax) + vmovdqa %ymm7, (2+1)*32(%rax) + vmovdqa (4-15)*32(%rax), %ymm0 + vmovdqa (4-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (4-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (4-7)*32(%rax), %ymm0, %ymm0 + vpaddd (4-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 4*32(%rax) + vmovdqa %ymm7, (4+1)*32(%rax) + vmovdqa (6-15)*32(%rax), %ymm0 + vmovdqa (6-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (6-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (6-7)*32(%rax), %ymm0, %ymm0 + vpaddd (6-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 6*32(%rax) + vmovdqa %ymm7, (6+1)*32(%rax) + vmovdqa (8-15)*32(%rax), %ymm0 + vmovdqa (8-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (8-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (8-7)*32(%rax), %ymm0, %ymm0 + vpaddd (8-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 8*32(%rax) + vmovdqa %ymm7, (8+1)*32(%rax) + vmovdqa (10-15)*32(%rax), %ymm0 + vmovdqa (10-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (10-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (10-7)*32(%rax), %ymm0, %ymm0 + vpaddd (10-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 10*32(%rax) + vmovdqa %ymm7, (10+1)*32(%rax) + vmovdqa (12-15)*32(%rax), %ymm0 + vmovdqa (12-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (12-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (12-7)*32(%rax), %ymm0, %ymm0 + vpaddd (12-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 12*32(%rax) + vmovdqa %ymm7, (12+1)*32(%rax) + vmovdqa (14-15)*32(%rax), %ymm0 + vmovdqa (14-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (14-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (14-7)*32(%rax), %ymm0, %ymm0 + vpaddd (14-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 14*32(%rax) + vmovdqa %ymm7, (14+1)*32(%rax) + vmovdqa (16-15)*32(%rax), %ymm0 + vmovdqa (16-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (16-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (16-7)*32(%rax), %ymm0, %ymm0 + vpaddd (16-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 16*32(%rax) + vmovdqa %ymm7, (16+1)*32(%rax) + vmovdqa (18-15)*32(%rax), %ymm0 + vmovdqa (18-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (18-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (18-7)*32(%rax), %ymm0, %ymm0 + vpaddd (18-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 18*32(%rax) + vmovdqa %ymm7, (18+1)*32(%rax) + vmovdqa (20-15)*32(%rax), %ymm0 + vmovdqa (20-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (20-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (20-7)*32(%rax), %ymm0, %ymm0 + vpaddd (20-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 20*32(%rax) + vmovdqa %ymm7, (20+1)*32(%rax) + vmovdqa (22-15)*32(%rax), %ymm0 + vmovdqa (22-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (22-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (22-7)*32(%rax), %ymm0, %ymm0 + vpaddd (22-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 22*32(%rax) + vmovdqa %ymm7, (22+1)*32(%rax) + vmovdqa (24-15)*32(%rax), %ymm0 + vmovdqa (24-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (24-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (24-7)*32(%rax), %ymm0, %ymm0 + vpaddd (24-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 24*32(%rax) + vmovdqa %ymm7, (24+1)*32(%rax) + vmovdqa (26-15)*32(%rax), %ymm0 + vmovdqa (26-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (26-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (26-7)*32(%rax), %ymm0, %ymm0 + vpaddd (26-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 26*32(%rax) + vmovdqa %ymm7, (26+1)*32(%rax) + vmovdqa (28-15)*32(%rax), %ymm0 + vmovdqa (28-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (28-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (28-7)*32(%rax), %ymm0, %ymm0 + vpaddd (28-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 28*32(%rax) + vmovdqa %ymm7, (28+1)*32(%rax) + vmovdqa (30-15)*32(%rax), %ymm0 + vmovdqa (30-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (30-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (30-7)*32(%rax), %ymm0, %ymm0 + vpaddd (30-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 30*32(%rax) + vmovdqa %ymm7, (30+1)*32(%rax) + vmovdqa (32-15)*32(%rax), %ymm0 + vmovdqa (32-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (32-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (32-7)*32(%rax), %ymm0, %ymm0 + vpaddd (32-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 32*32(%rax) + vmovdqa %ymm7, (32+1)*32(%rax) + vmovdqa (34-15)*32(%rax), %ymm0 + vmovdqa (34-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (34-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (34-7)*32(%rax), %ymm0, %ymm0 + vpaddd (34-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 34*32(%rax) + vmovdqa %ymm7, (34+1)*32(%rax) + vmovdqa (36-15)*32(%rax), %ymm0 + vmovdqa (36-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (36-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (36-7)*32(%rax), %ymm0, %ymm0 + vpaddd (36-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 36*32(%rax) + vmovdqa %ymm7, (36+1)*32(%rax) + vmovdqa (38-15)*32(%rax), %ymm0 + vmovdqa (38-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (38-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (38-7)*32(%rax), %ymm0, %ymm0 + vpaddd (38-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 38*32(%rax) + vmovdqa %ymm7, (38+1)*32(%rax) + vmovdqa (40-15)*32(%rax), %ymm0 + vmovdqa (40-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (40-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (40-7)*32(%rax), %ymm0, %ymm0 + vpaddd (40-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 40*32(%rax) + vmovdqa %ymm7, (40+1)*32(%rax) + vmovdqa (42-15)*32(%rax), %ymm0 + vmovdqa (42-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (42-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (42-7)*32(%rax), %ymm0, %ymm0 + vpaddd (42-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 42*32(%rax) + vmovdqa %ymm7, (42+1)*32(%rax) + vmovdqa (44-15)*32(%rax), %ymm0 + vmovdqa (44-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (44-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (44-7)*32(%rax), %ymm0, %ymm0 + vpaddd (44-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 44*32(%rax) + vmovdqa %ymm7, (44+1)*32(%rax) + vmovdqa (46-15)*32(%rax), %ymm0 + vmovdqa (46-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (46-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (46-7)*32(%rax), %ymm0, %ymm0 + vpaddd (46-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 46*32(%rax) + vmovdqa %ymm7, (46+1)*32(%rax) + vmovdqu 0*32(%rdi), %ymm7 + vmovdqu 1*32(%rdi), %ymm5 + vmovdqu 2*32(%rdi), %ymm4 + vmovdqu 3*32(%rdi), %ymm3 + vmovdqu 4*32(%rdi), %ymm0 + vmovdqu 5*32(%rdi), %ymm8 + vmovdqu 6*32(%rdi), %ymm9 + vmovdqu 7*32(%rdi), %ymm10 + movq %rsp, %rax + leaq sha256_8k(%rip), %rcx + vpaddd 32*(0+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(0+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(0+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(0+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(0+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(0+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(0+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(0+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(4+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(4+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(4+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(4+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(4+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(4+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(4+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(4+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(8+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(8+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(8+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(8+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(8+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(8+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(8+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(8+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(12+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(12+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(12+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(12+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(12+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(12+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(12+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(12+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(16+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(16+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(16+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(16+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(16+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(16+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(16+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(16+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(20+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(20+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(20+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(20+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(20+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(20+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(20+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(20+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(24+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(24+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(24+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(24+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(24+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(24+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(24+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(24+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(28+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(28+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(28+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(28+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(28+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(28+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(28+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(28+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(32+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(32+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(32+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(32+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(32+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(32+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(32+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(32+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(36+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(36+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(36+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(36+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(36+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(36+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(36+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(36+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(40+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(40+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(40+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(40+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(40+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(40+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(40+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(40+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(44+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(44+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(44+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(44+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(44+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(44+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(44+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(44+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(48+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(48+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(48+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(48+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(48+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(48+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(48+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(48+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(52+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(52+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(52+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(52+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(52+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(52+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(52+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(52+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(56+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(56+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(56+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(56+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(56+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(56+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(56+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(56+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(60+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(60+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(60+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(60+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(60+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(60+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(60+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(60+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + jmp sha256_transform_8way_finish + + + .text + .p2align 6 + .globl sha256_transform_8way + .globl _sha256_transform_8way +sha256_transform_8way: +_sha256_transform_8way: +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + subq $96, %rsp + vmovdqa %xmm6, 0(%rsp) + vmovdqa %xmm7, 16(%rsp) + vmovdqa %xmm8, 32(%rsp) + vmovdqa %xmm9, 48(%rsp) + vmovdqa %xmm10, 64(%rsp) + vmovdqa %xmm11, 80(%rsp) + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx +#endif + movq %rsp, %r8 + subq $64*32, %rsp + andq $-128, %rsp + + testq %rdx, %rdx + jnz sha256_transform_8way_swap + + vmovdqu 0*32(%rsi), %ymm0 + vmovdqu 1*32(%rsi), %ymm1 + vmovdqu 2*32(%rsi), %ymm2 + vmovdqu 3*32(%rsi), %ymm3 + vmovdqu 4*32(%rsi), %ymm4 + vmovdqu 5*32(%rsi), %ymm5 + vmovdqu 6*32(%rsi), %ymm6 + vmovdqu 7*32(%rsi), %ymm7 + vmovdqa %ymm0, 0*32(%rsp) + vmovdqa %ymm1, 1*32(%rsp) + vmovdqa %ymm2, 2*32(%rsp) + vmovdqa %ymm3, 3*32(%rsp) + vmovdqa %ymm4, 4*32(%rsp) + vmovdqa %ymm5, 5*32(%rsp) + vmovdqa %ymm6, 6*32(%rsp) + vmovdqa %ymm7, 7*32(%rsp) + vmovdqu 8*32(%rsi), %ymm0 + vmovdqu 9*32(%rsi), %ymm1 + vmovdqu 10*32(%rsi), %ymm2 + vmovdqu 11*32(%rsi), %ymm3 + vmovdqu 12*32(%rsi), %ymm4 + vmovdqu 13*32(%rsi), %ymm5 + vmovdqu 14*32(%rsi), %ymm6 + vmovdqu 15*32(%rsi), %ymm7 + vmovdqa %ymm0, 8*32(%rsp) + vmovdqa %ymm1, 9*32(%rsp) + vmovdqa %ymm2, 10*32(%rsp) + vmovdqa %ymm3, 11*32(%rsp) + vmovdqa %ymm4, 12*32(%rsp) + vmovdqa %ymm5, 13*32(%rsp) + vmovdqa %ymm6, 14*32(%rsp) + vmovdqa %ymm7, 15*32(%rsp) + jmp sha256_transform_8way_core_avx2 + + .p2align 6 +sha256_transform_8way_swap: + vmovdqu 0*32(%rsi), %ymm0 + vmovdqu (0+1)*32(%rsi), %ymm2 + vpshuflw $0xb1, %ymm0, %ymm0 + vpshuflw $0xb1, %ymm2, %ymm2 + vpshufhw $0xb1, %ymm0, %ymm0 + vpshufhw $0xb1, %ymm2, %ymm2 + vpsrlw $8, %ymm0, %ymm1 + vpsrlw $8, %ymm2, %ymm3 + vpsllw $8, %ymm0, %ymm0 + vpsllw $8, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm3, %ymm2, %ymm2 + vmovdqa %ymm0, 0*32(%rsp) + vmovdqa %ymm2, (0+1)*32(%rsp) + vmovdqu 2*32(%rsi), %ymm0 + vmovdqu (2+1)*32(%rsi), %ymm2 + vpshuflw $0xb1, %ymm0, %ymm0 + vpshuflw $0xb1, %ymm2, %ymm2 + vpshufhw $0xb1, %ymm0, %ymm0 + vpshufhw $0xb1, %ymm2, %ymm2 + vpsrlw $8, %ymm0, %ymm1 + vpsrlw $8, %ymm2, %ymm3 + vpsllw $8, %ymm0, %ymm0 + vpsllw $8, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm3, %ymm2, %ymm2 + vmovdqa %ymm0, 2*32(%rsp) + vmovdqa %ymm2, (2+1)*32(%rsp) + vmovdqu 4*32(%rsi), %ymm0 + vmovdqu (4+1)*32(%rsi), %ymm2 + vpshuflw $0xb1, %ymm0, %ymm0 + vpshuflw $0xb1, %ymm2, %ymm2 + vpshufhw $0xb1, %ymm0, %ymm0 + vpshufhw $0xb1, %ymm2, %ymm2 + vpsrlw $8, %ymm0, %ymm1 + vpsrlw $8, %ymm2, %ymm3 + vpsllw $8, %ymm0, %ymm0 + vpsllw $8, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm3, %ymm2, %ymm2 + vmovdqa %ymm0, 4*32(%rsp) + vmovdqa %ymm2, (4+1)*32(%rsp) + vmovdqu 6*32(%rsi), %ymm0 + vmovdqu (6+1)*32(%rsi), %ymm2 + vpshuflw $0xb1, %ymm0, %ymm0 + vpshuflw $0xb1, %ymm2, %ymm2 + vpshufhw $0xb1, %ymm0, %ymm0 + vpshufhw $0xb1, %ymm2, %ymm2 + vpsrlw $8, %ymm0, %ymm1 + vpsrlw $8, %ymm2, %ymm3 + vpsllw $8, %ymm0, %ymm0 + vpsllw $8, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm3, %ymm2, %ymm2 + vmovdqa %ymm0, 6*32(%rsp) + vmovdqa %ymm2, (6+1)*32(%rsp) + vmovdqu 8*32(%rsi), %ymm0 + vmovdqu (8+1)*32(%rsi), %ymm2 + vpshuflw $0xb1, %ymm0, %ymm0 + vpshuflw $0xb1, %ymm2, %ymm2 + vpshufhw $0xb1, %ymm0, %ymm0 + vpshufhw $0xb1, %ymm2, %ymm2 + vpsrlw $8, %ymm0, %ymm1 + vpsrlw $8, %ymm2, %ymm3 + vpsllw $8, %ymm0, %ymm0 + vpsllw $8, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm3, %ymm2, %ymm2 + vmovdqa %ymm0, 8*32(%rsp) + vmovdqa %ymm2, (8+1)*32(%rsp) + vmovdqu 10*32(%rsi), %ymm0 + vmovdqu (10+1)*32(%rsi), %ymm2 + vpshuflw $0xb1, %ymm0, %ymm0 + vpshuflw $0xb1, %ymm2, %ymm2 + vpshufhw $0xb1, %ymm0, %ymm0 + vpshufhw $0xb1, %ymm2, %ymm2 + vpsrlw $8, %ymm0, %ymm1 + vpsrlw $8, %ymm2, %ymm3 + vpsllw $8, %ymm0, %ymm0 + vpsllw $8, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm3, %ymm2, %ymm2 + vmovdqa %ymm0, 10*32(%rsp) + vmovdqa %ymm2, (10+1)*32(%rsp) + vmovdqu 12*32(%rsi), %ymm0 + vmovdqu (12+1)*32(%rsi), %ymm2 + vpshuflw $0xb1, %ymm0, %ymm0 + vpshuflw $0xb1, %ymm2, %ymm2 + vpshufhw $0xb1, %ymm0, %ymm0 + vpshufhw $0xb1, %ymm2, %ymm2 + vpsrlw $8, %ymm0, %ymm1 + vpsrlw $8, %ymm2, %ymm3 + vpsllw $8, %ymm0, %ymm0 + vpsllw $8, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm3, %ymm2, %ymm2 + vmovdqa %ymm0, 12*32(%rsp) + vmovdqa %ymm2, (12+1)*32(%rsp) + vmovdqu 14*32(%rsi), %ymm0 + vmovdqu (14+1)*32(%rsi), %ymm2 + vpshuflw $0xb1, %ymm0, %ymm0 + vpshuflw $0xb1, %ymm2, %ymm2 + vpshufhw $0xb1, %ymm0, %ymm0 + vpshufhw $0xb1, %ymm2, %ymm2 + vpsrlw $8, %ymm0, %ymm1 + vpsrlw $8, %ymm2, %ymm3 + vpsllw $8, %ymm0, %ymm0 + vpsllw $8, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm3, %ymm2, %ymm2 + vmovdqa %ymm0, 14*32(%rsp) + vmovdqa %ymm2, (14+1)*32(%rsp) + jmp sha256_transform_8way_core_avx2 + + .p2align 6 +sha256_transform_8way_finish: + vmovdqu 0*32(%rdi), %ymm2 + vmovdqu 1*32(%rdi), %ymm6 + vmovdqu 2*32(%rdi), %ymm11 + vmovdqu 3*32(%rdi), %ymm1 + vpaddd %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd %ymm11, %ymm4, %ymm4 + vpaddd %ymm1, %ymm3, %ymm3 + vmovdqu 4*32(%rdi), %ymm2 + vmovdqu 5*32(%rdi), %ymm6 + vmovdqu 6*32(%rdi), %ymm11 + vmovdqu 7*32(%rdi), %ymm1 + vpaddd %ymm2, %ymm0, %ymm0 + vpaddd %ymm6, %ymm8, %ymm8 + vpaddd %ymm11, %ymm9, %ymm9 + vpaddd %ymm1, %ymm10, %ymm10 + + vmovdqu %ymm7, 0*32(%rdi) + vmovdqu %ymm5, 1*32(%rdi) + vmovdqu %ymm4, 2*32(%rdi) + vmovdqu %ymm3, 3*32(%rdi) + vmovdqu %ymm0, 4*32(%rdi) + vmovdqu %ymm8, 5*32(%rdi) + vmovdqu %ymm9, 6*32(%rdi) + vmovdqu %ymm10, 7*32(%rdi) + + movq %r8, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + vmovdqa 0(%rsp), %xmm6 + vmovdqa 16(%rsp), %xmm7 + vmovdqa 32(%rsp), %xmm8 + vmovdqa 48(%rsp), %xmm9 + vmovdqa 64(%rsp), %xmm10 + vmovdqa 80(%rsp), %xmm11 + addq $96, %rsp + popq %rdi +#endif + ret + +#endif /* USE_AVX2 */ + + + .data + .p2align 3 +sha256d_ms_4way_addr: + .quad 0x0 + + .text + .p2align 6 + .globl sha256d_ms_4way + .globl _sha256d_ms_4way +sha256d_ms_4way: +_sha256d_ms_4way: + jmp *sha256d_ms_4way_addr(%rip) + + + .p2align 6 +sha256d_ms_4way_sse2: +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + subq $32, %rsp + movdqa %xmm6, 0(%rsp) + movdqa %xmm7, 16(%rsp) + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx + movq %r9, %rcx +#endif + subq $8+67*16, %rsp + + leaq 256(%rsi), %rax + +sha256d_ms_4way_sse2_extend_loop1: + movdqa 3*16(%rsi), %xmm0 + movdqa 2*16(%rax), %xmm3 + movdqa 3*16(%rax), %xmm7 + movdqa %xmm3, 5*16(%rsp) + movdqa %xmm7, 6*16(%rsp) + movdqa %xmm0, %xmm2 + paddd %xmm0, %xmm7 + psrld $3, %xmm0 + movdqa %xmm0, %xmm1 + pslld $14, %xmm2 + psrld $4, %xmm1 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + psrld $11, %xmm1 + pslld $11, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + paddd %xmm0, %xmm3 + movdqa %xmm3, 2*16(%rax) + movdqa %xmm7, 3*16(%rax) + + movdqa 4*16(%rax), %xmm0 + movdqa %xmm0, 7*16(%rsp) + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + movdqa %xmm3, 4*16(%rax) + movdqa %xmm7, 5*16(%rax) + + movdqa 6*16(%rax), %xmm0 + movdqa 7*16(%rax), %xmm4 + movdqa %xmm0, 9*16(%rsp) + movdqa %xmm4, 10*16(%rsp) + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 6*16(%rax) + movdqa %xmm7, 7*16(%rax) + + movdqa 8*16(%rax), %xmm0 + movdqa 2*16(%rax), %xmm4 + movdqa %xmm0, 11*16(%rsp) + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 8*16(%rax) + movdqa %xmm7, 9*16(%rax) + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd 3*16(%rax), %xmm3 + paddd 4*16(%rax), %xmm7 + movdqa %xmm3, 10*16(%rax) + movdqa %xmm7, 11*16(%rax) + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd 5*16(%rax), %xmm3 + paddd 6*16(%rax), %xmm7 + movdqa %xmm3, 12*16(%rax) + movdqa %xmm7, 13*16(%rax) + + movdqa 14*16(%rax), %xmm0 + movdqa 15*16(%rax), %xmm4 + movdqa %xmm0, 17*16(%rsp) + movdqa %xmm4, 18*16(%rsp) + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + paddd 7*16(%rax), %xmm0 + paddd 8*16(%rax), %xmm4 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 14*16(%rax) + movdqa %xmm7, 15*16(%rax) + +sha256d_ms_4way_sse2_extend_loop2: + movdqa (16-15)*16(%rax), %xmm0 + movdqa (16-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (16-16)*16(%rax), %xmm0 + paddd (16-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (16-7)*16(%rax), %xmm0 + paddd (16-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 16*16(%rax) + movdqa %xmm7, (16+1)*16(%rax) + movdqa (18-15)*16(%rax), %xmm0 + movdqa (18-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (18-16)*16(%rax), %xmm0 + paddd (18-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (18-7)*16(%rax), %xmm0 + paddd (18-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 18*16(%rax) + movdqa %xmm7, (18+1)*16(%rax) + movdqa (20-15)*16(%rax), %xmm0 + movdqa (20-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (20-16)*16(%rax), %xmm0 + paddd (20-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (20-7)*16(%rax), %xmm0 + paddd (20-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 20*16(%rax) + movdqa %xmm7, (20+1)*16(%rax) + movdqa (22-15)*16(%rax), %xmm0 + movdqa (22-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (22-16)*16(%rax), %xmm0 + paddd (22-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (22-7)*16(%rax), %xmm0 + paddd (22-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 22*16(%rax) + movdqa %xmm7, (22+1)*16(%rax) + movdqa (24-15)*16(%rax), %xmm0 + movdqa (24-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (24-16)*16(%rax), %xmm0 + paddd (24-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (24-7)*16(%rax), %xmm0 + paddd (24-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 24*16(%rax) + movdqa %xmm7, (24+1)*16(%rax) + movdqa (26-15)*16(%rax), %xmm0 + movdqa (26-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (26-16)*16(%rax), %xmm0 + paddd (26-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (26-7)*16(%rax), %xmm0 + paddd (26-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 26*16(%rax) + movdqa %xmm7, (26+1)*16(%rax) + movdqa (28-15)*16(%rax), %xmm0 + movdqa (28-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (28-16)*16(%rax), %xmm0 + paddd (28-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (28-7)*16(%rax), %xmm0 + paddd (28-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 28*16(%rax) + movdqa %xmm7, (28+1)*16(%rax) + movdqa (30-15)*16(%rax), %xmm0 + movdqa (30-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (30-16)*16(%rax), %xmm0 + paddd (30-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (30-7)*16(%rax), %xmm0 + paddd (30-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 30*16(%rax) + movdqa %xmm7, (30+1)*16(%rax) + movdqa (32-15)*16(%rax), %xmm0 + movdqa (32-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (32-16)*16(%rax), %xmm0 + paddd (32-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (32-7)*16(%rax), %xmm0 + paddd (32-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 32*16(%rax) + movdqa %xmm7, (32+1)*16(%rax) + movdqa (34-15)*16(%rax), %xmm0 + movdqa (34-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (34-16)*16(%rax), %xmm0 + paddd (34-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (34-7)*16(%rax), %xmm0 + paddd (34-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 34*16(%rax) + movdqa %xmm7, (34+1)*16(%rax) + movdqa (36-15)*16(%rax), %xmm0 + movdqa (36-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (36-16)*16(%rax), %xmm0 + paddd (36-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (36-7)*16(%rax), %xmm0 + paddd (36-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 36*16(%rax) + movdqa %xmm7, (36+1)*16(%rax) + movdqa (38-15)*16(%rax), %xmm0 + movdqa (38-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (38-16)*16(%rax), %xmm0 + paddd (38-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (38-7)*16(%rax), %xmm0 + paddd (38-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 38*16(%rax) + movdqa %xmm7, (38+1)*16(%rax) + movdqa (40-15)*16(%rax), %xmm0 + movdqa (40-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (40-16)*16(%rax), %xmm0 + paddd (40-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (40-7)*16(%rax), %xmm0 + paddd (40-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 40*16(%rax) + movdqa %xmm7, (40+1)*16(%rax) + movdqa (42-15)*16(%rax), %xmm0 + movdqa (42-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (42-16)*16(%rax), %xmm0 + paddd (42-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (42-7)*16(%rax), %xmm0 + paddd (42-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 42*16(%rax) + movdqa %xmm7, (42+1)*16(%rax) + jz sha256d_ms_4way_sse2_extend_coda2 + movdqa (44-15)*16(%rax), %xmm0 + movdqa (44-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (44-16)*16(%rax), %xmm0 + paddd (44-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (44-7)*16(%rax), %xmm0 + paddd (44-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 44*16(%rax) + movdqa %xmm7, (44+1)*16(%rax) + movdqa (46-15)*16(%rax), %xmm0 + movdqa (46-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (46-16)*16(%rax), %xmm0 + paddd (46-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (46-7)*16(%rax), %xmm0 + paddd (46-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 46*16(%rax) + movdqa %xmm7, (46+1)*16(%rax) + + movdqa 0(%rcx), %xmm3 + movdqa 16(%rcx), %xmm0 + movdqa 32(%rcx), %xmm1 + movdqa 48(%rcx), %xmm2 + movdqa 64(%rcx), %xmm6 + movdqa 80(%rcx), %xmm7 + movdqa 96(%rcx), %xmm5 + movdqa 112(%rcx), %xmm4 + movdqa %xmm1, 0(%rsp) + movdqa %xmm2, 16(%rsp) + movdqa %xmm6, 32(%rsp) + + movq %rsi, %rax + leaq sha256_4k(%rip), %rcx + jmp sha256d_ms_4way_sse2_main_loop1 + +sha256d_ms_4way_sse2_main_loop2: + movdqa 16*(0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 +sha256d_ms_4way_sse2_main_loop1: + movdqa 16*(3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(4+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(4+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(4+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(4+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(4+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(4+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(4+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(4+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(8+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(8+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(8+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(8+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(8+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(8+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(8+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(8+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(12+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(12+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(12+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(12+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(12+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(12+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(12+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(12+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(16+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(16+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(16+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(16+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(16+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(16+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(16+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(16+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(20+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(20+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(20+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(20+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(20+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(20+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(20+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(20+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(24+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(24+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(24+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(24+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(24+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(24+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(24+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(24+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(28+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(28+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(28+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(28+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(28+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(28+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(28+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(28+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(32+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(32+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(32+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(32+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(32+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(32+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(32+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(32+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(36+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(36+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(36+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(36+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(36+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(36+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(36+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(36+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(40+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(40+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(40+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(40+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(40+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(40+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(40+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(40+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(44+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(44+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(44+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(44+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(44+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(44+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(44+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(44+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(48+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(48+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(48+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(48+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(48+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(48+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(48+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(48+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(52+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(52+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(52+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(52+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(52+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(52+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(52+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(52+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(56)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(56)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + jz sha256d_ms_4way_sse2_finish + movdqa 16*(57)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(57)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(58)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(58)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(59)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(59)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(60+0)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(60+0)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(60+1)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(60+1)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(60+2)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(60+2)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(60+3)(%rax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%rsp), %xmm6 + + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(60+3)(%rcx), %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + + movdqa 5*16(%rsp), %xmm1 + movdqa 6*16(%rsp), %xmm2 + movdqa 7*16(%rsp), %xmm6 + movdqa %xmm1, 18*16(%rsi) + movdqa %xmm2, 19*16(%rsi) + movdqa %xmm6, 20*16(%rsi) + movdqa 9*16(%rsp), %xmm1 + movdqa 10*16(%rsp), %xmm2 + movdqa 11*16(%rsp), %xmm6 + movdqa %xmm1, 22*16(%rsi) + movdqa %xmm2, 23*16(%rsi) + movdqa %xmm6, 24*16(%rsi) + movdqa 17*16(%rsp), %xmm1 + movdqa 18*16(%rsp), %xmm2 + movdqa %xmm1, 30*16(%rsi) + movdqa %xmm2, 31*16(%rsi) + + movdqa 0(%rsp), %xmm1 + movdqa 16(%rsp), %xmm2 + movdqa 32(%rsp), %xmm6 + paddd 0(%rdx), %xmm7 + paddd 16(%rdx), %xmm5 + paddd 32(%rdx), %xmm4 + paddd 48(%rdx), %xmm3 + paddd 64(%rdx), %xmm0 + paddd 80(%rdx), %xmm1 + paddd 96(%rdx), %xmm2 + paddd 112(%rdx), %xmm6 + + movdqa %xmm7, 48+0(%rsp) + movdqa %xmm5, 48+16(%rsp) + movdqa %xmm4, 48+32(%rsp) + movdqa %xmm3, 48+48(%rsp) + movdqa %xmm0, 48+64(%rsp) + movdqa %xmm1, 48+80(%rsp) + movdqa %xmm2, 48+96(%rsp) + movdqa %xmm6, 48+112(%rsp) + + pxor %xmm0, %xmm0 + movq $0x8000000000000100, %rax + movd %rax, %xmm1 + pshufd $0x55, %xmm1, %xmm2 + pshufd $0x00, %xmm1, %xmm1 + movdqa %xmm2, 48+128(%rsp) + movdqa %xmm0, 48+144(%rsp) + movdqa %xmm0, 48+160(%rsp) + movdqa %xmm0, 48+176(%rsp) + movdqa %xmm0, 48+192(%rsp) + movdqa %xmm0, 48+208(%rsp) + movdqa %xmm0, 48+224(%rsp) + movdqa %xmm1, 48+240(%rsp) + + leaq 19*16(%rsp), %rax + cmpq %rax, %rax + + movdqa -15*16(%rax), %xmm0 + movdqa -14*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + paddd -16*16(%rax), %xmm0 + paddd -15*16(%rax), %xmm4 + paddd sha256d_4preext2_17(%rip), %xmm4 + movdqa %xmm0, %xmm3 + movdqa %xmm4, %xmm7 + movdqa %xmm3, 0*16(%rax) + movdqa %xmm7, 1*16(%rax) + + movdqa (2-15)*16(%rax), %xmm0 + movdqa (2-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (2-16)*16(%rax), %xmm0 + paddd (2-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (2-7)*16(%rax), %xmm0 + paddd (2-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 2*16(%rax) + movdqa %xmm7, (2+1)*16(%rax) + movdqa (4-15)*16(%rax), %xmm0 + movdqa (4-14)*16(%rax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (4-16)*16(%rax), %xmm0 + paddd (4-15)*16(%rax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (4-7)*16(%rax), %xmm0 + paddd (4-6)*16(%rax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 4*16(%rax) + movdqa %xmm7, (4+1)*16(%rax) + + movdqa -9*16(%rax), %xmm0 + movdqa sha256d_4preext2_23(%rip), %xmm4 + movdqa %xmm0, %xmm2 + psrld $3, %xmm0 + movdqa %xmm0, %xmm1 + pslld $14, %xmm2 + psrld $4, %xmm1 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + psrld $11, %xmm1 + pslld $11, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + paddd -10*16(%rax), %xmm0 + paddd -9*16(%rax), %xmm4 + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + paddd -1*16(%rax), %xmm0 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + paddd 0*16(%rax), %xmm4 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 6*16(%rax) + movdqa %xmm7, 7*16(%rax) + + movdqa sha256d_4preext2_24(%rip), %xmm0 + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + paddd 1*16(%rax), %xmm0 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd 2*16(%rax), %xmm7 + movdqa %xmm3, 8*16(%rax) + movdqa %xmm7, 9*16(%rax) + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd 3*16(%rax), %xmm3 + paddd 4*16(%rax), %xmm7 + movdqa %xmm3, 10*16(%rax) + movdqa %xmm7, 11*16(%rax) + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd 5*16(%rax), %xmm3 + paddd 6*16(%rax), %xmm7 + movdqa %xmm3, 12*16(%rax) + movdqa %xmm7, 13*16(%rax) + + movdqa sha256d_4preext2_30(%rip), %xmm0 + movdqa 0*16(%rax), %xmm4 + movdqa %xmm4, %xmm6 + psrld $3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $14, %xmm6 + psrld $4, %xmm5 + pxor %xmm5, %xmm4 + pxor %xmm6, %xmm4 + psrld $11, %xmm5 + pslld $11, %xmm6 + pxor %xmm5, %xmm4 + pxor %xmm6, %xmm4 + paddd -1*16(%rax), %xmm4 + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + paddd 7*16(%rax), %xmm0 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + paddd 8*16(%rax), %xmm4 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 14*16(%rax) + movdqa %xmm7, 15*16(%rax) + + jmp sha256d_ms_4way_sse2_extend_loop2 + +sha256d_ms_4way_sse2_extend_coda2: + movdqa (44-15)*16(%rax), %xmm0 + movdqa %xmm0, %xmm2 + psrld $3, %xmm0 + movdqa %xmm0, %xmm1 + pslld $14, %xmm2 + psrld $4, %xmm1 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + psrld $11, %xmm1 + pslld $11, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + paddd (44-16)*16(%rax), %xmm0 + paddd (44-7)*16(%rax), %xmm0 + + movdqa %xmm3, %xmm2 + psrld $10, %xmm3 + pslld $13, %xmm2 + movdqa %xmm3, %xmm1 + psrld $7, %xmm1 + pxor %xmm1, %xmm3 + pxor %xmm2, %xmm3 + psrld $2, %xmm1 + pslld $2, %xmm2 + pxor %xmm1, %xmm3 + pxor %xmm2, %xmm3 + paddd %xmm0, %xmm3 + movdqa %xmm3, 44*16(%rax) + + movdqa sha256_4h+0(%rip), %xmm7 + movdqa sha256_4h+16(%rip), %xmm5 + movdqa sha256_4h+32(%rip), %xmm4 + movdqa sha256_4h+48(%rip), %xmm3 + movdqa sha256_4h+64(%rip), %xmm0 + movdqa sha256_4h+80(%rip), %xmm1 + movdqa sha256_4h+96(%rip), %xmm2 + movdqa sha256_4h+112(%rip), %xmm6 + movdqa %xmm1, 0(%rsp) + movdqa %xmm2, 16(%rsp) + movdqa %xmm6, 32(%rsp) + + leaq 48(%rsp), %rax + leaq sha256_4k(%rip), %rcx + jmp sha256d_ms_4way_sse2_main_loop2 + + +sha256d_ms_4way_sse2_finish: + movdqa 16*57(%rax), %xmm6 + paddd 16*57(%rcx), %xmm6 + paddd 32(%rsp), %xmm6 + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + paddd %xmm3, %xmm6 + pandn %xmm2, %xmm1 + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + paddd %xmm1, %xmm6 + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $5, %xmm1 + pxor %xmm1, %xmm0 + paddd %xmm6, %xmm0 + movdqa 16*58(%rax), %xmm6 + paddd 16*58(%rcx), %xmm6 + paddd 32(%rsp), %xmm6 + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + paddd %xmm4, %xmm6 + pandn %xmm2, %xmm1 + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + paddd %xmm1, %xmm6 + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $5, %xmm1 + pxor %xmm1, %xmm0 + paddd %xmm6, %xmm0 + movdqa 16*59(%rax), %xmm6 + paddd 16*59(%rcx), %xmm6 + paddd 32(%rsp), %xmm6 + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + paddd %xmm5, %xmm6 + pandn %xmm2, %xmm1 + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + paddd %xmm1, %xmm6 + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $5, %xmm1 + pxor %xmm1, %xmm0 + paddd %xmm6, %xmm0 + movdqa 16*60(%rax), %xmm6 + paddd 16*60(%rcx), %xmm6 + paddd 32(%rsp), %xmm6 + movdqa %xmm0, %xmm1 + movdqa 16(%rsp), %xmm2 + paddd %xmm7, %xmm6 + pandn %xmm2, %xmm1 + movdqa %xmm2, 32(%rsp) + movdqa 0(%rsp), %xmm2 + movdqa %xmm2, 16(%rsp) + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%rsp) + paddd %xmm1, %xmm6 + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $5, %xmm1 + pxor %xmm1, %xmm0 + paddd %xmm6, %xmm0 + + paddd sha256_4h+112(%rip), %xmm0 + movdqa %xmm0, 112(%rdi) + + addq $8+67*16, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + movdqa 0(%rsp), %xmm6 + movdqa 16(%rsp), %xmm7 + addq $32, %rsp + popq %rdi +#endif + ret + + +#if defined(USE_AVX) + + .p2align 6 +sha256d_ms_4way_avx: +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + subq $80, %rsp + movdqa %xmm6, 0(%rsp) + movdqa %xmm7, 16(%rsp) + movdqa %xmm8, 32(%rsp) + movdqa %xmm9, 48(%rsp) + movdqa %xmm10, 64(%rsp) + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx + movq %r9, %rcx +#endif + subq $1032, %rsp + + leaq 256(%rsi), %rax + +sha256d_ms_4way_avx_extend_loop1: + vmovdqa 3*16(%rsi), %xmm0 + vmovdqa 2*16(%rax), %xmm3 + vmovdqa 3*16(%rax), %xmm7 + vmovdqa %xmm3, 2*16(%rsp) + vmovdqa %xmm7, 3*16(%rsp) + vpaddd %xmm0, %xmm7, %xmm7 + vpslld $14, %xmm0, %xmm2 + vpsrld $3, %xmm0, %xmm0 + vpsrld $4, %xmm0, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpsrld $11, %xmm1, %xmm1 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm3, %xmm3 + vmovdqa %xmm3, 2*16(%rax) + vmovdqa %xmm7, 3*16(%rax) + + vmovdqa 4*16(%rax), %xmm0 + vmovdqa %xmm0, 4*16(%rsp) + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vmovdqa %xmm3, 4*16(%rax) + vmovdqa %xmm7, 5*16(%rax) + + vmovdqa 6*16(%rax), %xmm0 + vmovdqa 7*16(%rax), %xmm4 + vmovdqa %xmm0, 6*16(%rsp) + vmovdqa %xmm4, 7*16(%rsp) + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 6*16(%rax) + vmovdqa %xmm7, 7*16(%rax) + + vmovdqa 8*16(%rax), %xmm0 + vmovdqa 2*16(%rax), %xmm4 + vmovdqa %xmm0, 8*16(%rsp) + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 8*16(%rax) + vmovdqa %xmm7, 9*16(%rax) + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd 3*16(%rax), %xmm3, %xmm3 + vpaddd 4*16(%rax), %xmm7, %xmm7 + vmovdqa %xmm3, 10*16(%rax) + vmovdqa %xmm7, 11*16(%rax) + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd 5*16(%rax), %xmm3, %xmm3 + vpaddd 6*16(%rax), %xmm7, %xmm7 + vmovdqa %xmm3, 12*16(%rax) + vmovdqa %xmm7, 13*16(%rax) + + vmovdqa 14*16(%rax), %xmm0 + vmovdqa 15*16(%rax), %xmm4 + vmovdqa %xmm0, 14*16(%rsp) + vmovdqa %xmm4, 15*16(%rsp) + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpaddd 7*16(%rax), %xmm0, %xmm0 + vpaddd 8*16(%rax), %xmm4, %xmm4 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 14*16(%rax) + vmovdqa %xmm7, 15*16(%rax) + +sha256d_ms_4way_avx_extend_loop2: + vmovdqa (16-15)*16(%rax), %xmm0 + vmovdqa (16-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (16-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (16-7)*16(%rax), %xmm0, %xmm0 + vpaddd (16-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 16*16(%rax) + vmovdqa %xmm7, (16+1)*16(%rax) + vmovdqa (18-15)*16(%rax), %xmm0 + vmovdqa (18-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (18-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (18-7)*16(%rax), %xmm0, %xmm0 + vpaddd (18-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 18*16(%rax) + vmovdqa %xmm7, (18+1)*16(%rax) + vmovdqa (20-15)*16(%rax), %xmm0 + vmovdqa (20-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (20-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (20-7)*16(%rax), %xmm0, %xmm0 + vpaddd (20-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 20*16(%rax) + vmovdqa %xmm7, (20+1)*16(%rax) + vmovdqa (22-15)*16(%rax), %xmm0 + vmovdqa (22-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (22-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (22-7)*16(%rax), %xmm0, %xmm0 + vpaddd (22-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 22*16(%rax) + vmovdqa %xmm7, (22+1)*16(%rax) + vmovdqa (24-15)*16(%rax), %xmm0 + vmovdqa (24-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (24-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (24-7)*16(%rax), %xmm0, %xmm0 + vpaddd (24-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 24*16(%rax) + vmovdqa %xmm7, (24+1)*16(%rax) + vmovdqa (26-15)*16(%rax), %xmm0 + vmovdqa (26-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (26-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (26-7)*16(%rax), %xmm0, %xmm0 + vpaddd (26-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 26*16(%rax) + vmovdqa %xmm7, (26+1)*16(%rax) + vmovdqa (28-15)*16(%rax), %xmm0 + vmovdqa (28-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (28-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (28-7)*16(%rax), %xmm0, %xmm0 + vpaddd (28-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 28*16(%rax) + vmovdqa %xmm7, (28+1)*16(%rax) + vmovdqa (30-15)*16(%rax), %xmm0 + vmovdqa (30-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (30-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (30-7)*16(%rax), %xmm0, %xmm0 + vpaddd (30-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 30*16(%rax) + vmovdqa %xmm7, (30+1)*16(%rax) + vmovdqa (32-15)*16(%rax), %xmm0 + vmovdqa (32-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (32-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (32-7)*16(%rax), %xmm0, %xmm0 + vpaddd (32-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 32*16(%rax) + vmovdqa %xmm7, (32+1)*16(%rax) + vmovdqa (34-15)*16(%rax), %xmm0 + vmovdqa (34-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (34-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (34-7)*16(%rax), %xmm0, %xmm0 + vpaddd (34-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 34*16(%rax) + vmovdqa %xmm7, (34+1)*16(%rax) + vmovdqa (36-15)*16(%rax), %xmm0 + vmovdqa (36-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (36-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (36-7)*16(%rax), %xmm0, %xmm0 + vpaddd (36-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 36*16(%rax) + vmovdqa %xmm7, (36+1)*16(%rax) + vmovdqa (38-15)*16(%rax), %xmm0 + vmovdqa (38-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (38-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (38-7)*16(%rax), %xmm0, %xmm0 + vpaddd (38-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 38*16(%rax) + vmovdqa %xmm7, (38+1)*16(%rax) + vmovdqa (40-15)*16(%rax), %xmm0 + vmovdqa (40-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (40-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (40-7)*16(%rax), %xmm0, %xmm0 + vpaddd (40-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 40*16(%rax) + vmovdqa %xmm7, (40+1)*16(%rax) + vmovdqa (42-15)*16(%rax), %xmm0 + vmovdqa (42-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (42-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (42-7)*16(%rax), %xmm0, %xmm0 + vpaddd (42-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 42*16(%rax) + vmovdqa %xmm7, (42+1)*16(%rax) + jz sha256d_ms_4way_avx_extend_coda2 + vmovdqa (44-15)*16(%rax), %xmm0 + vmovdqa (44-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (44-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (44-7)*16(%rax), %xmm0, %xmm0 + vpaddd (44-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 44*16(%rax) + vmovdqa %xmm7, (44+1)*16(%rax) + vmovdqa (46-15)*16(%rax), %xmm0 + vmovdqa (46-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (46-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (46-7)*16(%rax), %xmm0, %xmm0 + vpaddd (46-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 46*16(%rax) + vmovdqa %xmm7, (46+1)*16(%rax) + + movdqa 0(%rcx), %xmm7 + movdqa 16(%rcx), %xmm8 + movdqa 32(%rcx), %xmm9 + movdqa 48(%rcx), %xmm10 + movdqa 64(%rcx), %xmm0 + movdqa 80(%rcx), %xmm5 + movdqa 96(%rcx), %xmm4 + movdqa 112(%rcx), %xmm3 + + movq %rsi, %rax + leaq sha256_4k(%rip), %rcx + jmp sha256d_ms_4way_avx_main_loop1 + +sha256d_ms_4way_avx_main_loop2: + vpaddd 16*(0)(%rax), %xmm10, %xmm6 + vpaddd 16*(0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(1)(%rax), %xmm9, %xmm6 + vpaddd 16*(1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(2)(%rax), %xmm8, %xmm6 + vpaddd 16*(2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 +sha256d_ms_4way_avx_main_loop1: + vpaddd 16*(3)(%rax), %xmm0, %xmm6 + vpaddd 16*(3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(4+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(4+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(4+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(4+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(4+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(4+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(4+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(4+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(8+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(8+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(8+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(8+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(8+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(8+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(8+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(8+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(12+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(12+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(12+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(12+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(12+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(12+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(12+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(12+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(16+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(16+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(16+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(16+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(16+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(16+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(16+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(16+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(20+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(20+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(20+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(20+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(20+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(20+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(20+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(20+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(24+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(24+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(24+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(24+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(24+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(24+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(24+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(24+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(28+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(28+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(28+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(28+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(28+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(28+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(28+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(28+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(32+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(32+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(32+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(32+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(32+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(32+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(32+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(32+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(36+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(36+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(36+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(36+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(36+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(36+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(36+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(36+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(40+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(40+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(40+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(40+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(40+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(40+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(40+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(40+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(44+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(44+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(44+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(44+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(44+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(44+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(44+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(44+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(48+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(48+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(48+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(48+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(48+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(48+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(48+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(48+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(52+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(52+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(52+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(52+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(52+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(52+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(52+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(52+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(56)(%rax), %xmm10, %xmm6 + vpaddd 16*(56)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + jz sha256d_ms_4way_avx_finish + vpaddd 16*(57)(%rax), %xmm9, %xmm6 + vpaddd 16*(57)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(58)(%rax), %xmm8, %xmm6 + vpaddd 16*(58)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(59)(%rax), %xmm0, %xmm6 + vpaddd 16*(59)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(60+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(60+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm7, %xmm2 + vpsrld $2, %xmm7, %xmm3 + vpsrld $11, %xmm3, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm1, %xmm3, %xmm3 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(60+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(60+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm3, %xmm2 + vpsrld $2, %xmm3, %xmm4 + vpsrld $11, %xmm4, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm4, %xmm4 + vpxor %xmm1, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(60+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(60+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm4, %xmm2 + vpsrld $2, %xmm4, %xmm5 + vpsrld $11, %xmm5, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm5, %xmm5 + vpxor %xmm1, %xmm5, %xmm5 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(60+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(60+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vpslld $10, %xmm5, %xmm2 + vpsrld $2, %xmm5, %xmm7 + vpsrld $11, %xmm7, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $9, %xmm2, %xmm2 + vpsrld $9, %xmm1, %xmm1 + vpxor %xmm2, %xmm7, %xmm7 + vpxor %xmm1, %xmm7, %xmm7 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + + movdqa 2*16(%rsp), %xmm1 + movdqa 3*16(%rsp), %xmm2 + movdqa 4*16(%rsp), %xmm6 + movdqa %xmm1, 18*16(%rsi) + movdqa %xmm2, 19*16(%rsi) + movdqa %xmm6, 20*16(%rsi) + movdqa 6*16(%rsp), %xmm1 + movdqa 7*16(%rsp), %xmm2 + movdqa 8*16(%rsp), %xmm6 + movdqa %xmm1, 22*16(%rsi) + movdqa %xmm2, 23*16(%rsi) + movdqa %xmm6, 24*16(%rsi) + movdqa 14*16(%rsp), %xmm1 + movdqa 15*16(%rsp), %xmm2 + movdqa %xmm1, 30*16(%rsi) + movdqa %xmm2, 31*16(%rsi) + + paddd 0(%rdx), %xmm7 + paddd 16(%rdx), %xmm5 + paddd 32(%rdx), %xmm4 + paddd 48(%rdx), %xmm3 + paddd 64(%rdx), %xmm0 + paddd 80(%rdx), %xmm8 + paddd 96(%rdx), %xmm9 + paddd 112(%rdx), %xmm10 + + movdqa %xmm7, 0(%rsp) + movdqa %xmm5, 16(%rsp) + movdqa %xmm4, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm0, 64(%rsp) + movdqa %xmm8, 80(%rsp) + movdqa %xmm9, 96(%rsp) + movdqa %xmm10, 112(%rsp) + + pxor %xmm0, %xmm0 + movq $0x8000000000000100, %rax + movd %rax, %xmm1 + pshufd $0x55, %xmm1, %xmm2 + pshufd $0x00, %xmm1, %xmm1 + movdqa %xmm2, 128(%rsp) + movdqa %xmm0, 144(%rsp) + movdqa %xmm0, 160(%rsp) + movdqa %xmm0, 176(%rsp) + movdqa %xmm0, 192(%rsp) + movdqa %xmm0, 208(%rsp) + movdqa %xmm0, 224(%rsp) + movdqa %xmm1, 240(%rsp) + + leaq 256(%rsp), %rax + cmpq %rax, %rax + + vmovdqa -15*16(%rax), %xmm0 + vmovdqa -14*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd -16*16(%rax), %xmm8, %xmm3 + vpaddd sha256d_4preext2_17(%rip), %xmm4, %xmm7 + vmovdqa %xmm3, 0*16(%rax) + vmovdqa %xmm7, 1*16(%rax) + + vmovdqa (2-15)*16(%rax), %xmm0 + vmovdqa (2-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (2-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (2-7)*16(%rax), %xmm0, %xmm0 + vpaddd (2-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 2*16(%rax) + vmovdqa %xmm7, (2+1)*16(%rax) + vmovdqa (4-15)*16(%rax), %xmm0 + vmovdqa (4-14)*16(%rax), %xmm4 + vpslld $14, %xmm0, %xmm2 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpsrld $7, %xmm0, %xmm1 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpsrld $11, %xmm1, %xmm1 + vpsrld $11, %xmm5, %xmm5 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpslld $11, %xmm2, %xmm2 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd (4-16)*16(%rax), %xmm8, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + + vpaddd (4-7)*16(%rax), %xmm0, %xmm0 + vpaddd (4-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 4*16(%rax) + vmovdqa %xmm7, (4+1)*16(%rax) + + vmovdqa -9*16(%rax), %xmm0 + vpslld $14, %xmm0, %xmm2 + vpsrld $3, %xmm0, %xmm8 + vpsrld $7, %xmm0, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpsrld $11, %xmm1, %xmm1 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd sha256d_4preext2_23(%rip), %xmm0, %xmm4 + vpaddd -10*16(%rax), %xmm8, %xmm0 + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpaddd -1*16(%rax), %xmm0, %xmm0 + vpaddd 0*16(%rax), %xmm4, %xmm4 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 6*16(%rax) + vmovdqa %xmm7, 7*16(%rax) + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd sha256d_4preext2_24(%rip), %xmm3, %xmm3 + vpaddd 1*16(%rax), %xmm3, %xmm3 + vpaddd 2*16(%rax), %xmm7, %xmm7 + vmovdqa %xmm3, 8*16(%rax) + vmovdqa %xmm7, 9*16(%rax) + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd 3*16(%rax), %xmm3, %xmm3 + vpaddd 4*16(%rax), %xmm7, %xmm7 + vmovdqa %xmm3, 10*16(%rax) + vmovdqa %xmm7, 11*16(%rax) + + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd 5*16(%rax), %xmm3, %xmm3 + vpaddd 6*16(%rax), %xmm7, %xmm7 + vmovdqa %xmm3, 12*16(%rax) + vmovdqa %xmm7, 13*16(%rax) + + vmovdqa sha256d_4preext2_30(%rip), %xmm0 + vmovdqa 0*16(%rax), %xmm4 + vpslld $14, %xmm4, %xmm6 + vpsrld $3, %xmm4, %xmm4 + vpsrld $4, %xmm4, %xmm5 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm6, %xmm4, %xmm4 + vpsrld $11, %xmm5, %xmm5 + vpslld $11, %xmm6, %xmm6 + vpxor %xmm5, %xmm4, %xmm4 + vpxor %xmm6, %xmm4, %xmm4 + vpaddd -1*16(%rax), %xmm4, %xmm4 + vpslld $13, %xmm3, %xmm2 + vpslld $13, %xmm7, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpaddd 7*16(%rax), %xmm0, %xmm0 + vpaddd 8*16(%rax), %xmm4, %xmm4 + vpsrld $7, %xmm3, %xmm1 + vpsrld $7, %xmm7, %xmm5 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpsrld $2, %xmm1, %xmm1 + vpsrld $2, %xmm5, %xmm5 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpslld $2, %xmm2, %xmm2 + vpslld $2, %xmm6, %xmm6 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm5, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 14*16(%rax) + vmovdqa %xmm7, 15*16(%rax) + + jmp sha256d_ms_4way_avx_extend_loop2 + +sha256d_ms_4way_avx_extend_coda2: + vmovdqa (44-15)*16(%rax), %xmm0 + vpslld $14, %xmm0, %xmm2 + vpsrld $3, %xmm0, %xmm0 + vpsrld $4, %xmm0, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpsrld $11, %xmm1, %xmm1 + vpslld $11, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd (44-16)*16(%rax), %xmm0, %xmm0 + vpaddd (44-7)*16(%rax), %xmm0, %xmm0 + + vpslld $13, %xmm3, %xmm2 + vpsrld $10, %xmm3, %xmm3 + vpsrld $7, %xmm3, %xmm1 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpsrld $2, %xmm1, %xmm1 + vpslld $2, %xmm2, %xmm2 + vpxor %xmm1, %xmm3, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm0, %xmm3, %xmm3 + vmovdqa %xmm3, 44*16(%rax) + + movdqa sha256_4h+0(%rip), %xmm7 + movdqa sha256_4h+16(%rip), %xmm5 + movdqa sha256_4h+32(%rip), %xmm4 + movdqa sha256_4h+48(%rip), %xmm3 + movdqa sha256_4h+64(%rip), %xmm0 + movdqa sha256_4h+80(%rip), %xmm8 + movdqa sha256_4h+96(%rip), %xmm9 + movdqa sha256_4h+112(%rip), %xmm10 + + movq %rsp, %rax + leaq sha256_4k(%rip), %rcx + jmp sha256d_ms_4way_avx_main_loop2 + + +sha256d_ms_4way_avx_finish: + vpaddd 16*57(%rax), %xmm9, %xmm6 + vpaddd 16*57(%rcx), %xmm6, %xmm6 + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + vpslld $7, %xmm10, %xmm1 + vpsrld $6, %xmm10, %xmm9 + vpsrld $5, %xmm9, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm9, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + vpaddd 16*58(%rax), %xmm8, %xmm6 + vpaddd 16*58(%rcx), %xmm6, %xmm6 + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + vpslld $7, %xmm9, %xmm1 + vpsrld $6, %xmm9, %xmm8 + vpsrld $5, %xmm8, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm8, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + vpaddd 16*59(%rax), %xmm0, %xmm6 + vpaddd 16*59(%rcx), %xmm6, %xmm6 + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + vpslld $7, %xmm8, %xmm1 + vpsrld $6, %xmm8, %xmm0 + vpsrld $5, %xmm0, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm0, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + vpaddd 16*60(%rax), %xmm10, %xmm6 + vpaddd 16*60(%rcx), %xmm6, %xmm6 + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + vpslld $7, %xmm0, %xmm1 + vpsrld $6, %xmm0, %xmm10 + vpsrld $5, %xmm10, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $14, %xmm1, %xmm1 + vpsrld $14, %xmm2, %xmm2 + vpxor %xmm1, %xmm10, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpslld $5, %xmm1, %xmm1 + vpxor %xmm1, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + paddd sha256_4h+112(%rip), %xmm10 + movdqa %xmm10, 112(%rdi) + + addq $1032, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + movdqa 0(%rsp), %xmm6 + movdqa 16(%rsp), %xmm7 + movdqa 32(%rsp), %xmm8 + movdqa 48(%rsp), %xmm9 + movdqa 64(%rsp), %xmm10 + addq $80, %rsp + popq %rdi +#endif + ret + +#endif /* USE_AVX */ + + +#if defined(USE_XOP) + + .p2align 6 +sha256d_ms_4way_xop: +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + subq $80, %rsp + movdqa %xmm6, 0(%rsp) + movdqa %xmm7, 16(%rsp) + movdqa %xmm8, 32(%rsp) + movdqa %xmm9, 48(%rsp) + movdqa %xmm10, 64(%rsp) + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx + movq %r9, %rcx +#endif + subq $1032, %rsp + + leaq 256(%rsi), %rax + +sha256d_ms_4way_xop_extend_loop1: + vmovdqa 3*16(%rsi), %xmm0 + vmovdqa 2*16(%rax), %xmm3 + vmovdqa 3*16(%rax), %xmm7 + vmovdqa %xmm3, 2*16(%rsp) + vmovdqa %xmm7, 3*16(%rsp) + vpaddd %xmm0, %xmm7, %xmm7 + vprotd $25, %xmm0, %xmm1 + vprotd $14, %xmm0, %xmm2 + vpsrld $3, %xmm0, %xmm0 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm3, %xmm3 + vmovdqa %xmm3, 2*16(%rax) + vmovdqa %xmm7, 3*16(%rax) + + vmovdqa 4*16(%rax), %xmm0 + vmovdqa %xmm0, 4*16(%rsp) + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vmovdqa %xmm3, 4*16(%rax) + vmovdqa %xmm7, 5*16(%rax) + + vmovdqa 6*16(%rax), %xmm0 + vmovdqa 7*16(%rax), %xmm4 + vmovdqa %xmm0, 6*16(%rsp) + vmovdqa %xmm4, 7*16(%rsp) + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 6*16(%rax) + vmovdqa %xmm7, 7*16(%rax) + + vmovdqa 8*16(%rax), %xmm0 + vmovdqa 2*16(%rax), %xmm4 + vmovdqa %xmm0, 8*16(%rsp) + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 8*16(%rax) + vmovdqa %xmm7, 9*16(%rax) + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd 3*16(%rax), %xmm3, %xmm3 + vpaddd 4*16(%rax), %xmm7, %xmm7 + vmovdqa %xmm3, 10*16(%rax) + vmovdqa %xmm7, 11*16(%rax) + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd 5*16(%rax), %xmm3, %xmm3 + vpaddd 6*16(%rax), %xmm7, %xmm7 + vmovdqa %xmm3, 12*16(%rax) + vmovdqa %xmm7, 13*16(%rax) + + vmovdqa 14*16(%rax), %xmm0 + vmovdqa 15*16(%rax), %xmm4 + vmovdqa %xmm0, 14*16(%rsp) + vmovdqa %xmm4, 15*16(%rsp) + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpaddd 7*16(%rax), %xmm0, %xmm0 + vpaddd 8*16(%rax), %xmm4, %xmm4 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 14*16(%rax) + vmovdqa %xmm7, 15*16(%rax) + +sha256d_ms_4way_xop_extend_loop2: + vmovdqa (16-15)*16(%rax), %xmm0 + vmovdqa (16-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (16-16)*16(%rax), %xmm0, %xmm0 + vpaddd (16-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (16-7)*16(%rax), %xmm0, %xmm0 + vpaddd (16-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 16*16(%rax) + vmovdqa %xmm7, (16+1)*16(%rax) + vmovdqa (18-15)*16(%rax), %xmm0 + vmovdqa (18-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (18-16)*16(%rax), %xmm0, %xmm0 + vpaddd (18-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (18-7)*16(%rax), %xmm0, %xmm0 + vpaddd (18-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 18*16(%rax) + vmovdqa %xmm7, (18+1)*16(%rax) + vmovdqa (20-15)*16(%rax), %xmm0 + vmovdqa (20-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (20-16)*16(%rax), %xmm0, %xmm0 + vpaddd (20-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (20-7)*16(%rax), %xmm0, %xmm0 + vpaddd (20-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 20*16(%rax) + vmovdqa %xmm7, (20+1)*16(%rax) + vmovdqa (22-15)*16(%rax), %xmm0 + vmovdqa (22-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (22-16)*16(%rax), %xmm0, %xmm0 + vpaddd (22-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (22-7)*16(%rax), %xmm0, %xmm0 + vpaddd (22-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 22*16(%rax) + vmovdqa %xmm7, (22+1)*16(%rax) + vmovdqa (24-15)*16(%rax), %xmm0 + vmovdqa (24-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (24-16)*16(%rax), %xmm0, %xmm0 + vpaddd (24-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (24-7)*16(%rax), %xmm0, %xmm0 + vpaddd (24-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 24*16(%rax) + vmovdqa %xmm7, (24+1)*16(%rax) + vmovdqa (26-15)*16(%rax), %xmm0 + vmovdqa (26-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (26-16)*16(%rax), %xmm0, %xmm0 + vpaddd (26-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (26-7)*16(%rax), %xmm0, %xmm0 + vpaddd (26-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 26*16(%rax) + vmovdqa %xmm7, (26+1)*16(%rax) + vmovdqa (28-15)*16(%rax), %xmm0 + vmovdqa (28-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (28-16)*16(%rax), %xmm0, %xmm0 + vpaddd (28-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (28-7)*16(%rax), %xmm0, %xmm0 + vpaddd (28-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 28*16(%rax) + vmovdqa %xmm7, (28+1)*16(%rax) + vmovdqa (30-15)*16(%rax), %xmm0 + vmovdqa (30-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (30-16)*16(%rax), %xmm0, %xmm0 + vpaddd (30-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (30-7)*16(%rax), %xmm0, %xmm0 + vpaddd (30-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 30*16(%rax) + vmovdqa %xmm7, (30+1)*16(%rax) + vmovdqa (32-15)*16(%rax), %xmm0 + vmovdqa (32-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (32-16)*16(%rax), %xmm0, %xmm0 + vpaddd (32-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (32-7)*16(%rax), %xmm0, %xmm0 + vpaddd (32-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 32*16(%rax) + vmovdqa %xmm7, (32+1)*16(%rax) + vmovdqa (34-15)*16(%rax), %xmm0 + vmovdqa (34-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (34-16)*16(%rax), %xmm0, %xmm0 + vpaddd (34-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (34-7)*16(%rax), %xmm0, %xmm0 + vpaddd (34-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 34*16(%rax) + vmovdqa %xmm7, (34+1)*16(%rax) + vmovdqa (36-15)*16(%rax), %xmm0 + vmovdqa (36-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (36-16)*16(%rax), %xmm0, %xmm0 + vpaddd (36-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (36-7)*16(%rax), %xmm0, %xmm0 + vpaddd (36-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 36*16(%rax) + vmovdqa %xmm7, (36+1)*16(%rax) + vmovdqa (38-15)*16(%rax), %xmm0 + vmovdqa (38-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (38-16)*16(%rax), %xmm0, %xmm0 + vpaddd (38-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (38-7)*16(%rax), %xmm0, %xmm0 + vpaddd (38-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 38*16(%rax) + vmovdqa %xmm7, (38+1)*16(%rax) + vmovdqa (40-15)*16(%rax), %xmm0 + vmovdqa (40-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (40-16)*16(%rax), %xmm0, %xmm0 + vpaddd (40-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (40-7)*16(%rax), %xmm0, %xmm0 + vpaddd (40-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 40*16(%rax) + vmovdqa %xmm7, (40+1)*16(%rax) + vmovdqa (42-15)*16(%rax), %xmm0 + vmovdqa (42-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (42-16)*16(%rax), %xmm0, %xmm0 + vpaddd (42-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (42-7)*16(%rax), %xmm0, %xmm0 + vpaddd (42-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 42*16(%rax) + vmovdqa %xmm7, (42+1)*16(%rax) + jz sha256d_ms_4way_xop_extend_coda2 + vmovdqa (44-15)*16(%rax), %xmm0 + vmovdqa (44-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (44-16)*16(%rax), %xmm0, %xmm0 + vpaddd (44-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (44-7)*16(%rax), %xmm0, %xmm0 + vpaddd (44-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 44*16(%rax) + vmovdqa %xmm7, (44+1)*16(%rax) + vmovdqa (46-15)*16(%rax), %xmm0 + vmovdqa (46-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (46-16)*16(%rax), %xmm0, %xmm0 + vpaddd (46-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (46-7)*16(%rax), %xmm0, %xmm0 + vpaddd (46-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 46*16(%rax) + vmovdqa %xmm7, (46+1)*16(%rax) + + movdqa 0(%rcx), %xmm7 + movdqa 16(%rcx), %xmm8 + movdqa 32(%rcx), %xmm9 + movdqa 48(%rcx), %xmm10 + movdqa 64(%rcx), %xmm0 + movdqa 80(%rcx), %xmm5 + movdqa 96(%rcx), %xmm4 + movdqa 112(%rcx), %xmm3 + + movq %rsi, %rax + leaq sha256_4k(%rip), %rcx + jmp sha256d_ms_4way_xop_main_loop1 + +sha256d_ms_4way_xop_main_loop2: + vpaddd 16*(0)(%rax), %xmm10, %xmm6 + vpaddd 16*(0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(1)(%rax), %xmm9, %xmm6 + vpaddd 16*(1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(2)(%rax), %xmm8, %xmm6 + vpaddd 16*(2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 +sha256d_ms_4way_xop_main_loop1: + vpaddd 16*(3)(%rax), %xmm0, %xmm6 + vpaddd 16*(3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(4+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(4+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(4+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(4+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(4+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(4+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(4+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(4+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(8+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(8+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(8+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(8+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(8+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(8+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(8+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(8+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(12+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(12+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(12+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(12+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(12+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(12+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(12+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(12+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(16+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(16+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(16+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(16+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(16+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(16+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(16+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(16+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(20+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(20+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(20+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(20+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(20+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(20+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(20+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(20+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(24+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(24+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(24+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(24+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(24+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(24+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(24+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(24+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(28+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(28+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(28+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(28+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(28+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(28+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(28+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(28+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(32+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(32+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(32+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(32+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(32+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(32+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(32+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(32+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(36+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(36+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(36+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(36+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(36+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(36+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(36+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(36+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(40+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(40+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(40+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(40+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(40+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(40+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(40+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(40+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(44+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(44+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(44+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(44+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(44+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(44+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(44+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(44+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(48+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(48+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(48+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(48+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(48+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(48+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(48+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(48+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(52+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(52+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(52+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(52+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(52+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(52+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(52+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(52+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(56)(%rax), %xmm10, %xmm6 + vpaddd 16*(56)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + jz sha256d_ms_4way_xop_finish + vpaddd 16*(57)(%rax), %xmm9, %xmm6 + vpaddd 16*(57)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(58)(%rax), %xmm8, %xmm6 + vpaddd 16*(58)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(59)(%rax), %xmm0, %xmm6 + vpaddd 16*(59)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + vpaddd 16*(60+0)(%rax), %xmm10, %xmm6 + vpaddd 16*(60+0)(%rcx), %xmm6, %xmm6 + + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + vpand %xmm5, %xmm4, %xmm2 + vpand %xmm7, %xmm4, %xmm3 + vpand %xmm7, %xmm5, %xmm1 + vpxor %xmm3, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm7, %xmm1 + vprotd $19, %xmm7, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm7, %xmm3 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm6, %xmm3, %xmm3 + vpaddd 16*(60+1)(%rax), %xmm9, %xmm6 + vpaddd 16*(60+1)(%rcx), %xmm6, %xmm6 + + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + + vpand %xmm7, %xmm5, %xmm2 + vpand %xmm3, %xmm5, %xmm4 + vpand %xmm3, %xmm7, %xmm1 + vpxor %xmm4, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm3, %xmm1 + vprotd $19, %xmm3, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm3, %xmm4 + vpxor %xmm2, %xmm4, %xmm4 + vpaddd %xmm6, %xmm4, %xmm4 + vpaddd 16*(60+2)(%rax), %xmm8, %xmm6 + vpaddd 16*(60+2)(%rcx), %xmm6, %xmm6 + + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + + vpand %xmm3, %xmm7, %xmm2 + vpand %xmm4, %xmm7, %xmm5 + vpand %xmm4, %xmm3, %xmm1 + vpxor %xmm5, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm4, %xmm1 + vprotd $19, %xmm4, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm4, %xmm5 + vpxor %xmm2, %xmm5, %xmm5 + vpaddd %xmm6, %xmm5, %xmm5 + vpaddd 16*(60+3)(%rax), %xmm0, %xmm6 + vpaddd 16*(60+3)(%rcx), %xmm6, %xmm6 + + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + + vpand %xmm4, %xmm3, %xmm2 + vpand %xmm5, %xmm3, %xmm7 + vpand %xmm5, %xmm4, %xmm1 + vpxor %xmm7, %xmm1, %xmm1 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + + vprotd $30, %xmm5, %xmm1 + vprotd $19, %xmm5, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $10, %xmm5, %xmm7 + vpxor %xmm2, %xmm7, %xmm7 + vpaddd %xmm6, %xmm7, %xmm7 + + movdqa 2*16(%rsp), %xmm1 + movdqa 3*16(%rsp), %xmm2 + movdqa 4*16(%rsp), %xmm6 + movdqa %xmm1, 18*16(%rsi) + movdqa %xmm2, 19*16(%rsi) + movdqa %xmm6, 20*16(%rsi) + movdqa 6*16(%rsp), %xmm1 + movdqa 7*16(%rsp), %xmm2 + movdqa 8*16(%rsp), %xmm6 + movdqa %xmm1, 22*16(%rsi) + movdqa %xmm2, 23*16(%rsi) + movdqa %xmm6, 24*16(%rsi) + movdqa 14*16(%rsp), %xmm1 + movdqa 15*16(%rsp), %xmm2 + movdqa %xmm1, 30*16(%rsi) + movdqa %xmm2, 31*16(%rsi) + + paddd 0(%rdx), %xmm7 + paddd 16(%rdx), %xmm5 + paddd 32(%rdx), %xmm4 + paddd 48(%rdx), %xmm3 + paddd 64(%rdx), %xmm0 + paddd 80(%rdx), %xmm8 + paddd 96(%rdx), %xmm9 + paddd 112(%rdx), %xmm10 + + movdqa %xmm7, 0(%rsp) + movdqa %xmm5, 16(%rsp) + movdqa %xmm4, 32(%rsp) + movdqa %xmm3, 48(%rsp) + movdqa %xmm0, 64(%rsp) + movdqa %xmm8, 80(%rsp) + movdqa %xmm9, 96(%rsp) + movdqa %xmm10, 112(%rsp) + + pxor %xmm0, %xmm0 + movq $0x8000000000000100, %rax + movd %rax, %xmm1 + pshufd $0x55, %xmm1, %xmm2 + pshufd $0x00, %xmm1, %xmm1 + movdqa %xmm2, 128(%rsp) + movdqa %xmm0, 144(%rsp) + movdqa %xmm0, 160(%rsp) + movdqa %xmm0, 176(%rsp) + movdqa %xmm0, 192(%rsp) + movdqa %xmm0, 208(%rsp) + movdqa %xmm0, 224(%rsp) + movdqa %xmm1, 240(%rsp) + + leaq 256(%rsp), %rax + cmpq %rax, %rax + + vmovdqa -15*16(%rax), %xmm0 + vmovdqa -14*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm8 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm8, %xmm8 + vpxor %xmm6, %xmm4, %xmm4 + vpaddd %xmm0, %xmm4, %xmm4 + vpaddd -16*16(%rax), %xmm8, %xmm3 + vpaddd sha256d_4preext2_17(%rip), %xmm4, %xmm7 + vmovdqa %xmm3, 0*16(%rax) + vmovdqa %xmm7, 1*16(%rax) + + vmovdqa (2-15)*16(%rax), %xmm0 + vmovdqa (2-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (2-16)*16(%rax), %xmm0, %xmm0 + vpaddd (2-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (2-7)*16(%rax), %xmm0, %xmm0 + vpaddd (2-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 2*16(%rax) + vmovdqa %xmm7, (2+1)*16(%rax) + vmovdqa (4-15)*16(%rax), %xmm0 + vmovdqa (4-14)*16(%rax), %xmm4 + vprotd $25, %xmm0, %xmm1 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm0, %xmm2 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm0, %xmm0 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm2, %xmm0, %xmm0 + vpxor %xmm6, %xmm4, %xmm4 + + vpaddd (4-16)*16(%rax), %xmm0, %xmm0 + vpaddd (4-15)*16(%rax), %xmm4, %xmm4 + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + + vpaddd (4-7)*16(%rax), %xmm0, %xmm0 + vpaddd (4-6)*16(%rax), %xmm4, %xmm4 + + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 4*16(%rax) + vmovdqa %xmm7, (4+1)*16(%rax) + + vmovdqa -9*16(%rax), %xmm0 + vprotd $25, %xmm0, %xmm1 + vprotd $14, %xmm0, %xmm2 + vpsrld $3, %xmm0, %xmm8 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd sha256d_4preext2_23(%rip), %xmm0, %xmm4 + vpaddd -10*16(%rax), %xmm8, %xmm0 + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpaddd -1*16(%rax), %xmm0, %xmm0 + vpaddd 0*16(%rax), %xmm4, %xmm4 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 6*16(%rax) + vmovdqa %xmm7, 7*16(%rax) + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd sha256d_4preext2_24(%rip), %xmm3, %xmm3 + vpaddd 1*16(%rax), %xmm3, %xmm3 + vpaddd 2*16(%rax), %xmm7, %xmm7 + vmovdqa %xmm3, 8*16(%rax) + vmovdqa %xmm7, 9*16(%rax) + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd 3*16(%rax), %xmm3, %xmm3 + vpaddd 4*16(%rax), %xmm7, %xmm7 + vmovdqa %xmm3, 10*16(%rax) + vmovdqa %xmm7, 11*16(%rax) + + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd 5*16(%rax), %xmm3, %xmm3 + vpaddd 6*16(%rax), %xmm7, %xmm7 + vmovdqa %xmm3, 12*16(%rax) + vmovdqa %xmm7, 13*16(%rax) + + vmovdqa sha256d_4preext2_30(%rip), %xmm0 + vmovdqa 0*16(%rax), %xmm4 + vprotd $25, %xmm4, %xmm5 + vprotd $14, %xmm4, %xmm6 + vpxor %xmm5, %xmm6, %xmm6 + vpsrld $3, %xmm4, %xmm4 + vpxor %xmm6, %xmm4, %xmm4 + vpaddd -1*16(%rax), %xmm4, %xmm4 + vprotd $15, %xmm3, %xmm1 + vprotd $15, %xmm7, %xmm5 + vprotd $13, %xmm3, %xmm2 + vprotd $13, %xmm7, %xmm6 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm5, %xmm6, %xmm6 + vpaddd 7*16(%rax), %xmm0, %xmm0 + vpaddd 8*16(%rax), %xmm4, %xmm4 + vpsrld $10, %xmm3, %xmm3 + vpsrld $10, %xmm7, %xmm7 + vpxor %xmm2, %xmm3, %xmm3 + vpxor %xmm6, %xmm7, %xmm7 + vpaddd %xmm0, %xmm3, %xmm3 + vpaddd %xmm4, %xmm7, %xmm7 + vmovdqa %xmm3, 14*16(%rax) + vmovdqa %xmm7, 15*16(%rax) + + jmp sha256d_ms_4way_xop_extend_loop2 + +sha256d_ms_4way_xop_extend_coda2: + vmovdqa (44-15)*16(%rax), %xmm0 + vprotd $25, %xmm0, %xmm1 + vprotd $14, %xmm0, %xmm2 + vpsrld $3, %xmm0, %xmm0 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm2, %xmm0, %xmm0 + + vpaddd (44-16)*16(%rax), %xmm0, %xmm0 + vpaddd (44-7)*16(%rax), %xmm0, %xmm0 + + vprotd $15, %xmm3, %xmm1 + vprotd $13, %xmm3, %xmm2 + vpsrld $10, %xmm3, %xmm3 + vpxor %xmm1, %xmm2, %xmm2 + vpxor %xmm2, %xmm3, %xmm3 + vpaddd %xmm0, %xmm3, %xmm3 + vmovdqa %xmm3, 44*16(%rax) + + movdqa sha256_4h+0(%rip), %xmm7 + movdqa sha256_4h+16(%rip), %xmm5 + movdqa sha256_4h+32(%rip), %xmm4 + movdqa sha256_4h+48(%rip), %xmm3 + movdqa sha256_4h+64(%rip), %xmm0 + movdqa sha256_4h+80(%rip), %xmm8 + movdqa sha256_4h+96(%rip), %xmm9 + movdqa sha256_4h+112(%rip), %xmm10 + + movq %rsp, %rax + leaq sha256_4k(%rip), %rcx + jmp sha256d_ms_4way_xop_main_loop2 + + +sha256d_ms_4way_xop_finish: + vpaddd 16*57(%rax), %xmm9, %xmm6 + vpaddd 16*57(%rcx), %xmm6, %xmm6 + vpandn %xmm8, %xmm10, %xmm1 + vpand %xmm10, %xmm0, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + vprotd $26, %xmm10, %xmm1 + vprotd $21, %xmm10, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm10, %xmm9 + vpxor %xmm2, %xmm9, %xmm9 + vpaddd %xmm9, %xmm6, %xmm6 + vpaddd %xmm6, %xmm4, %xmm9 + vpaddd 16*58(%rax), %xmm8, %xmm6 + vpaddd 16*58(%rcx), %xmm6, %xmm6 + vpandn %xmm0, %xmm9, %xmm1 + vpand %xmm9, %xmm10, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + vprotd $26, %xmm9, %xmm1 + vprotd $21, %xmm9, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm9, %xmm8 + vpxor %xmm2, %xmm8, %xmm8 + vpaddd %xmm8, %xmm6, %xmm6 + vpaddd %xmm6, %xmm5, %xmm8 + vpaddd 16*59(%rax), %xmm0, %xmm6 + vpaddd 16*59(%rcx), %xmm6, %xmm6 + vpandn %xmm10, %xmm8, %xmm1 + vpand %xmm8, %xmm9, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + vprotd $26, %xmm8, %xmm1 + vprotd $21, %xmm8, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm8, %xmm0 + vpxor %xmm2, %xmm0, %xmm0 + vpaddd %xmm0, %xmm6, %xmm6 + vpaddd %xmm6, %xmm7, %xmm0 + vpaddd 16*60(%rax), %xmm10, %xmm6 + vpaddd 16*60(%rcx), %xmm6, %xmm6 + vpandn %xmm9, %xmm0, %xmm1 + vpand %xmm0, %xmm8, %xmm2 + vpxor %xmm2, %xmm1, %xmm1 + vpaddd %xmm1, %xmm6, %xmm6 + vprotd $26, %xmm0, %xmm1 + vprotd $21, %xmm0, %xmm2 + vpxor %xmm1, %xmm2, %xmm2 + vprotd $7, %xmm0, %xmm10 + vpxor %xmm2, %xmm10, %xmm10 + vpaddd %xmm10, %xmm6, %xmm6 + vpaddd %xmm6, %xmm3, %xmm10 + + paddd sha256_4h+112(%rip), %xmm10 + movdqa %xmm10, 112(%rdi) + + addq $1032, %rsp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + movdqa 0(%rsp), %xmm6 + movdqa 16(%rsp), %xmm7 + movdqa 32(%rsp), %xmm8 + movdqa 48(%rsp), %xmm9 + movdqa 64(%rsp), %xmm10 + addq $80, %rsp + popq %rdi +#endif + ret + +#endif /* USE_XOP */ + + + .text + .p2align 6 + .globl sha256_use_4way + .globl _sha256_use_4way +sha256_use_4way: +_sha256_use_4way: + pushq %rbx + pushq %rcx + pushq %rdx + + /* Check for VIA PadLock Hash Engine */ + movl $0xc0000000, %eax + cpuid + cmpl $0xc0000001, %eax + jb sha256_use_4way_no_phe + movl $0xc0000001, %eax + cpuid + andl $0x00000c00, %edx + cmpl $0x00000c00, %edx + jne sha256_use_4way_no_phe + leaq sha256_transform_phe(%rip), %rdx + movq %rdx, sha256_transform_addr(%rip) + xorl %eax, %eax + jmp sha256_use_4way_exit +sha256_use_4way_no_phe: +#if defined(USE_AVX) + /* Check for AVX and OSXSAVE support */ + movl $1, %eax + cpuid + andl $0x18000000, %ecx + cmpl $0x18000000, %ecx + jne sha256_use_4way_base + /* Check for XMM and YMM state support */ + xorl %ecx, %ecx + xgetbv + andl $0x00000006, %eax + cmpl $0x00000006, %eax + jne sha256_use_4way_base +#if defined(USE_XOP) + /* Check for XOP support */ + movl $0x80000001, %eax + cpuid + andl $0x00000800, %ecx + jz sha256_use_4way_avx + +sha256_use_4way_xop: + leaq sha256d_ms_4way_xop(%rip), %rcx + leaq sha256_transform_4way_core_xop(%rip), %rdx + jmp sha256_use_4way_done +#endif /* USE_XOP */ + +sha256_use_4way_avx: + leaq sha256d_ms_4way_avx(%rip), %rcx + leaq sha256_transform_4way_core_avx(%rip), %rdx + jmp sha256_use_4way_done +#endif /* USE_AVX */ + +sha256_use_4way_base: + leaq sha256d_ms_4way_sse2(%rip), %rcx + leaq sha256_transform_4way_core_sse2(%rip), %rdx + +sha256_use_4way_done: + movq %rcx, sha256d_ms_4way_addr(%rip) + movq %rdx, sha256_transform_4way_core_addr(%rip) + movl $1, %eax +sha256_use_4way_exit: + popq %rdx + popq %rcx + popq %rbx + ret + + +#if defined(USE_AVX2) + + .text + .p2align 6 + .globl sha256d_ms_8way + .globl _sha256d_ms_8way +sha256d_ms_8way: +_sha256d_ms_8way: +sha256d_ms_8way_avx2: +#if defined(_WIN64) || defined(__CYGWIN__) + pushq %rdi + subq $80, %rsp + vmovdqa %xmm6, 0(%rsp) + vmovdqa %xmm7, 16(%rsp) + vmovdqa %xmm8, 32(%rsp) + vmovdqa %xmm9, 48(%rsp) + vmovdqa %xmm10, 64(%rsp) + pushq %rsi + movq %rcx, %rdi + movq %rdx, %rsi + movq %r8, %rdx + movq %r9, %rcx +#endif + pushq %rbp + movq %rsp, %rbp + subq $64*32, %rsp + andq $-128, %rsp + + leaq 16*32(%rsi), %rax + +sha256d_ms_8way_avx2_extend_loop1: + vmovdqa 3*32(%rsi), %ymm0 + vmovdqa 2*32(%rax), %ymm3 + vmovdqa 3*32(%rax), %ymm7 + vmovdqa %ymm3, 2*32(%rsp) + vmovdqa %ymm7, 3*32(%rsp) + vpaddd %ymm0, %ymm7, %ymm7 + vpslld $14, %ymm0, %ymm2 + vpsrld $3, %ymm0, %ymm0 + vpsrld $4, %ymm0, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpsrld $11, %ymm1, %ymm1 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpaddd %ymm0, %ymm3, %ymm3 + vmovdqa %ymm3, 2*32(%rax) + vmovdqa %ymm7, 3*32(%rax) + + vmovdqa 4*32(%rax), %ymm0 + vmovdqa %ymm0, 4*32(%rsp) + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd %ymm0, %ymm3, %ymm3 + vmovdqa %ymm3, 4*32(%rax) + vmovdqa %ymm7, 5*32(%rax) + + vmovdqa 6*32(%rax), %ymm0 + vmovdqa 7*32(%rax), %ymm4 + vmovdqa %ymm0, 6*32(%rsp) + vmovdqa %ymm4, 7*32(%rsp) + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 6*32(%rax) + vmovdqa %ymm7, 7*32(%rax) + + vmovdqa 8*32(%rax), %ymm0 + vmovdqa 2*32(%rax), %ymm4 + vmovdqa %ymm0, 8*32(%rsp) + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 8*32(%rax) + vmovdqa %ymm7, 9*32(%rax) + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd 3*32(%rax), %ymm3, %ymm3 + vpaddd 4*32(%rax), %ymm7, %ymm7 + vmovdqa %ymm3, 10*32(%rax) + vmovdqa %ymm7, 11*32(%rax) + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd 5*32(%rax), %ymm3, %ymm3 + vpaddd 6*32(%rax), %ymm7, %ymm7 + vmovdqa %ymm3, 12*32(%rax) + vmovdqa %ymm7, 13*32(%rax) + + vmovdqa 14*32(%rax), %ymm0 + vmovdqa 15*32(%rax), %ymm4 + vmovdqa %ymm0, 14*32(%rsp) + vmovdqa %ymm4, 15*32(%rsp) + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpaddd 7*32(%rax), %ymm0, %ymm0 + vpaddd 8*32(%rax), %ymm4, %ymm4 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 14*32(%rax) + vmovdqa %ymm7, 15*32(%rax) + +sha256d_ms_8way_avx2_extend_loop2: + vmovdqa (16-15)*32(%rax), %ymm0 + vmovdqa (16-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (16-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (16-7)*32(%rax), %ymm0, %ymm0 + vpaddd (16-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 16*32(%rax) + vmovdqa %ymm7, (16+1)*32(%rax) + vmovdqa (18-15)*32(%rax), %ymm0 + vmovdqa (18-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (18-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (18-7)*32(%rax), %ymm0, %ymm0 + vpaddd (18-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 18*32(%rax) + vmovdqa %ymm7, (18+1)*32(%rax) + vmovdqa (20-15)*32(%rax), %ymm0 + vmovdqa (20-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (20-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (20-7)*32(%rax), %ymm0, %ymm0 + vpaddd (20-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 20*32(%rax) + vmovdqa %ymm7, (20+1)*32(%rax) + vmovdqa (22-15)*32(%rax), %ymm0 + vmovdqa (22-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (22-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (22-7)*32(%rax), %ymm0, %ymm0 + vpaddd (22-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 22*32(%rax) + vmovdqa %ymm7, (22+1)*32(%rax) + vmovdqa (24-15)*32(%rax), %ymm0 + vmovdqa (24-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (24-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (24-7)*32(%rax), %ymm0, %ymm0 + vpaddd (24-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 24*32(%rax) + vmovdqa %ymm7, (24+1)*32(%rax) + vmovdqa (26-15)*32(%rax), %ymm0 + vmovdqa (26-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (26-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (26-7)*32(%rax), %ymm0, %ymm0 + vpaddd (26-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 26*32(%rax) + vmovdqa %ymm7, (26+1)*32(%rax) + vmovdqa (28-15)*32(%rax), %ymm0 + vmovdqa (28-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (28-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (28-7)*32(%rax), %ymm0, %ymm0 + vpaddd (28-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 28*32(%rax) + vmovdqa %ymm7, (28+1)*32(%rax) + vmovdqa (30-15)*32(%rax), %ymm0 + vmovdqa (30-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (30-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (30-7)*32(%rax), %ymm0, %ymm0 + vpaddd (30-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 30*32(%rax) + vmovdqa %ymm7, (30+1)*32(%rax) + vmovdqa (32-15)*32(%rax), %ymm0 + vmovdqa (32-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (32-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (32-7)*32(%rax), %ymm0, %ymm0 + vpaddd (32-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 32*32(%rax) + vmovdqa %ymm7, (32+1)*32(%rax) + vmovdqa (34-15)*32(%rax), %ymm0 + vmovdqa (34-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (34-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (34-7)*32(%rax), %ymm0, %ymm0 + vpaddd (34-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 34*32(%rax) + vmovdqa %ymm7, (34+1)*32(%rax) + vmovdqa (36-15)*32(%rax), %ymm0 + vmovdqa (36-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (36-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (36-7)*32(%rax), %ymm0, %ymm0 + vpaddd (36-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 36*32(%rax) + vmovdqa %ymm7, (36+1)*32(%rax) + vmovdqa (38-15)*32(%rax), %ymm0 + vmovdqa (38-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (38-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (38-7)*32(%rax), %ymm0, %ymm0 + vpaddd (38-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 38*32(%rax) + vmovdqa %ymm7, (38+1)*32(%rax) + vmovdqa (40-15)*32(%rax), %ymm0 + vmovdqa (40-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (40-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (40-7)*32(%rax), %ymm0, %ymm0 + vpaddd (40-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 40*32(%rax) + vmovdqa %ymm7, (40+1)*32(%rax) + vmovdqa (42-15)*32(%rax), %ymm0 + vmovdqa (42-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (42-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (42-7)*32(%rax), %ymm0, %ymm0 + vpaddd (42-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 42*32(%rax) + vmovdqa %ymm7, (42+1)*32(%rax) + jz sha256d_ms_8way_avx2_extend_coda2 + vmovdqa (44-15)*32(%rax), %ymm0 + vmovdqa (44-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (44-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (44-7)*32(%rax), %ymm0, %ymm0 + vpaddd (44-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 44*32(%rax) + vmovdqa %ymm7, (44+1)*32(%rax) + vmovdqa (46-15)*32(%rax), %ymm0 + vmovdqa (46-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (46-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (46-7)*32(%rax), %ymm0, %ymm0 + vpaddd (46-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 46*32(%rax) + vmovdqa %ymm7, (46+1)*32(%rax) + + vmovdqa 0(%rcx), %ymm7 + vmovdqa 32(%rcx), %ymm8 + vmovdqa 64(%rcx), %ymm9 + vmovdqa 96(%rcx), %ymm10 + vmovdqa 128(%rcx), %ymm0 + vmovdqa 160(%rcx), %ymm5 + vmovdqa 192(%rcx), %ymm4 + vmovdqa 224(%rcx), %ymm3 + + movq %rsi, %rax + leaq sha256_8k(%rip), %rcx + jmp sha256d_ms_8way_avx2_main_loop1 + +sha256d_ms_8way_avx2_main_loop2: + vpaddd 32*(0)(%rax), %ymm10, %ymm6 + vpaddd 32*(0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(1)(%rax), %ymm9, %ymm6 + vpaddd 32*(1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(2)(%rax), %ymm8, %ymm6 + vpaddd 32*(2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 +sha256d_ms_8way_avx2_main_loop1: + vpaddd 32*(3)(%rax), %ymm0, %ymm6 + vpaddd 32*(3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(4+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(4+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(4+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(4+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(4+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(4+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(4+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(4+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(8+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(8+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(8+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(8+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(8+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(8+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(8+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(8+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(12+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(12+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(12+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(12+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(12+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(12+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(12+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(12+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(16+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(16+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(16+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(16+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(16+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(16+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(16+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(16+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(20+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(20+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(20+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(20+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(20+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(20+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(20+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(20+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(24+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(24+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(24+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(24+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(24+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(24+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(24+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(24+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(28+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(28+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(28+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(28+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(28+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(28+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(28+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(28+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(32+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(32+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(32+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(32+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(32+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(32+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(32+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(32+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(36+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(36+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(36+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(36+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(36+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(36+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(36+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(36+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(40+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(40+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(40+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(40+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(40+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(40+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(40+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(40+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(44+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(44+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(44+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(44+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(44+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(44+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(44+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(44+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(48+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(48+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(48+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(48+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(48+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(48+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(48+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(48+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(52+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(52+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(52+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(52+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(52+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(52+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(52+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(52+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(56)(%rax), %ymm10, %ymm6 + vpaddd 32*(56)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + jz sha256d_ms_8way_avx2_finish + vpaddd 32*(57)(%rax), %ymm9, %ymm6 + vpaddd 32*(57)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(58)(%rax), %ymm8, %ymm6 + vpaddd 32*(58)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(59)(%rax), %ymm0, %ymm6 + vpaddd 32*(59)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + vpaddd 32*(60+0)(%rax), %ymm10, %ymm6 + vpaddd 32*(60+0)(%rcx), %ymm6, %ymm6 + + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpand %ymm5, %ymm4, %ymm2 + vpand %ymm7, %ymm4, %ymm3 + vpand %ymm7, %ymm5, %ymm1 + vpxor %ymm3, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm7, %ymm2 + vpsrld $2, %ymm7, %ymm3 + vpsrld $11, %ymm3, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm1, %ymm3, %ymm3 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm6, %ymm3, %ymm3 + vpaddd 32*(60+1)(%rax), %ymm9, %ymm6 + vpaddd 32*(60+1)(%rcx), %ymm6, %ymm6 + + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + + vpand %ymm7, %ymm5, %ymm2 + vpand %ymm3, %ymm5, %ymm4 + vpand %ymm3, %ymm7, %ymm1 + vpxor %ymm4, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm3, %ymm2 + vpsrld $2, %ymm3, %ymm4 + vpsrld $11, %ymm4, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm4, %ymm4 + vpxor %ymm1, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm4, %ymm4 + vpaddd %ymm6, %ymm4, %ymm4 + vpaddd 32*(60+2)(%rax), %ymm8, %ymm6 + vpaddd 32*(60+2)(%rcx), %ymm6, %ymm6 + + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + + vpand %ymm3, %ymm7, %ymm2 + vpand %ymm4, %ymm7, %ymm5 + vpand %ymm4, %ymm3, %ymm1 + vpxor %ymm5, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm4, %ymm2 + vpsrld $2, %ymm4, %ymm5 + vpsrld $11, %ymm5, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm5, %ymm5 + vpxor %ymm1, %ymm5, %ymm5 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm5, %ymm5 + vpaddd %ymm6, %ymm5, %ymm5 + vpaddd 32*(60+3)(%rax), %ymm0, %ymm6 + vpaddd 32*(60+3)(%rcx), %ymm6, %ymm6 + + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + + vpand %ymm4, %ymm3, %ymm2 + vpand %ymm5, %ymm3, %ymm7 + vpand %ymm5, %ymm4, %ymm1 + vpxor %ymm7, %ymm1, %ymm1 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + + vpslld $10, %ymm5, %ymm2 + vpsrld $2, %ymm5, %ymm7 + vpsrld $11, %ymm7, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $9, %ymm2, %ymm2 + vpsrld $9, %ymm1, %ymm1 + vpxor %ymm2, %ymm7, %ymm7 + vpxor %ymm1, %ymm7, %ymm7 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm2, %ymm7, %ymm7 + vpaddd %ymm6, %ymm7, %ymm7 + + vmovdqa 2*32(%rsp), %ymm1 + vmovdqa 3*32(%rsp), %ymm2 + vmovdqa 4*32(%rsp), %ymm6 + vmovdqa %ymm1, 18*32(%rsi) + vmovdqa %ymm2, 19*32(%rsi) + vmovdqa %ymm6, 20*32(%rsi) + vmovdqa 6*32(%rsp), %ymm1 + vmovdqa 7*32(%rsp), %ymm2 + vmovdqa 8*32(%rsp), %ymm6 + vmovdqa %ymm1, 22*32(%rsi) + vmovdqa %ymm2, 23*32(%rsi) + vmovdqa %ymm6, 24*32(%rsi) + vmovdqa 14*32(%rsp), %ymm1 + vmovdqa 15*32(%rsp), %ymm2 + vmovdqa %ymm1, 30*32(%rsi) + vmovdqa %ymm2, 31*32(%rsi) + + vpaddd 0(%rdx), %ymm7, %ymm7 + vpaddd 32(%rdx), %ymm5, %ymm5 + vpaddd 64(%rdx), %ymm4, %ymm4 + vpaddd 96(%rdx), %ymm3, %ymm3 + vpaddd 128(%rdx), %ymm0, %ymm0 + vpaddd 160(%rdx), %ymm8, %ymm8 + vpaddd 192(%rdx), %ymm9, %ymm9 + vpaddd 224(%rdx), %ymm10, %ymm10 + + vmovdqa %ymm7, 0(%rsp) + vmovdqa %ymm5, 32(%rsp) + vmovdqa %ymm4, 64(%rsp) + vmovdqa %ymm3, 96(%rsp) + vmovdqa %ymm0, 128(%rsp) + vmovdqa %ymm8, 160(%rsp) + vmovdqa %ymm9, 192(%rsp) + vmovdqa %ymm10, 224(%rsp) + + vpxor %ymm0, %ymm0, %ymm0 + movq $0x8000000000000100, %rax + vmovd %rax, %xmm1 + vinserti128 $1, %xmm1, %ymm1, %ymm1 + vpshufd $0x55, %ymm1, %ymm2 + vpshufd $0x00, %ymm1, %ymm1 + vmovdqa %ymm2, 8*32(%rsp) + vmovdqa %ymm0, 9*32(%rsp) + vmovdqa %ymm0, 10*32(%rsp) + vmovdqa %ymm0, 11*32(%rsp) + vmovdqa %ymm0, 12*32(%rsp) + vmovdqa %ymm0, 13*32(%rsp) + vmovdqa %ymm0, 14*32(%rsp) + vmovdqa %ymm1, 15*32(%rsp) + + leaq 16*32(%rsp), %rax + cmpq %rax, %rax + + vmovdqa -15*32(%rax), %ymm0 + vmovdqa -14*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd -16*32(%rax), %ymm8, %ymm3 + vpaddd sha256d_8preext2_17(%rip), %ymm4, %ymm7 + vmovdqa %ymm3, 0*32(%rax) + vmovdqa %ymm7, 1*32(%rax) + + vmovdqa (2-15)*32(%rax), %ymm0 + vmovdqa (2-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (2-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (2-7)*32(%rax), %ymm0, %ymm0 + vpaddd (2-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 2*32(%rax) + vmovdqa %ymm7, (2+1)*32(%rax) + vmovdqa (4-15)*32(%rax), %ymm0 + vmovdqa (4-14)*32(%rax), %ymm4 + vpslld $14, %ymm0, %ymm2 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm0, %ymm8 + vpsrld $3, %ymm4, %ymm4 + vpsrld $7, %ymm0, %ymm1 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpsrld $11, %ymm1, %ymm1 + vpsrld $11, %ymm5, %ymm5 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + vpslld $11, %ymm2, %ymm2 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm2, %ymm8, %ymm8 + vpxor %ymm6, %ymm4, %ymm4 + + vpaddd %ymm0, %ymm4, %ymm4 + vpaddd (4-16)*32(%rax), %ymm8, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + + vpaddd (4-7)*32(%rax), %ymm0, %ymm0 + vpaddd (4-6)*32(%rax), %ymm4, %ymm4 + + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 4*32(%rax) + vmovdqa %ymm7, (4+1)*32(%rax) + + vmovdqa -9*32(%rax), %ymm0 + vpslld $14, %ymm0, %ymm2 + vpsrld $3, %ymm0, %ymm8 + vpsrld $7, %ymm0, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpsrld $11, %ymm1, %ymm1 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpaddd sha256d_8preext2_23(%rip), %ymm0, %ymm4 + vpaddd -10*32(%rax), %ymm8, %ymm0 + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpaddd -1*32(%rax), %ymm0, %ymm0 + vpaddd 0*32(%rax), %ymm4, %ymm4 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 6*32(%rax) + vmovdqa %ymm7, 7*32(%rax) + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd sha256d_8preext2_24(%rip), %ymm3, %ymm3 + vpaddd 1*32(%rax), %ymm3, %ymm3 + vpaddd 2*32(%rax), %ymm7, %ymm7 + vmovdqa %ymm3, 8*32(%rax) + vmovdqa %ymm7, 9*32(%rax) + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd 3*32(%rax), %ymm3, %ymm3 + vpaddd 4*32(%rax), %ymm7, %ymm7 + vmovdqa %ymm3, 10*32(%rax) + vmovdqa %ymm7, 11*32(%rax) + + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd 5*32(%rax), %ymm3, %ymm3 + vpaddd 6*32(%rax), %ymm7, %ymm7 + vmovdqa %ymm3, 12*32(%rax) + vmovdqa %ymm7, 13*32(%rax) + + vmovdqa sha256d_8preext2_30(%rip), %ymm0 + vmovdqa 0*32(%rax), %ymm4 + vpslld $14, %ymm4, %ymm6 + vpsrld $3, %ymm4, %ymm4 + vpsrld $4, %ymm4, %ymm5 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm6, %ymm4, %ymm4 + vpsrld $11, %ymm5, %ymm5 + vpslld $11, %ymm6, %ymm6 + vpxor %ymm5, %ymm4, %ymm4 + vpxor %ymm6, %ymm4, %ymm4 + vpaddd -1*32(%rax), %ymm4, %ymm4 + vpslld $13, %ymm3, %ymm2 + vpslld $13, %ymm7, %ymm6 + vpsrld $10, %ymm3, %ymm3 + vpsrld $10, %ymm7, %ymm7 + vpaddd 7*32(%rax), %ymm0, %ymm0 + vpaddd 8*32(%rax), %ymm4, %ymm4 + vpsrld $7, %ymm3, %ymm1 + vpsrld $7, %ymm7, %ymm5 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpsrld $2, %ymm1, %ymm1 + vpsrld $2, %ymm5, %ymm5 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpslld $2, %ymm2, %ymm2 + vpslld $2, %ymm6, %ymm6 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm5, %ymm7, %ymm7 + vpxor %ymm2, %ymm3, %ymm3 + vpxor %ymm6, %ymm7, %ymm7 + vpaddd %ymm0, %ymm3, %ymm3 + vpaddd %ymm4, %ymm7, %ymm7 + vmovdqa %ymm3, 14*32(%rax) + vmovdqa %ymm7, 15*32(%rax) + + jmp sha256d_ms_8way_avx2_extend_loop2 + +sha256d_ms_8way_avx2_extend_coda2: + vmovdqa (44-15)*32(%rax), %ymm0 + vpslld $14, %ymm0, %ymm2 + vpsrld $3, %ymm0, %ymm0 + vpsrld $4, %ymm0, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpsrld $11, %ymm1, %ymm1 + vpslld $11, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpaddd (44-16)*32(%rax), %ymm0, %ymm0 + vpaddd (44-7)*32(%rax), %ymm0, %ymm0 + + vpslld $13, %ymm3, %ymm2 + vpsrld $10, %ymm3, %ymm3 + vpsrld $7, %ymm3, %ymm1 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm2, %ymm3, %ymm3 + vpsrld $2, %ymm1, %ymm1 + vpslld $2, %ymm2, %ymm2 + vpxor %ymm1, %ymm3, %ymm3 + vpxor %ymm2, %ymm3, %ymm3 + vpaddd %ymm0, %ymm3, %ymm3 + vmovdqa %ymm3, 44*32(%rax) + + vmovdqa sha256_8h+0(%rip), %ymm7 + vmovdqa sha256_8h+32(%rip), %ymm5 + vmovdqa sha256_8h+64(%rip), %ymm4 + vmovdqa sha256_8h+96(%rip), %ymm3 + vmovdqa sha256_8h+128(%rip), %ymm0 + vmovdqa sha256_8h+160(%rip), %ymm8 + vmovdqa sha256_8h+192(%rip), %ymm9 + vmovdqa sha256_8h+224(%rip), %ymm10 + + movq %rsp, %rax + leaq sha256_8k(%rip), %rcx + jmp sha256d_ms_8way_avx2_main_loop2 + + +sha256d_ms_8way_avx2_finish: + vpaddd 32*57(%rax), %ymm9, %ymm6 + vpaddd 32*57(%rcx), %ymm6, %ymm6 + vpandn %ymm8, %ymm10, %ymm1 + vpand %ymm10, %ymm0, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + vpslld $7, %ymm10, %ymm1 + vpsrld $6, %ymm10, %ymm9 + vpsrld $5, %ymm9, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm9, %ymm9 + vpxor %ymm2, %ymm9, %ymm9 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm9, %ymm9 + vpaddd %ymm9, %ymm6, %ymm6 + vpaddd %ymm6, %ymm4, %ymm9 + vpaddd 32*58(%rax), %ymm8, %ymm6 + vpaddd 32*58(%rcx), %ymm6, %ymm6 + vpandn %ymm0, %ymm9, %ymm1 + vpand %ymm9, %ymm10, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + vpslld $7, %ymm9, %ymm1 + vpsrld $6, %ymm9, %ymm8 + vpsrld $5, %ymm8, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm8, %ymm8 + vpxor %ymm2, %ymm8, %ymm8 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm8, %ymm8 + vpaddd %ymm8, %ymm6, %ymm6 + vpaddd %ymm6, %ymm5, %ymm8 + vpaddd 32*59(%rax), %ymm0, %ymm6 + vpaddd 32*59(%rcx), %ymm6, %ymm6 + vpandn %ymm10, %ymm8, %ymm1 + vpand %ymm8, %ymm9, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + vpslld $7, %ymm8, %ymm1 + vpsrld $6, %ymm8, %ymm0 + vpsrld $5, %ymm0, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm0, %ymm0 + vpxor %ymm2, %ymm0, %ymm0 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm0, %ymm0 + vpaddd %ymm0, %ymm6, %ymm6 + vpaddd %ymm6, %ymm7, %ymm0 + vpaddd 32*60(%rax), %ymm10, %ymm6 + vpaddd 32*60(%rcx), %ymm6, %ymm6 + vpandn %ymm9, %ymm0, %ymm1 + vpand %ymm0, %ymm8, %ymm2 + vpxor %ymm2, %ymm1, %ymm1 + vpaddd %ymm1, %ymm6, %ymm6 + vpslld $7, %ymm0, %ymm1 + vpsrld $6, %ymm0, %ymm10 + vpsrld $5, %ymm10, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $14, %ymm1, %ymm1 + vpsrld $14, %ymm2, %ymm2 + vpxor %ymm1, %ymm10, %ymm10 + vpxor %ymm2, %ymm10, %ymm10 + vpslld $5, %ymm1, %ymm1 + vpxor %ymm1, %ymm10, %ymm10 + vpaddd %ymm10, %ymm6, %ymm6 + vpaddd %ymm6, %ymm3, %ymm10 + + vpaddd sha256_8h+224(%rip), %ymm10, %ymm10 + vmovdqa %ymm10, 224(%rdi) + + movq %rbp, %rsp + popq %rbp +#if defined(_WIN64) || defined(__CYGWIN__) + popq %rsi + vmovdqa 0(%rsp), %xmm6 + vmovdqa 16(%rsp), %xmm7 + vmovdqa 32(%rsp), %xmm8 + vmovdqa 48(%rsp), %xmm9 + vmovdqa 64(%rsp), %xmm10 + addq $80, %rsp + popq %rdi +#endif + ret + + + .text + .p2align 6 + .globl sha256_use_8way + .globl _sha256_use_8way +sha256_use_8way: +_sha256_use_8way: + pushq %rbx + + /* Check for AVX and OSXSAVE support */ + movl $1, %eax + cpuid + andl $0x18000000, %ecx + cmpl $0x18000000, %ecx + jne sha256_use_8way_no + /* Check for AVX2 support */ + movl $7, %eax + xorl %ecx, %ecx + cpuid + andl $0x00000020, %ebx + cmpl $0x00000020, %ebx + jne sha256_use_8way_no + /* Check for XMM and YMM state support */ + xorl %ecx, %ecx + xgetbv + andl $0x00000006, %eax + cmpl $0x00000006, %eax + jne sha256_use_8way_no + +sha256_use_8way_yes: + movl $1, %eax + jmp sha256_use_8way_done + +sha256_use_8way_no: + xorl %eax, %eax + +sha256_use_8way_done: + popq %rbx + ret + +#endif /* USE_AVX2 */ + +#endif diff --git a/src/crypto/sha2-x86.S b/src/crypto/sha2-x86.S new file mode 100644 index 0000000000..5bfb48583b --- /dev/null +++ b/src/crypto/sha2-x86.S @@ -0,0 +1,6165 @@ +/* + * Copyright 2012 pooler@litecoinpool.org + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. See COPYING for more details. + */ + + +#if defined(__linux__) && defined(__ELF__) + .section .note.GNU-stack,"",%progbits +#endif + +#if defined(__i386__) + + .data + .p2align 7 +sha256_4h: + .long 0x6a09e667, 0x6a09e667, 0x6a09e667, 0x6a09e667 + .long 0xbb67ae85, 0xbb67ae85, 0xbb67ae85, 0xbb67ae85 + .long 0x3c6ef372, 0x3c6ef372, 0x3c6ef372, 0x3c6ef372 + .long 0xa54ff53a, 0xa54ff53a, 0xa54ff53a, 0xa54ff53a + .long 0x510e527f, 0x510e527f, 0x510e527f, 0x510e527f + .long 0x9b05688c, 0x9b05688c, 0x9b05688c, 0x9b05688c + .long 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab, 0x1f83d9ab + .long 0x5be0cd19, 0x5be0cd19, 0x5be0cd19, 0x5be0cd19 + + .data + .p2align 7 +sha256_4k: + .long 0x428a2f98, 0x428a2f98, 0x428a2f98, 0x428a2f98 + .long 0x71374491, 0x71374491, 0x71374491, 0x71374491 + .long 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf, 0xb5c0fbcf + .long 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5, 0xe9b5dba5 + .long 0x3956c25b, 0x3956c25b, 0x3956c25b, 0x3956c25b + .long 0x59f111f1, 0x59f111f1, 0x59f111f1, 0x59f111f1 + .long 0x923f82a4, 0x923f82a4, 0x923f82a4, 0x923f82a4 + .long 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5, 0xab1c5ed5 + .long 0xd807aa98, 0xd807aa98, 0xd807aa98, 0xd807aa98 + .long 0x12835b01, 0x12835b01, 0x12835b01, 0x12835b01 + .long 0x243185be, 0x243185be, 0x243185be, 0x243185be + .long 0x550c7dc3, 0x550c7dc3, 0x550c7dc3, 0x550c7dc3 + .long 0x72be5d74, 0x72be5d74, 0x72be5d74, 0x72be5d74 + .long 0x80deb1fe, 0x80deb1fe, 0x80deb1fe, 0x80deb1fe + .long 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7, 0x9bdc06a7 + .long 0xc19bf174, 0xc19bf174, 0xc19bf174, 0xc19bf174 + .long 0xe49b69c1, 0xe49b69c1, 0xe49b69c1, 0xe49b69c1 + .long 0xefbe4786, 0xefbe4786, 0xefbe4786, 0xefbe4786 + .long 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6, 0x0fc19dc6 + .long 0x240ca1cc, 0x240ca1cc, 0x240ca1cc, 0x240ca1cc + .long 0x2de92c6f, 0x2de92c6f, 0x2de92c6f, 0x2de92c6f + .long 0x4a7484aa, 0x4a7484aa, 0x4a7484aa, 0x4a7484aa + .long 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc, 0x5cb0a9dc + .long 0x76f988da, 0x76f988da, 0x76f988da, 0x76f988da + .long 0x983e5152, 0x983e5152, 0x983e5152, 0x983e5152 + .long 0xa831c66d, 0xa831c66d, 0xa831c66d, 0xa831c66d + .long 0xb00327c8, 0xb00327c8, 0xb00327c8, 0xb00327c8 + .long 0xbf597fc7, 0xbf597fc7, 0xbf597fc7, 0xbf597fc7 + .long 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3, 0xc6e00bf3 + .long 0xd5a79147, 0xd5a79147, 0xd5a79147, 0xd5a79147 + .long 0x06ca6351, 0x06ca6351, 0x06ca6351, 0x06ca6351 + .long 0x14292967, 0x14292967, 0x14292967, 0x14292967 + .long 0x27b70a85, 0x27b70a85, 0x27b70a85, 0x27b70a85 + .long 0x2e1b2138, 0x2e1b2138, 0x2e1b2138, 0x2e1b2138 + .long 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc, 0x4d2c6dfc + .long 0x53380d13, 0x53380d13, 0x53380d13, 0x53380d13 + .long 0x650a7354, 0x650a7354, 0x650a7354, 0x650a7354 + .long 0x766a0abb, 0x766a0abb, 0x766a0abb, 0x766a0abb + .long 0x81c2c92e, 0x81c2c92e, 0x81c2c92e, 0x81c2c92e + .long 0x92722c85, 0x92722c85, 0x92722c85, 0x92722c85 + .long 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1, 0xa2bfe8a1 + .long 0xa81a664b, 0xa81a664b, 0xa81a664b, 0xa81a664b + .long 0xc24b8b70, 0xc24b8b70, 0xc24b8b70, 0xc24b8b70 + .long 0xc76c51a3, 0xc76c51a3, 0xc76c51a3, 0xc76c51a3 + .long 0xd192e819, 0xd192e819, 0xd192e819, 0xd192e819 + .long 0xd6990624, 0xd6990624, 0xd6990624, 0xd6990624 + .long 0xf40e3585, 0xf40e3585, 0xf40e3585, 0xf40e3585 + .long 0x106aa070, 0x106aa070, 0x106aa070, 0x106aa070 + .long 0x19a4c116, 0x19a4c116, 0x19a4c116, 0x19a4c116 + .long 0x1e376c08, 0x1e376c08, 0x1e376c08, 0x1e376c08 + .long 0x2748774c, 0x2748774c, 0x2748774c, 0x2748774c + .long 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5, 0x34b0bcb5 + .long 0x391c0cb3, 0x391c0cb3, 0x391c0cb3, 0x391c0cb3 + .long 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a, 0x4ed8aa4a + .long 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f, 0x5b9cca4f + .long 0x682e6ff3, 0x682e6ff3, 0x682e6ff3, 0x682e6ff3 + .long 0x748f82ee, 0x748f82ee, 0x748f82ee, 0x748f82ee + .long 0x78a5636f, 0x78a5636f, 0x78a5636f, 0x78a5636f + .long 0x84c87814, 0x84c87814, 0x84c87814, 0x84c87814 + .long 0x8cc70208, 0x8cc70208, 0x8cc70208, 0x8cc70208 + .long 0x90befffa, 0x90befffa, 0x90befffa, 0x90befffa + .long 0xa4506ceb, 0xa4506ceb, 0xa4506ceb, 0xa4506ceb + .long 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7, 0xbef9a3f7 + .long 0xc67178f2, 0xc67178f2, 0xc67178f2, 0xc67178f2 + + .data + .p2align 6 +sha256d_4preext2_15: + .long 0x00000100, 0x00000100, 0x00000100, 0x00000100 +sha256d_4preext2_17: + .long 0x00a00000, 0x00a00000, 0x00a00000, 0x00a00000 +sha256d_4preext2_23: + .long 0x11002000, 0x11002000, 0x11002000, 0x11002000 +sha256d_4preext2_24: + .long 0x80000000, 0x80000000, 0x80000000, 0x80000000 +sha256d_4preext2_30: + .long 0x00400022, 0x00400022, 0x00400022, 0x00400022 + + + .text + .p2align 5 + .globl sha256_init_4way + .globl _sha256_init_4way +sha256_init_4way: +_sha256_init_4way: + movl 4(%esp), %edx + movdqa sha256_4h+0, %xmm0 + movdqa sha256_4h+16, %xmm1 + movdqa sha256_4h+32, %xmm2 + movdqa sha256_4h+48, %xmm3 + movdqu %xmm0, 0(%edx) + movdqu %xmm1, 16(%edx) + movdqu %xmm2, 32(%edx) + movdqu %xmm3, 48(%edx) + movdqa sha256_4h+64, %xmm0 + movdqa sha256_4h+80, %xmm1 + movdqa sha256_4h+96, %xmm2 + movdqa sha256_4h+112, %xmm3 + movdqu %xmm0, 64(%edx) + movdqu %xmm1, 80(%edx) + movdqu %xmm2, 96(%edx) + movdqu %xmm3, 112(%edx) + ret + + + + + + + + + .text + .p2align 5 + .globl sha256_transform_4way + .globl _sha256_transform_4way +sha256_transform_4way: +_sha256_transform_4way: + pushl %edi + pushl %esi + movl 12(%esp), %edi + movl 16(%esp), %esi + movl 20(%esp), %ecx + movl %esp, %edx + subl $67*16, %esp + andl $-128, %esp + + testl %ecx, %ecx + jnz sha256_transform_4way_swap + + movdqu 0*16(%esi), %xmm0 + movdqu 1*16(%esi), %xmm1 + movdqu 2*16(%esi), %xmm2 + movdqu 3*16(%esi), %xmm3 + movdqu 4*16(%esi), %xmm4 + movdqu 5*16(%esi), %xmm5 + movdqu 6*16(%esi), %xmm6 + movdqu 7*16(%esi), %xmm7 + movdqa %xmm0, 3*16(%esp) + movdqa %xmm1, 4*16(%esp) + movdqa %xmm2, 5*16(%esp) + movdqa %xmm3, 6*16(%esp) + movdqa %xmm4, 7*16(%esp) + movdqa %xmm5, 8*16(%esp) + movdqa %xmm6, 9*16(%esp) + movdqa %xmm7, 10*16(%esp) + movdqu 8*16(%esi), %xmm0 + movdqu 9*16(%esi), %xmm1 + movdqu 10*16(%esi), %xmm2 + movdqu 11*16(%esi), %xmm3 + movdqu 12*16(%esi), %xmm4 + movdqu 13*16(%esi), %xmm5 + movdqu 14*16(%esi), %xmm6 + movdqu 15*16(%esi), %xmm7 + movdqa %xmm0, 11*16(%esp) + movdqa %xmm1, 12*16(%esp) + movdqa %xmm2, 13*16(%esp) + movdqa %xmm3, 14*16(%esp) + movdqa %xmm4, 15*16(%esp) + movdqa %xmm5, 16*16(%esp) + movdqa %xmm6, 17*16(%esp) + movdqa %xmm7, 18*16(%esp) + jmp sha256_transform_4way_extend + + .p2align 5 +sha256_transform_4way_swap: + movdqu 0*16(%esi), %xmm0 + movdqu (0+1)*16(%esi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, (0+3)*16(%esp) + movdqa %xmm2, (0+4)*16(%esp) + movdqu 2*16(%esi), %xmm0 + movdqu (2+1)*16(%esi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, (2+3)*16(%esp) + movdqa %xmm2, (2+4)*16(%esp) + movdqu 4*16(%esi), %xmm0 + movdqu (4+1)*16(%esi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, (4+3)*16(%esp) + movdqa %xmm2, (4+4)*16(%esp) + movdqu 6*16(%esi), %xmm0 + movdqu (6+1)*16(%esi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, (6+3)*16(%esp) + movdqa %xmm2, (6+4)*16(%esp) + movdqu 8*16(%esi), %xmm0 + movdqu (8+1)*16(%esi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, (8+3)*16(%esp) + movdqa %xmm2, (8+4)*16(%esp) + movdqu 10*16(%esi), %xmm0 + movdqu (10+1)*16(%esi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, (10+3)*16(%esp) + movdqa %xmm2, (10+4)*16(%esp) + movdqu 12*16(%esi), %xmm0 + movdqu (12+1)*16(%esi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, (12+3)*16(%esp) + movdqa %xmm2, (12+4)*16(%esp) + movdqu 14*16(%esi), %xmm0 + movdqu (14+1)*16(%esi), %xmm2 + pshuflw $0xb1, %xmm0, %xmm0 + pshuflw $0xb1, %xmm2, %xmm2 + pshufhw $0xb1, %xmm0, %xmm0 + pshufhw $0xb1, %xmm2, %xmm2 + movdqa %xmm0, %xmm1 + movdqa %xmm2, %xmm3 + psrlw $8, %xmm1 + psrlw $8, %xmm3 + psllw $8, %xmm0 + psllw $8, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm3, %xmm2 + movdqa %xmm0, (14+3)*16(%esp) + movdqa %xmm2, (14+4)*16(%esp) + +sha256_transform_4way_extend: + leal 19*16(%esp), %ecx + leal 48*16(%ecx), %eax + movdqa -2*16(%ecx), %xmm3 + movdqa -1*16(%ecx), %xmm7 +sha256_transform_4way_extend_loop: + movdqa -15*16(%ecx), %xmm0 + movdqa -14*16(%ecx), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd -16*16(%ecx), %xmm0 + paddd -15*16(%ecx), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd -7*16(%ecx), %xmm0 + paddd -6*16(%ecx), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, (%ecx) + movdqa %xmm7, 16(%ecx) + addl $2*16, %ecx + cmpl %ecx, %eax + jne sha256_transform_4way_extend_loop + + movdqu 0(%edi), %xmm7 + movdqu 16(%edi), %xmm5 + movdqu 32(%edi), %xmm4 + movdqu 48(%edi), %xmm3 + movdqu 64(%edi), %xmm0 + movdqu 80(%edi), %xmm1 + movdqu 96(%edi), %xmm2 + movdqu 112(%edi), %xmm6 + movdqa %xmm1, 0(%esp) + movdqa %xmm2, 16(%esp) + movdqa %xmm6, 32(%esp) + + xorl %eax, %eax +sha256_transform_4way_main_loop: + movdqa 3*16(%esp, %eax), %xmm6 + paddd sha256_4k(%eax), %xmm6 + paddd 32(%esp), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $5, %xmm1 + pxor %xmm1, %xmm0 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + paddd %xmm6, %xmm0 + + movdqa %xmm5, %xmm1 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + pand %xmm5, %xmm2 + pand %xmm7, %xmm4 + pand %xmm7, %xmm1 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pxor %xmm1, %xmm7 + pslld $9, %xmm2 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pxor %xmm1, %xmm7 + pslld $11, %xmm2 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + + addl $16, %eax + cmpl $16*64, %eax + jne sha256_transform_4way_main_loop + + movdqu 0(%edi), %xmm1 + movdqu 16(%edi), %xmm2 + paddd %xmm1, %xmm7 + paddd %xmm2, %xmm5 + movdqu 32(%edi), %xmm1 + movdqu 48(%edi), %xmm2 + paddd %xmm1, %xmm4 + paddd %xmm2, %xmm3 + + movdqu %xmm7, 0(%edi) + movdqu %xmm5, 16(%edi) + movdqu %xmm4, 32(%edi) + movdqu %xmm3, 48(%edi) + + movdqu 64(%edi), %xmm1 + movdqu 80(%edi), %xmm2 + movdqu 96(%edi), %xmm6 + movdqu 112(%edi), %xmm7 + paddd %xmm1, %xmm0 + paddd 0(%esp), %xmm2 + paddd 16(%esp), %xmm6 + paddd 32(%esp), %xmm7 + + movdqu %xmm0, 64(%edi) + movdqu %xmm2, 80(%edi) + movdqu %xmm6, 96(%edi) + movdqu %xmm7, 112(%edi) + + movl %edx, %esp + popl %esi + popl %edi + ret + + + .text + .p2align 5 + .globl sha256d_ms_4way + .globl _sha256d_ms_4way +sha256d_ms_4way: +_sha256d_ms_4way: + pushl %edi + pushl %esi + pushl %ebp + movl 16(%esp), %edi + movl 20(%esp), %esi + movl 24(%esp), %edx + movl 28(%esp), %ecx + movl %esp, %ebp + subl $67*16, %esp + andl $-128, %esp + + leal 256(%esi), %eax + +sha256d_ms_4way_extend_loop1: + movdqa 3*16(%esi), %xmm0 + movdqa 2*16(%eax), %xmm3 + movdqa 3*16(%eax), %xmm7 + movdqa %xmm3, 5*16(%esp) + movdqa %xmm7, 6*16(%esp) + movdqa %xmm0, %xmm2 + paddd %xmm0, %xmm7 + psrld $3, %xmm0 + movdqa %xmm0, %xmm1 + pslld $14, %xmm2 + psrld $4, %xmm1 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + psrld $11, %xmm1 + pslld $11, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + paddd %xmm0, %xmm3 + movdqa %xmm3, 2*16(%eax) + movdqa %xmm7, 3*16(%eax) + + movdqa 4*16(%eax), %xmm0 + movdqa %xmm0, 7*16(%esp) + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + movdqa %xmm3, 4*16(%eax) + movdqa %xmm7, 5*16(%eax) + + movdqa 6*16(%eax), %xmm0 + movdqa 7*16(%eax), %xmm4 + movdqa %xmm0, 9*16(%esp) + movdqa %xmm4, 10*16(%esp) + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 6*16(%eax) + movdqa %xmm7, 7*16(%eax) + + movdqa 8*16(%eax), %xmm0 + movdqa 2*16(%eax), %xmm4 + movdqa %xmm0, 11*16(%esp) + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 8*16(%eax) + movdqa %xmm7, 9*16(%eax) + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd 3*16(%eax), %xmm3 + paddd 4*16(%eax), %xmm7 + movdqa %xmm3, 10*16(%eax) + movdqa %xmm7, 11*16(%eax) + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd 5*16(%eax), %xmm3 + paddd 6*16(%eax), %xmm7 + movdqa %xmm3, 12*16(%eax) + movdqa %xmm7, 13*16(%eax) + + movdqa 14*16(%eax), %xmm0 + movdqa 15*16(%eax), %xmm4 + movdqa %xmm0, 17*16(%esp) + movdqa %xmm4, 18*16(%esp) + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + paddd 7*16(%eax), %xmm0 + paddd 8*16(%eax), %xmm4 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 14*16(%eax) + movdqa %xmm7, 15*16(%eax) + +sha256d_ms_4way_extend_loop2: + movdqa (16-15)*16(%eax), %xmm0 + movdqa (16-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (16-16)*16(%eax), %xmm0 + paddd (16-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (16-7)*16(%eax), %xmm0 + paddd (16-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 16*16(%eax) + movdqa %xmm7, (16+1)*16(%eax) + movdqa (18-15)*16(%eax), %xmm0 + movdqa (18-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (18-16)*16(%eax), %xmm0 + paddd (18-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (18-7)*16(%eax), %xmm0 + paddd (18-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 18*16(%eax) + movdqa %xmm7, (18+1)*16(%eax) + movdqa (20-15)*16(%eax), %xmm0 + movdqa (20-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (20-16)*16(%eax), %xmm0 + paddd (20-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (20-7)*16(%eax), %xmm0 + paddd (20-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 20*16(%eax) + movdqa %xmm7, (20+1)*16(%eax) + movdqa (22-15)*16(%eax), %xmm0 + movdqa (22-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (22-16)*16(%eax), %xmm0 + paddd (22-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (22-7)*16(%eax), %xmm0 + paddd (22-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 22*16(%eax) + movdqa %xmm7, (22+1)*16(%eax) + movdqa (24-15)*16(%eax), %xmm0 + movdqa (24-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (24-16)*16(%eax), %xmm0 + paddd (24-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (24-7)*16(%eax), %xmm0 + paddd (24-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 24*16(%eax) + movdqa %xmm7, (24+1)*16(%eax) + movdqa (26-15)*16(%eax), %xmm0 + movdqa (26-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (26-16)*16(%eax), %xmm0 + paddd (26-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (26-7)*16(%eax), %xmm0 + paddd (26-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 26*16(%eax) + movdqa %xmm7, (26+1)*16(%eax) + movdqa (28-15)*16(%eax), %xmm0 + movdqa (28-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (28-16)*16(%eax), %xmm0 + paddd (28-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (28-7)*16(%eax), %xmm0 + paddd (28-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 28*16(%eax) + movdqa %xmm7, (28+1)*16(%eax) + movdqa (30-15)*16(%eax), %xmm0 + movdqa (30-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (30-16)*16(%eax), %xmm0 + paddd (30-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (30-7)*16(%eax), %xmm0 + paddd (30-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 30*16(%eax) + movdqa %xmm7, (30+1)*16(%eax) + movdqa (32-15)*16(%eax), %xmm0 + movdqa (32-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (32-16)*16(%eax), %xmm0 + paddd (32-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (32-7)*16(%eax), %xmm0 + paddd (32-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 32*16(%eax) + movdqa %xmm7, (32+1)*16(%eax) + movdqa (34-15)*16(%eax), %xmm0 + movdqa (34-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (34-16)*16(%eax), %xmm0 + paddd (34-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (34-7)*16(%eax), %xmm0 + paddd (34-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 34*16(%eax) + movdqa %xmm7, (34+1)*16(%eax) + movdqa (36-15)*16(%eax), %xmm0 + movdqa (36-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (36-16)*16(%eax), %xmm0 + paddd (36-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (36-7)*16(%eax), %xmm0 + paddd (36-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 36*16(%eax) + movdqa %xmm7, (36+1)*16(%eax) + movdqa (38-15)*16(%eax), %xmm0 + movdqa (38-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (38-16)*16(%eax), %xmm0 + paddd (38-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (38-7)*16(%eax), %xmm0 + paddd (38-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 38*16(%eax) + movdqa %xmm7, (38+1)*16(%eax) + movdqa (40-15)*16(%eax), %xmm0 + movdqa (40-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (40-16)*16(%eax), %xmm0 + paddd (40-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (40-7)*16(%eax), %xmm0 + paddd (40-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 40*16(%eax) + movdqa %xmm7, (40+1)*16(%eax) + movdqa (42-15)*16(%eax), %xmm0 + movdqa (42-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (42-16)*16(%eax), %xmm0 + paddd (42-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (42-7)*16(%eax), %xmm0 + paddd (42-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 42*16(%eax) + movdqa %xmm7, (42+1)*16(%eax) + jz sha256d_ms_4way_extend_coda2 + movdqa (44-15)*16(%eax), %xmm0 + movdqa (44-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (44-16)*16(%eax), %xmm0 + paddd (44-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (44-7)*16(%eax), %xmm0 + paddd (44-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 44*16(%eax) + movdqa %xmm7, (44+1)*16(%eax) + movdqa (46-15)*16(%eax), %xmm0 + movdqa (46-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (46-16)*16(%eax), %xmm0 + paddd (46-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (46-7)*16(%eax), %xmm0 + paddd (46-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 46*16(%eax) + movdqa %xmm7, (46+1)*16(%eax) + + movdqa 0(%ecx), %xmm3 + movdqa 16(%ecx), %xmm0 + movdqa 32(%ecx), %xmm1 + movdqa 48(%ecx), %xmm2 + movdqa 64(%ecx), %xmm6 + movdqa 80(%ecx), %xmm7 + movdqa 96(%ecx), %xmm5 + movdqa 112(%ecx), %xmm4 + movdqa %xmm1, 0(%esp) + movdqa %xmm2, 16(%esp) + movdqa %xmm6, 32(%esp) + + movl %esi, %eax + jmp sha256d_ms_4way_main_loop1 + +sha256d_ms_4way_main_loop2: + movdqa 16*(0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 +sha256d_ms_4way_main_loop1: + movdqa 16*(3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(4+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(4+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(4+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(4+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(4+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(4+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(4+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(4+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(8+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(8+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(8+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(8+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(8+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(8+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(8+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(8+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(12+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(12+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(12+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(12+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(12+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(12+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(12+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(12+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(16+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(16+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(16+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(16+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(16+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(16+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(16+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(16+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(20+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(20+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(20+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(20+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(20+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(20+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(20+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(20+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(24+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(24+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(24+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(24+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(24+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(24+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(24+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(24+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(28+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(28+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(28+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(28+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(28+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(28+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(28+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(28+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(32+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(32+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(32+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(32+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(32+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(32+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(32+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(32+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(36+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(36+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(36+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(36+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(36+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(36+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(36+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(36+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(40+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(40+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(40+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(40+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(40+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(40+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(40+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(40+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(44+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(44+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(44+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(44+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(44+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(44+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(44+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(44+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(48+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(48+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(48+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(48+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(48+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(48+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(48+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(48+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(52+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(52+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(52+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(52+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(52+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(52+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(52+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(52+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(56)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(56)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + jz sha256d_ms_4way_finish + movdqa 16*(57)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(57)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(58)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(58)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(59)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(59)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(60+0)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(60+0)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(60+1)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(60+1)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(60+2)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(60+2)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + movdqa 16*(60+3)(%eax), %xmm6 + + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + pandn %xmm2, %xmm1 + paddd 32(%esp), %xmm6 + + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + + paddd %xmm1, %xmm6 + + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + paddd 16*(60+3)+sha256_4k, %xmm6 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pslld $5, %xmm1 + pxor %xmm2, %xmm0 + pxor %xmm1, %xmm0 + movdqa %xmm5, %xmm1 + paddd %xmm0, %xmm6 + + movdqa %xmm3, %xmm0 + movdqa %xmm4, %xmm3 + movdqa %xmm4, %xmm2 + paddd %xmm6, %xmm0 + pand %xmm5, %xmm2 + pand %xmm7, %xmm1 + pand %xmm7, %xmm4 + pxor %xmm4, %xmm1 + movdqa %xmm5, %xmm4 + movdqa %xmm7, %xmm5 + pxor %xmm2, %xmm1 + paddd %xmm1, %xmm6 + + movdqa %xmm7, %xmm2 + psrld $2, %xmm7 + movdqa %xmm7, %xmm1 + pslld $10, %xmm2 + psrld $11, %xmm1 + pxor %xmm2, %xmm7 + pslld $9, %xmm2 + pxor %xmm1, %xmm7 + psrld $9, %xmm1 + pxor %xmm2, %xmm7 + pslld $11, %xmm2 + pxor %xmm1, %xmm7 + pxor %xmm2, %xmm7 + paddd %xmm6, %xmm7 + + movdqa 5*16(%esp), %xmm1 + movdqa 6*16(%esp), %xmm2 + movdqa 7*16(%esp), %xmm6 + movdqa %xmm1, 18*16(%esi) + movdqa %xmm2, 19*16(%esi) + movdqa %xmm6, 20*16(%esi) + movdqa 9*16(%esp), %xmm1 + movdqa 10*16(%esp), %xmm2 + movdqa 11*16(%esp), %xmm6 + movdqa %xmm1, 22*16(%esi) + movdqa %xmm2, 23*16(%esi) + movdqa %xmm6, 24*16(%esi) + movdqa 17*16(%esp), %xmm1 + movdqa 18*16(%esp), %xmm2 + movdqa %xmm1, 30*16(%esi) + movdqa %xmm2, 31*16(%esi) + + movdqa 0(%esp), %xmm1 + movdqa 16(%esp), %xmm2 + movdqa 32(%esp), %xmm6 + paddd 0(%edx), %xmm7 + paddd 16(%edx), %xmm5 + paddd 32(%edx), %xmm4 + paddd 48(%edx), %xmm3 + paddd 64(%edx), %xmm0 + paddd 80(%edx), %xmm1 + paddd 96(%edx), %xmm2 + paddd 112(%edx), %xmm6 + + movdqa %xmm7, 48+0(%esp) + movdqa %xmm5, 48+16(%esp) + movdqa %xmm4, 48+32(%esp) + movdqa %xmm3, 48+48(%esp) + movdqa %xmm0, 48+64(%esp) + movdqa %xmm1, 48+80(%esp) + movdqa %xmm2, 48+96(%esp) + movdqa %xmm6, 48+112(%esp) + + movdqa sha256d_4preext2_15, %xmm1 + movdqa sha256d_4preext2_24, %xmm2 + pxor %xmm0, %xmm0 + movdqa %xmm2, 48+128(%esp) + movdqa %xmm0, 48+144(%esp) + movdqa %xmm0, 48+160(%esp) + movdqa %xmm0, 48+176(%esp) + movdqa %xmm0, 48+192(%esp) + movdqa %xmm0, 48+208(%esp) + movdqa %xmm0, 48+224(%esp) + movdqa %xmm1, 48+240(%esp) + + leal 19*16(%esp), %eax + cmpl %eax, %eax + + movdqa -15*16(%eax), %xmm0 + movdqa -14*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + paddd -16*16(%eax), %xmm0 + paddd -15*16(%eax), %xmm4 + paddd sha256d_4preext2_17, %xmm4 + movdqa %xmm0, %xmm3 + movdqa %xmm4, %xmm7 + movdqa %xmm3, 0*16(%eax) + movdqa %xmm7, 1*16(%eax) + + movdqa (2-15)*16(%eax), %xmm0 + movdqa (2-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (2-16)*16(%eax), %xmm0 + paddd (2-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (2-7)*16(%eax), %xmm0 + paddd (2-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 2*16(%eax) + movdqa %xmm7, (2+1)*16(%eax) + movdqa (4-15)*16(%eax), %xmm0 + movdqa (4-14)*16(%eax), %xmm4 + movdqa %xmm0, %xmm2 + movdqa %xmm4, %xmm6 + psrld $3, %xmm0 + psrld $3, %xmm4 + movdqa %xmm0, %xmm1 + movdqa %xmm4, %xmm5 + pslld $14, %xmm2 + pslld $14, %xmm6 + psrld $4, %xmm1 + psrld $4, %xmm5 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + psrld $11, %xmm1 + psrld $11, %xmm5 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + pslld $11, %xmm2 + pslld $11, %xmm6 + pxor %xmm1, %xmm0 + pxor %xmm5, %xmm4 + pxor %xmm2, %xmm0 + pxor %xmm6, %xmm4 + + paddd (4-16)*16(%eax), %xmm0 + paddd (4-15)*16(%eax), %xmm4 + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + + paddd (4-7)*16(%eax), %xmm0 + paddd (4-6)*16(%eax), %xmm4 + + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 4*16(%eax) + movdqa %xmm7, (4+1)*16(%eax) + + movdqa -9*16(%eax), %xmm0 + movdqa sha256d_4preext2_23, %xmm4 + movdqa %xmm0, %xmm2 + psrld $3, %xmm0 + movdqa %xmm0, %xmm1 + pslld $14, %xmm2 + psrld $4, %xmm1 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + psrld $11, %xmm1 + pslld $11, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + paddd -10*16(%eax), %xmm0 + paddd -9*16(%eax), %xmm4 + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + paddd -1*16(%eax), %xmm0 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + paddd 0*16(%eax), %xmm4 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 6*16(%eax) + movdqa %xmm7, 7*16(%eax) + + movdqa sha256d_4preext2_24, %xmm0 + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + paddd 1*16(%eax), %xmm0 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd 2*16(%eax), %xmm7 + movdqa %xmm3, 8*16(%eax) + movdqa %xmm7, 9*16(%eax) + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd 3*16(%eax), %xmm3 + paddd 4*16(%eax), %xmm7 + movdqa %xmm3, 10*16(%eax) + movdqa %xmm7, 11*16(%eax) + + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd 5*16(%eax), %xmm3 + paddd 6*16(%eax), %xmm7 + movdqa %xmm3, 12*16(%eax) + movdqa %xmm7, 13*16(%eax) + + movdqa sha256d_4preext2_30, %xmm0 + movdqa 0*16(%eax), %xmm4 + movdqa %xmm4, %xmm6 + psrld $3, %xmm4 + movdqa %xmm4, %xmm5 + pslld $14, %xmm6 + psrld $4, %xmm5 + pxor %xmm5, %xmm4 + pxor %xmm6, %xmm4 + psrld $11, %xmm5 + pslld $11, %xmm6 + pxor %xmm5, %xmm4 + pxor %xmm6, %xmm4 + paddd -1*16(%eax), %xmm4 + movdqa %xmm3, %xmm2 + movdqa %xmm7, %xmm6 + psrld $10, %xmm3 + psrld $10, %xmm7 + movdqa %xmm3, %xmm1 + movdqa %xmm7, %xmm5 + paddd 7*16(%eax), %xmm0 + pslld $13, %xmm2 + pslld $13, %xmm6 + psrld $7, %xmm1 + psrld $7, %xmm5 + paddd 8*16(%eax), %xmm4 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + psrld $2, %xmm1 + psrld $2, %xmm5 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + pslld $2, %xmm2 + pslld $2, %xmm6 + pxor %xmm1, %xmm3 + pxor %xmm5, %xmm7 + pxor %xmm2, %xmm3 + pxor %xmm6, %xmm7 + paddd %xmm0, %xmm3 + paddd %xmm4, %xmm7 + movdqa %xmm3, 14*16(%eax) + movdqa %xmm7, 15*16(%eax) + + jmp sha256d_ms_4way_extend_loop2 + +sha256d_ms_4way_extend_coda2: + movdqa (44-15)*16(%eax), %xmm0 + movdqa %xmm0, %xmm2 + psrld $3, %xmm0 + movdqa %xmm0, %xmm1 + pslld $14, %xmm2 + psrld $4, %xmm1 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + psrld $11, %xmm1 + pslld $11, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + paddd (44-16)*16(%eax), %xmm0 + paddd (44-7)*16(%eax), %xmm0 + + movdqa %xmm3, %xmm2 + psrld $10, %xmm3 + pslld $13, %xmm2 + movdqa %xmm3, %xmm1 + psrld $7, %xmm1 + pxor %xmm1, %xmm3 + pxor %xmm2, %xmm3 + psrld $2, %xmm1 + pslld $2, %xmm2 + pxor %xmm1, %xmm3 + pxor %xmm2, %xmm3 + paddd %xmm0, %xmm3 + movdqa %xmm3, 44*16(%eax) + + movdqa sha256_4h+0, %xmm7 + movdqa sha256_4h+16, %xmm5 + movdqa sha256_4h+32, %xmm4 + movdqa sha256_4h+48, %xmm3 + movdqa sha256_4h+64, %xmm0 + movdqa sha256_4h+80, %xmm1 + movdqa sha256_4h+96, %xmm2 + movdqa sha256_4h+112, %xmm6 + movdqa %xmm1, 0(%esp) + movdqa %xmm2, 16(%esp) + movdqa %xmm6, 32(%esp) + + leal 48(%esp), %eax + jmp sha256d_ms_4way_main_loop2 + + +sha256d_ms_4way_finish: + movdqa 16*(57)(%eax), %xmm6 + paddd 16*(57)+sha256_4k, %xmm6 + paddd 32(%esp), %xmm6 + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + paddd %xmm3, %xmm6 + pandn %xmm2, %xmm1 + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + paddd %xmm1, %xmm6 + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $5, %xmm1 + pxor %xmm1, %xmm0 + paddd %xmm6, %xmm0 + movdqa 16*(58)(%eax), %xmm6 + paddd 16*(58)+sha256_4k, %xmm6 + paddd 32(%esp), %xmm6 + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + paddd %xmm4, %xmm6 + pandn %xmm2, %xmm1 + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + paddd %xmm1, %xmm6 + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $5, %xmm1 + pxor %xmm1, %xmm0 + paddd %xmm6, %xmm0 + movdqa 16*(59)(%eax), %xmm6 + paddd 16*(59)+sha256_4k, %xmm6 + paddd 32(%esp), %xmm6 + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + paddd %xmm5, %xmm6 + pandn %xmm2, %xmm1 + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + paddd %xmm1, %xmm6 + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $5, %xmm1 + pxor %xmm1, %xmm0 + paddd %xmm6, %xmm0 + movdqa 16*(60)(%eax), %xmm6 + paddd 16*(60)+sha256_4k, %xmm6 + paddd 32(%esp), %xmm6 + movdqa %xmm0, %xmm1 + movdqa 16(%esp), %xmm2 + paddd %xmm7, %xmm6 + pandn %xmm2, %xmm1 + movdqa %xmm2, 32(%esp) + movdqa 0(%esp), %xmm2 + movdqa %xmm2, 16(%esp) + pand %xmm0, %xmm2 + pxor %xmm2, %xmm1 + movdqa %xmm0, 0(%esp) + paddd %xmm1, %xmm6 + movdqa %xmm0, %xmm1 + psrld $6, %xmm0 + movdqa %xmm0, %xmm2 + pslld $7, %xmm1 + psrld $5, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $14, %xmm1 + psrld $14, %xmm2 + pxor %xmm1, %xmm0 + pxor %xmm2, %xmm0 + pslld $5, %xmm1 + pxor %xmm1, %xmm0 + paddd %xmm6, %xmm0 + + paddd sha256_4h+112, %xmm0 + movdqa %xmm0, 112(%edi) + + movl %ebp, %esp + popl %ebp + popl %esi + popl %edi + ret + + + .text + .p2align 5 + .globl sha256_use_4way + .globl _sha256_use_4way +sha256_use_4way: +_sha256_use_4way: + pushl %ebx + + /* Check for SSE2 availability */ + movl $1, %eax + cpuid + andl $0x04000000, %edx + jnz sha256_use_4way_sse2 + xorl %eax, %eax + popl %ebx + ret + +sha256_use_4way_sse2: + movl $1, %eax + popl %ebx + ret + +#endif diff --git a/src/primitives/block.cpp b/src/primitives/block.cpp index 60c7c2d160..10360d9825 100644 --- a/src/primitives/block.cpp +++ b/src/primitives/block.cpp @@ -7,13 +7,22 @@ #include #include +#include #include +#include uint256 CBlockHeader::GetHash() const { return SerializeHash(*this); } +uint256 CBlockHeader::GetWorkHash() const +{ + uint256 thash; + scryptHash(BEGIN(nVersion), BEGIN(thash)); + return thash; +} + std::string CBlock::ToString() const { std::stringstream s; diff --git a/src/primitives/block.h b/src/primitives/block.h index 750d42efbc..3445fe1dad 100644 --- a/src/primitives/block.h +++ b/src/primitives/block.h @@ -61,6 +61,7 @@ class CBlockHeader } uint256 GetHash() const; + uint256 GetWorkHash() const; int64_t GetBlockTime() const { diff --git a/src/util/strencodings.h b/src/util/strencodings.h index e35b2ab857..dbe3b0bfb0 100644 --- a/src/util/strencodings.h +++ b/src/util/strencodings.h @@ -16,6 +16,7 @@ #include #include +#define BEGIN(a) ((char*)&(a)) #define ARRAYLEN(array) (sizeof(array)/sizeof((array)[0])) /** Used by SanitizeString() */ diff --git a/src/version.h b/src/version.h index d932b512d4..603ed3f7fb 100644 --- a/src/version.h +++ b/src/version.h @@ -9,16 +9,16 @@ * network protocol versioning */ -static const int PROTOCOL_VERSION = 70015; +static const int PROTOCOL_VERSION = 80001; //! initial proto version, to be increased after version/verack negotiation -static const int INIT_PROTO_VERSION = 209; +static const int INIT_PROTO_VERSION = 80001; //! In this version, 'getheaders' was introduced. static const int GETHEADERS_VERSION = 31800; //! disconnect from peers older than this proto version -static const int MIN_PEER_PROTO_VERSION = GETHEADERS_VERSION; +static const int MIN_PEER_PROTO_VERSION = 80001; //! nTime field added to CAddress, starting with this version; //! if possible, avoid requesting addresses nodes older than this From 4c32cbdb87249f36040340a3cdd86ae2a8937e69 Mon Sep 17 00:00:00 2001 From: Matthieu 'JP' DERASSE Date: Mon, 11 May 2020 22:13:32 +0200 Subject: [PATCH 079/388] Rename Bitcoin into Verium in SRC --- src/bitcoin-cli-res.rc | 2 +- src/bitcoin-tx-res.rc | 4 +- src/bitcoin-tx.cpp | 4 +- src/bitcoin-wallet-res.rc | 2 +- src/bitcoind-res.rc | 4 +- src/compat/assumptions.h | 2 +- src/init.cpp | 4 +- src/key.cpp | 2 +- src/net_processing.cpp | 2 +- src/qt/README.md | 2 +- src/qt/addressbookpage.cpp | 4 +- src/qt/addresstablemodel.cpp | 2 +- src/qt/addresstablemodel.h | 2 +- src/qt/bitcoin.cpp | 2 +- src/qt/bitcoingui.cpp | 8 +- src/qt/bitcoinunits.cpp | 6 +- src/qt/forms/optionsdialog.ui | 6 +- src/qt/forms/overviewpage.ui | 4 +- src/qt/forms/receivecoinsdialog.ui | 4 +- src/qt/forms/sendcoinsentry.ui | 4 +- src/qt/forms/signverifymessagedialog.ui | 8 +- src/qt/guiconstants.h | 8 +- src/qt/guiutil.cpp | 14 +-- src/qt/intro.cpp | 4 +- src/qt/locale/bitcoin_ar.ts | 6 +- src/qt/locale/bitcoin_ca.ts | 10 +- src/qt/locale/bitcoin_cs.ts | 62 ++++++------ src/qt/locale/bitcoin_cy.ts | 28 +++--- src/qt/locale/bitcoin_da.ts | 102 +++++++++---------- src/qt/locale/bitcoin_de.ts | 124 ++++++++++++------------ src/qt/locale/bitcoin_el.ts | 58 +++++------ src/qt/locale/bitcoin_en.ts | 72 +++++++------- src/qt/locale/bitcoin_en_GB.ts | 110 ++++++++++----------- src/qt/locale/bitcoin_eo.ts | 22 ++--- src/qt/locale/bitcoin_es.ts | 108 ++++++++++----------- src/qt/locale/bitcoin_es_CL.ts | 94 +++++++++--------- src/qt/locale/bitcoin_es_CO.ts | 90 ++++++++--------- src/qt/locale/bitcoin_es_DO.ts | 40 ++++---- src/qt/locale/bitcoin_es_MX.ts | 26 ++--- src/qt/locale/bitcoin_es_VE.ts | 40 ++++---- src/qt/locale/bitcoin_et.ts | 56 +++++------ src/qt/locale/bitcoin_eu.ts | 14 +-- src/qt/locale/bitcoin_fa.ts | 38 ++++---- src/qt/locale/bitcoin_fi.ts | 108 ++++++++++----------- src/qt/locale/bitcoin_fil.ts | 94 +++++++++--------- src/qt/locale/bitcoin_fr.ts | 104 ++++++++++---------- src/qt/locale/bitcoin_he.ts | 52 +++++----- src/qt/locale/bitcoin_hi.ts | 6 +- src/qt/locale/bitcoin_hr.ts | 104 ++++++++++---------- src/qt/locale/bitcoin_hu.ts | 92 +++++++++--------- src/qt/locale/bitcoin_id.ts | 102 +++++++++---------- src/qt/locale/bitcoin_is.ts | 34 +++---- src/qt/locale/bitcoin_it.ts | 102 +++++++++---------- src/qt/locale/bitcoin_ja.ts | 114 +++++++++++----------- src/qt/locale/bitcoin_ka.ts | 38 ++++---- src/qt/locale/bitcoin_kk.ts | 4 +- src/qt/locale/bitcoin_km.ts | 6 +- src/qt/locale/bitcoin_ko.ts | 52 +++++----- src/qt/locale/bitcoin_ku_IQ.ts | 2 +- src/qt/locale/bitcoin_ky.ts | 6 +- src/qt/locale/bitcoin_la.ts | 34 +++---- src/qt/locale/bitcoin_lt.ts | 96 +++++++++--------- src/qt/locale/bitcoin_lv.ts | 34 +++---- src/qt/locale/bitcoin_mk.ts | 6 +- src/qt/locale/bitcoin_ml.ts | 4 +- src/qt/locale/bitcoin_mn.ts | 4 +- src/qt/locale/bitcoin_mr_IN.ts | 4 +- src/qt/locale/bitcoin_ms.ts | 20 ++-- src/qt/locale/bitcoin_nb.ts | 96 +++++++++--------- src/qt/locale/bitcoin_ne.ts | 10 +- src/qt/locale/bitcoin_nl.ts | 106 ++++++++++---------- src/qt/locale/bitcoin_pam.ts | 26 ++--- src/qt/locale/bitcoin_pl.ts | 88 ++++++++--------- src/qt/locale/bitcoin_pt.ts | 96 +++++++++--------- src/qt/locale/bitcoin_pt_BR.ts | 94 +++++++++--------- src/qt/locale/bitcoin_ro.ts | 94 +++++++++--------- src/qt/locale/bitcoin_ru.ts | 56 +++++------ src/qt/locale/bitcoin_si.ts | 2 +- src/qt/locale/bitcoin_sk.ts | 96 +++++++++--------- src/qt/locale/bitcoin_sl.ts | 98 +++++++++---------- src/qt/locale/bitcoin_sn.ts | 10 +- src/qt/locale/bitcoin_sr.ts | 20 ++-- src/qt/locale/bitcoin_sr@latin.ts | 22 ++--- src/qt/locale/bitcoin_sv.ts | 106 ++++++++++---------- src/qt/locale/bitcoin_szl.ts | 72 +++++++------- src/qt/locale/bitcoin_ta.ts | 68 ++++++------- src/qt/locale/bitcoin_te.ts | 6 +- src/qt/locale/bitcoin_th.ts | 46 ++++----- src/qt/locale/bitcoin_tr.ts | 104 ++++++++++---------- src/qt/locale/bitcoin_uk.ts | 84 ++++++++-------- src/qt/locale/bitcoin_ur.ts | 2 +- src/qt/locale/bitcoin_uz@Cyrl.ts | 32 +++--- src/qt/locale/bitcoin_vi.ts | 100 +++++++++---------- src/qt/locale/bitcoin_yo.ts | 2 +- src/qt/locale/bitcoin_zh-Hans.ts | 4 +- src/qt/locale/bitcoin_zh_CN.ts | 52 +++++----- src/qt/locale/bitcoin_zh_HK.ts | 20 ++-- src/qt/locale/bitcoin_zh_TW.ts | 102 +++++++++---------- src/qt/paymentserver.cpp | 4 +- src/qt/res/bitcoin-qt-res.rc | 4 +- src/qt/sendcoinsdialog.cpp | 2 +- src/qt/test/test_main.cpp | 2 +- src/rpc/rawtransaction.cpp | 6 +- src/rpc/rawtransaction_util.cpp | 2 +- src/rpc/server.h | 2 +- src/script/script.h | 2 +- src/test/crypto_tests.cpp | 2 +- src/test/key_tests.cpp | 2 +- src/test/util_tests.cpp | 2 +- src/tinyformat.h | 2 +- src/util/system.cpp | 16 +-- src/util/validation.cpp | 2 +- src/validation.cpp | 2 +- src/wallet/rpcdump.cpp | 8 +- src/wallet/rpcwallet.cpp | 18 ++-- 115 files changed, 2109 insertions(+), 2109 deletions(-) diff --git a/src/bitcoin-cli-res.rc b/src/bitcoin-cli-res.rc index 58f8f1e8a2..27916a9ed8 100644 --- a/src/bitcoin-cli-res.rc +++ b/src/bitcoin-cli-res.rc @@ -16,7 +16,7 @@ BEGIN BEGIN BLOCK "040904E4" // U.S. English - multilingual (hex) BEGIN - VALUE "CompanyName", "Bitcoin" + VALUE "CompanyName", "Verium" VALUE "FileDescription", "bitcoin-cli (JSON-RPC client for " PACKAGE_NAME ")" VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", "bitcoin-cli" diff --git a/src/bitcoin-tx-res.rc b/src/bitcoin-tx-res.rc index 3e49b820bc..9966e85d56 100644 --- a/src/bitcoin-tx-res.rc +++ b/src/bitcoin-tx-res.rc @@ -16,8 +16,8 @@ BEGIN BEGIN BLOCK "040904E4" // U.S. English - multilingual (hex) BEGIN - VALUE "CompanyName", "Bitcoin" - VALUE "FileDescription", "bitcoin-tx (CLI Bitcoin transaction editor utility)" + VALUE "CompanyName", "Verium" + VALUE "FileDescription", "bitcoin-tx (CLI Verium transaction editor utility)" VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", "bitcoin-tx" VALUE "LegalCopyright", COPYRIGHT_STR diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp index 88219f0d0f..76e22b2dec 100644 --- a/src/bitcoin-tx.cpp +++ b/src/bitcoin-tx.cpp @@ -101,8 +101,8 @@ static int AppInitRawTx(int argc, char* argv[]) if (argc < 2 || HelpRequested(gArgs)) { // First part of help message is specific to this utility std::string strUsage = PACKAGE_NAME " bitcoin-tx utility version " + FormatFullVersion() + "\n\n" + - "Usage: bitcoin-tx [options] [commands] Update hex-encoded bitcoin transaction\n" + - "or: bitcoin-tx [options] -create [commands] Create hex-encoded bitcoin transaction\n" + + "Usage: bitcoin-tx [options] [commands] Update hex-encoded verium transaction\n" + + "or: bitcoin-tx [options] -create [commands] Create hex-encoded verium transaction\n" + "\n"; strUsage += gArgs.GetHelpMessage(); diff --git a/src/bitcoin-wallet-res.rc b/src/bitcoin-wallet-res.rc index e9fa2dbb40..c7e95b88a7 100644 --- a/src/bitcoin-wallet-res.rc +++ b/src/bitcoin-wallet-res.rc @@ -16,7 +16,7 @@ BEGIN BEGIN BLOCK "040904E4" // U.S. English - multilingual (hex) BEGIN - VALUE "CompanyName", "Bitcoin" + VALUE "CompanyName", "Verium" VALUE "FileDescription", "bitcoin-wallet (CLI tool for " PACKAGE_NAME " wallets)" VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", "bitcoin-wallet" diff --git a/src/bitcoind-res.rc b/src/bitcoind-res.rc index 3a64acd5d1..5a546d2510 100644 --- a/src/bitcoind-res.rc +++ b/src/bitcoind-res.rc @@ -16,8 +16,8 @@ BEGIN BEGIN BLOCK "040904E4" // U.S. English - multilingual (hex) BEGIN - VALUE "CompanyName", "Bitcoin" - VALUE "FileDescription", "bitcoind (Bitcoin node with a JSON-RPC server)" + VALUE "CompanyName", "Verium" + VALUE "FileDescription", "bitcoind (Verium node with a JSON-RPC server)" VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", "bitcoind" VALUE "LegalCopyright", COPYRIGHT_STR diff --git a/src/compat/assumptions.h b/src/compat/assumptions.h index 6e7b4d3ded..086e22428c 100644 --- a/src/compat/assumptions.h +++ b/src/compat/assumptions.h @@ -14,7 +14,7 @@ // Example(s): We use assert(...) extensively with the assumption of it never // being a noop at runtime. #if defined(NDEBUG) -# error "Bitcoin cannot be compiled without assertions." +# error "Verium cannot be compiled without assertions." #endif // Assumption: We assume a C++11 (ISO/IEC 14882:2011) compiler (minimum requirement). diff --git a/src/init.cpp b/src/init.cpp index ccb5962c48..7d86771127 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1254,9 +1254,9 @@ bool AppInitMain(InitInterfaces& interfaces) // Warn about relative -datadir path. if (gArgs.IsArgSet("-datadir") && !fs::path(gArgs.GetArg("-datadir", "")).is_absolute()) { LogPrintf("Warning: relative datadir option '%s' specified, which will be interpreted relative to the " /* Continued */ - "current working directory '%s'. This is fragile, because if bitcoin is started in the future " + "current working directory '%s'. This is fragile, because if verium is started in the future " "from a different location, it will be unable to locate the current data files. There could " - "also be data loss if bitcoin is started while in a temporary directory.\n", + "also be data loss if verium is started while in a temporary directory.\n", gArgs.GetArg("-datadir", ""), fs::current_path().string()); } diff --git a/src/key.cpp b/src/key.cpp index 3ba21753a2..a16fa8b298 100644 --- a/src/key.cpp +++ b/src/key.cpp @@ -234,7 +234,7 @@ bool CKey::VerifyPubKey(const CPubKey& pubkey) const { return false; } unsigned char rnd[8]; - std::string str = "Bitcoin key verification\n"; + std::string str = "Verium key verification\n"; GetRandBytes(rnd, sizeof(rnd)); uint256 hash; CHash256().Write((unsigned char*)str.data(), str.size()).Write(rnd, sizeof(rnd)).Finalize(hash.begin()); diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 3d0efa041d..8d6cc9973c 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -33,7 +33,7 @@ #include #if defined(NDEBUG) -# error "Bitcoin cannot be compiled without assertions." +# error "Verium cannot be compiled without assertions." #endif /** Expiration time for orphan transactions in seconds */ diff --git a/src/qt/README.md b/src/qt/README.md index 0eb18f7cd5..0dab2c876c 100644 --- a/src/qt/README.md +++ b/src/qt/README.md @@ -32,7 +32,7 @@ Tests. ### bitcoingui.(h/cpp) -Represents the main window of the Bitcoin UI. +Represents the main window of the Verium UI. ### \*model.(h/cpp) diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp index d8c39e8862..c1720be8fc 100644 --- a/src/qt/addressbookpage.cpp +++ b/src/qt/addressbookpage.cpp @@ -101,12 +101,12 @@ AddressBookPage::AddressBookPage(const PlatformStyle *platformStyle, Mode _mode, switch(tab) { case SendingTab: - ui->labelExplanation->setText(tr("These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.")); + ui->labelExplanation->setText(tr("These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins.")); ui->deleteAddress->setVisible(true); ui->newAddress->setVisible(true); break; case ReceivingTab: - ui->labelExplanation->setText(tr("These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.")); + ui->labelExplanation->setText(tr("These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.")); ui->deleteAddress->setVisible(false); ui->newAddress->setVisible(false); break; diff --git a/src/qt/addresstablemodel.cpp b/src/qt/addresstablemodel.cpp index 131cceccbe..6d2e5f71ad 100644 --- a/src/qt/addresstablemodel.cpp +++ b/src/qt/addresstablemodel.cpp @@ -333,7 +333,7 @@ QModelIndex AddressTableModel::index(int row, int column, const QModelIndex &par void AddressTableModel::updateEntry(const QString &address, const QString &label, bool isMine, const QString &purpose, int status) { - // Update address book model from Bitcoin core + // Update address book model from Verium core priv->updateEntry(address, label, isMine, purpose, status); } diff --git a/src/qt/addresstablemodel.h b/src/qt/addresstablemodel.h index 035f3e0571..2b9c14917e 100644 --- a/src/qt/addresstablemodel.h +++ b/src/qt/addresstablemodel.h @@ -30,7 +30,7 @@ class AddressTableModel : public QAbstractTableModel enum ColumnIndex { Label = 0, /**< User specified label */ - Address = 1 /**< Bitcoin address */ + Address = 1 /**< Verium address */ }; enum RoleIndex { diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 812199cda0..eb0b2843de 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -383,7 +383,7 @@ void BitcoinApplication::shutdownResult() void BitcoinApplication::handleRunawayException(const QString &message) { - QMessageBox::critical(nullptr, "Runaway exception", BitcoinGUI::tr("A fatal error occurred. Bitcoin can no longer continue safely and will quit.") + QString("\n\n") + message); + QMessageBox::critical(nullptr, "Runaway exception", BitcoinGUI::tr("A fatal error occurred. Verium can no longer continue safely and will quit.") + QString("\n\n") + message); ::exit(EXIT_FAILURE); } diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 784fdcb6e5..1bcd0ab1b6 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -314,9 +314,9 @@ void BitcoinGUI::createActions() changePassphraseAction = new QAction(tr("&Change Passphrase..."), this); changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption")); signMessageAction = new QAction(tr("Sign &message..."), this); - signMessageAction->setStatusTip(tr("Sign messages with your Bitcoin addresses to prove you own them")); + signMessageAction->setStatusTip(tr("Sign messages with your Verium addresses to prove you own them")); verifyMessageAction = new QAction(tr("&Verify message..."), this); - verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Bitcoin addresses")); + verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Verium addresses")); openRPCConsoleAction = new QAction(tr("&Debug window"), this); openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console")); @@ -346,7 +346,7 @@ void BitcoinGUI::createActions() showHelpMessageAction = new QAction(tr("&Command-line options"), this); showHelpMessageAction->setMenuRole(QAction::NoRole); - showHelpMessageAction->setStatusTip(tr("Show the %1 help message to get a list with possible Bitcoin command-line options").arg(PACKAGE_NAME)); + showHelpMessageAction->setStatusTip(tr("Show the %1 help message to get a list with possible Verium command-line options").arg(PACKAGE_NAME)); connect(quitAction, &QAction::triggered, qApp, QApplication::quit); connect(aboutAction, &QAction::triggered, this, &BitcoinGUI::aboutClicked); @@ -867,7 +867,7 @@ void BitcoinGUI::updateNetworkState() QString tooltip; if (m_node.getNetworkActive()) { - tooltip = tr("%n active connection(s) to Bitcoin network", "", count) + QString(".
") + tr("Click to disable network activity."); + tooltip = tr("%n active connection(s) to Verium network", "", count) + QString(".
") + tr("Click to disable network activity."); } else { tooltip = tr("Network activity disabled.") + QString("
") + tr("Click to enable network activity again."); icon = ":/icons/network_disabled"; diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp index b27f8a744f..1d195b7db9 100644 --- a/src/qt/bitcoinunits.cpp +++ b/src/qt/bitcoinunits.cpp @@ -62,9 +62,9 @@ QString BitcoinUnits::description(int unit) { switch(unit) { - case BTC: return QString("Bitcoins"); - case mBTC: return QString("Milli-Bitcoins (1 / 1" THIN_SP_UTF8 "000)"); - case uBTC: return QString("Micro-Bitcoins (bits) (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); + case BTC: return QString("Veriums"); + case mBTC: return QString("Milli-Veriums (1 / 1" THIN_SP_UTF8 "000)"); + case uBTC: return QString("Micro-Veriums (bits) (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); case SAT: return QString("Satoshi (sat) (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); default: return QString("???"); } diff --git a/src/qt/forms/optionsdialog.ui b/src/qt/forms/optionsdialog.ui index 240a7a7e92..af1442b04b 100644 --- a/src/qt/forms/optionsdialog.ui +++ b/src/qt/forms/optionsdialog.ui @@ -252,7 +252,7 @@ - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. Map port using &UPnP @@ -272,7 +272,7 @@ - Connect to the Bitcoin network through a SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -459,7 +459,7 @@ - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. Use separate SOCKS&5 proxy to reach peers via Tor hidden services: diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index 710801ee96..fe301cb09d 100644 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -73,7 +73,7 @@ - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. @@ -459,7 +459,7 @@ - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. diff --git a/src/qt/forms/receivecoinsdialog.ui b/src/qt/forms/receivecoinsdialog.ui index 0214356eaa..2fcfa2ffc9 100644 --- a/src/qt/forms/receivecoinsdialog.ui +++ b/src/qt/forms/receivecoinsdialog.ui @@ -47,7 +47,7 @@ - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. &Message: @@ -93,7 +93,7 @@ - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. diff --git a/src/qt/forms/sendcoinsentry.ui b/src/qt/forms/sendcoinsentry.ui index 3c699abc6a..95c669a744 100644 --- a/src/qt/forms/sendcoinsentry.ui +++ b/src/qt/forms/sendcoinsentry.ui @@ -57,7 +57,7 @@ - The Bitcoin address to send the payment to + The Verium address to send the payment to @@ -199,7 +199,7 @@ - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. Qt::PlainText diff --git a/src/qt/forms/signverifymessagedialog.ui b/src/qt/forms/signverifymessagedialog.ui index c9ddd757c1..c1efcc92e6 100644 --- a/src/qt/forms/signverifymessagedialog.ui +++ b/src/qt/forms/signverifymessagedialog.ui @@ -48,7 +48,7 @@ - The Bitcoin address to sign the message with + The Verium address to sign the message with @@ -152,7 +152,7 @@ - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Sign &Message @@ -258,7 +258,7 @@ - The Bitcoin address the message was signed with + The Verium address the message was signed with @@ -295,7 +295,7 @@ - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address Verify &Message diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h index dcdb247977..aceb06d86c 100644 --- a/src/qt/guiconstants.h +++ b/src/qt/guiconstants.h @@ -42,11 +42,11 @@ static const int TOOLTIP_WRAP_THRESHOLD = 80; /* Number of frames in spinner animation */ #define SPINNER_FRAMES 36 -#define QAPP_ORG_NAME "Bitcoin" +#define QAPP_ORG_NAME "Verium" #define QAPP_ORG_DOMAIN "bitcoin.org" -#define QAPP_APP_NAME_DEFAULT "Bitcoin-Qt" -#define QAPP_APP_NAME_TESTNET "Bitcoin-Qt-testnet" -#define QAPP_APP_NAME_REGTEST "Bitcoin-Qt-regtest" +#define QAPP_APP_NAME_DEFAULT "Verium-Qt" +#define QAPP_APP_NAME_TESTNET "Verium-Qt-testnet" +#define QAPP_APP_NAME_REGTEST "Verium-Qt-regtest" /* One gigabyte (GB) in bytes */ static constexpr uint64_t GB_BYTES{1000000000}; diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index c4e0321f28..e6c50d8a49 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -105,7 +105,7 @@ void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent) widget->setFont(fixedPitchFont()); // We don't want translators to use own addresses in translations // and this is the only place, where this address is supplied. - widget->setPlaceholderText(QObject::tr("Enter a Bitcoin address (e.g. %1)").arg( + widget->setPlaceholderText(QObject::tr("Enter a Verium address (e.g. %1)").arg( QString::fromStdString(DummyAddress(Params())))); widget->setValidator(new BitcoinAddressEntryValidator(parent)); widget->setCheckValidator(new BitcoinAddressCheckValidator(parent)); @@ -552,15 +552,15 @@ fs::path static StartupShortcutPath() { std::string chain = gArgs.GetChainName(); if (chain == CBaseChainParams::MAIN) - return GetSpecialFolderPath(CSIDL_STARTUP) / "Bitcoin.lnk"; + return GetSpecialFolderPath(CSIDL_STARTUP) / "Verium.lnk"; if (chain == CBaseChainParams::TESTNET) // Remove this special case when CBaseChainParams::TESTNET = "testnet4" - return GetSpecialFolderPath(CSIDL_STARTUP) / "Bitcoin (testnet).lnk"; - return GetSpecialFolderPath(CSIDL_STARTUP) / strprintf("Bitcoin (%s).lnk", chain); + return GetSpecialFolderPath(CSIDL_STARTUP) / "Verium (testnet).lnk"; + return GetSpecialFolderPath(CSIDL_STARTUP) / strprintf("Verium (%s).lnk", chain); } bool GetStartOnSystemStartup() { - // check for Bitcoin*.lnk + // check for Verium*.lnk return fs::exists(StartupShortcutPath()); } @@ -680,9 +680,9 @@ bool SetStartOnSystemStartup(bool fAutoStart) optionFile << "[Desktop Entry]\n"; optionFile << "Type=Application\n"; if (chain == CBaseChainParams::MAIN) - optionFile << "Name=Bitcoin\n"; + optionFile << "Name=Verium\n"; else - optionFile << strprintf("Name=Bitcoin (%s)\n", chain); + optionFile << strprintf("Name=Verium (%s)\n", chain); optionFile << "Exec=" << pszExePath << strprintf(" -min -chain=%s\n", chain); optionFile << "Terminal=false\n"; optionFile << "Hidden=false\n"; diff --git a/src/qt/intro.cpp b/src/qt/intro.cpp index 53c80639b9..a64624aa61 100644 --- a/src/qt/intro.cpp +++ b/src/qt/intro.cpp @@ -126,7 +126,7 @@ Intro::Intro(QWidget *parent, uint64_t blockchain_size, uint64_t chain_state_siz .arg(PACKAGE_NAME) .arg(m_blockchain_size) .arg(2009) - .arg(tr("Bitcoin")) + .arg(tr("Verium")) ); ui->lblExplanation2->setText(ui->lblExplanation2->text().arg(PACKAGE_NAME)); @@ -150,7 +150,7 @@ Intro::Intro(QWidget *parent, uint64_t blockchain_size, uint64_t chain_state_siz } requiredSpace += m_chain_state_size; ui->sizeWarningLabel->setText( - tr("%1 will download and store a copy of the Bitcoin block chain.").arg(PACKAGE_NAME) + " " + + tr("%1 will download and store a copy of the Verium block chain.").arg(PACKAGE_NAME) + " " + storageRequiresMsg.arg(requiredSpace) + " " + tr("The wallet will also be stored in this directory.") ); diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts index 13e2cf1f66..517c5fe401 100644 --- a/src/qt/locale/bitcoin_ar.ts +++ b/src/qt/locale/bitcoin_ar.ts @@ -66,11 +66,11 @@ العنوان الرقمي المُرسَل إليه
- These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. هذه هي عناوين البيتكوين لإرسال المدفوعات. دائما تحقق من المبلغ وعنوان المستلم قبل الإرسال. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. هذه هي عناوين البيتكوين الخاصة بك لإستلام المدفوعات. استخدم زر "إنشاء عنوان استلام جديد" في علامة التبويب "إستلام" لإنشاء عناوين جديدة. @@ -188,7 +188,7 @@ BanTableModel
- BitcoinGUI + VeriumGUI Proxy is <b>enabled</b>: %1 %1 اتصال نشط بشبكة البيتكوين diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index a0a5abc189..9082f41a5f 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -66,8 +66,8 @@ Adreces de recepció - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Aquestes són les vostres adreces de Bitcoin per enviar els pagaments. Sempre reviseu l'import i l'adreça del destinatari abans de transferir monedes. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Aquestes són les vostres adreces de Verium per enviar els pagaments. Sempre reviseu l'import i l'adreça del destinatari abans de transferir monedes. &Copy Address @@ -236,7 +236,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Signa el &missatge... @@ -580,8 +580,8 @@ OverviewPage - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - La informació mostrada pot no estar al dia. El vostra cartera se sincronitza automàticament amb la xarxa Bitcoin un cop s'ha establert connexió, però aquest proces encara no ha finalitzat. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + La informació mostrada pot no estar al dia. El vostra cartera se sincronitza automàticament amb la xarxa Verium un cop s'ha establert connexió, però aquest proces encara no ha finalitzat. diff --git a/src/qt/locale/bitcoin_cs.ts b/src/qt/locale/bitcoin_cs.ts index 97bfeb02f5..e87315c332 100644 --- a/src/qt/locale/bitcoin_cs.ts +++ b/src/qt/locale/bitcoin_cs.ts @@ -66,7 +66,7 @@ Přijímací adresy - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. Tohle jsou tvé bitcoinové adresy pro posílání plateb. Před odesláním mincí si vždy zkontroluj částku a cílovou adresu. @@ -220,7 +220,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Po&depiš zprávu... @@ -322,7 +322,7 @@ Proxy je <b>zapnutá</b>: %1 - Send coins to a Bitcoin address + Send coins to a Verium address Pošli mince na bitcoinovou adresu @@ -366,11 +366,11 @@ Zašifruj soukromé klíče ve své peněžence - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them Podepiš zprávy svými bitcoinovými adresami, čímž prokážeš, že jsi jejich vlastníkem - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses Ověř zprávy, aby ses ujistil, že byly podepsány danými bitcoinovými adresami @@ -410,7 +410,7 @@ Ar&gumenty příkazové řádky - %n active connection(s) to Bitcoin network + %n active connection(s) to Verium network %n aktivní spojení do bitcoinové sítě%n aktivní spojení do bitcoinové sítě%n aktivních spojení do bitcoinové sítě%n aktivních spojení do bitcoinové sítě @@ -478,8 +478,8 @@ Zavřít peněženku - Show the %1 help message to get a list with possible Bitcoin command-line options - Seznam argumentů Bitcoinu pro příkazovou řádku získáš v nápovědě %1 + Show the %1 help message to get a list with possible Verium command-line options + Seznam argumentů Veriumu pro příkazovou řádku získáš v nápovědě %1 default wallet @@ -586,8 +586,8 @@ Peněženka je <b>zašifrovaná</b> a momentálně <b>zamčená</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Stala se fatální chyba. Bitcoin nemůže bezpečně pokračovat v činnosti, a proto skončí. + A fatal error occurred. Verium can no longer continue safely and will quit. + Stala se fatální chyba. Verium nemůže bezpečně pokračovat v činnosti, a proto skončí. @@ -782,7 +782,7 @@ Uprav odesílací adresu - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. Zadaná adresa „%1“ není platná bitcoinová adresa. @@ -879,8 +879,8 @@ Použij tento adresář pro data: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -891,7 +891,7 @@ Bude proto potřebovat do tohoto adresáře uložit přibližně %1 GB dat. - %1 will download and store a copy of the Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. %1 bude stahovat kopii blockchainu. @@ -1119,7 +1119,7 @@ &Utrácet i ještě nepotvrzené drobné - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. Automaticky otevře potřebný port na routeru. Tohle funguje jen za předpokladu, že tvůj router podporuje UPnP a že je UPnP povolené. @@ -1135,7 +1135,7 @@ Přijí&mat příchozí spojení - Connect to the Bitcoin network through a SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. Připojí se do bitcoinové sítě přes SOCKS5 proxy. @@ -1171,7 +1171,7 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. Připojí se do bitcoinové sítě přes SOCKS5 proxy vyhrazenou pro skryté služby v Tor síti. @@ -1282,7 +1282,7 @@ Formulář - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. Zobrazené informace nemusí být aktuální. Tvá peněženka se automaticky sesynchronizuje s bitcoinovou sítí, jakmile se s ní spojí. Zatím ale ještě není synchronizace dokončena. @@ -1385,7 +1385,7 @@ Neplatná platební adresa %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. Nepodařilo se analyzovat URI! Důvodem může být neplatná bitcoinová adresa nebo poškozené parametry URI. @@ -1487,7 +1487,7 @@ Částka - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) Zadej bitcoinovou adresu (např. %1) @@ -1944,7 +1944,7 @@ &Zpráva: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. Volitelná zpráva, která se připojí k platebnímu požadavku a která se zobrazí, když se požadavek otevře. Poznámka: tahle zpráva se neposílá s platbou po bitcoinové síti. @@ -2357,7 +2357,7 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Potvrzování by podle odhadu mělo začít během %n bloku.Potvrzování by podle odhadu mělo začít během %n bloků.Potvrzování by podle odhadu mělo začít během %n bloků.Potvrzování by podle odhadu mělo začít během %n bloků. - Warning: Invalid Bitcoin address + Warning: Invalid Verium address Upozornění: Neplatná bitcoinová adresa @@ -2400,8 +2400,8 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Tohle je normální platba. - The Bitcoin address to send the payment to - Bitcoinová adresa příjemce + The Verium address to send the payment to + Veriumová adresa příjemce Alt+A @@ -2448,7 +2448,7 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Zadej označení této adresy; obojí se ti pak uloží do adresáře - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. Zpráva, která byla připojena k bitcoin: URI a která se ti pro přehled uloží k transakci. Poznámka: Tahle zpráva se neposílá s platbou po bitcoinové síti. @@ -2497,8 +2497,8 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Podepsáním zprávy/smlouvy svými adresami můžeš prokázat, že jsi na ně schopen přijmout bitcoiny. Buď opatrný a nepodepisuj nic vágního nebo náhodného; například při phishingových útocích můžeš být lákán, abys něco takového podepsal. Podepisuj pouze naprosto úplná a detailní prohlášení, se kterými souhlasíš. - The Bitcoin address to sign the message with - Bitcoinová adresa, kterou se zpráva podepíše + The Verium address to sign the message with + Veriumová adresa, kterou se zpráva podepíše Choose previously used address @@ -2529,7 +2529,7 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Zkopíruj tento podpis do schránky - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Podepiš zprávu, čímž prokážeš, že jsi vlastníkem této bitcoinové adresy @@ -2553,11 +2553,11 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa K ověření podpisu zprávy zadej adresu příjemce, zprávu (ověř si, že správně kopíruješ zalomení řádků, mezery, tabulátory apod.) a podpis. Dávej pozor na to, abys nezkopíroval do podpisu víc, než co je v samotné podepsané zprávě, abys nebyl napálen man-in-the-middle útokem. Poznamenejme však, že takto lze pouze prokázat, že podepisující je schopný na dané adrese přijmout platbu, ale není možnéprokázat, že odeslal jakoukoli transakci! - The Bitcoin address the message was signed with - Bitcoinová adresa, kterou je zpráva podepsána + The Verium address the message was signed with + Veriumová adresa, kterou je zpráva podepsána - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address Ověř zprávu, aby ses ujistil, že byla podepsána danou bitcoinovou adresou diff --git a/src/qt/locale/bitcoin_cy.ts b/src/qt/locale/bitcoin_cy.ts index 4f31ed3611..3c6e388459 100644 --- a/src/qt/locale/bitcoin_cy.ts +++ b/src/qt/locale/bitcoin_cy.ts @@ -66,8 +66,8 @@ Derbyn cyfeiriadau - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Rhain ydi eich cyfeiriadau Bitcoin ar gyfer gyrru taliadau. Gwnewch yn sicr o'r swm a'r cyfeiriad derbyn cyn gyrru arian. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Rhain ydi eich cyfeiriadau Verium ar gyfer gyrru taliadau. Gwnewch yn sicr o'r swm a'r cyfeiriad derbyn cyn gyrru arian. &Copy Address @@ -220,7 +220,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Arwyddo &neges... @@ -318,8 +318,8 @@ Ailfynegi y blociau ar ddisg... - Send coins to a Bitcoin address - Anfon arian i gyfeiriad Bitcoin + Send coins to a Verium address + Anfon arian i gyfeiriad Verium Backup wallet to another location @@ -358,12 +358,12 @@ Amgryptio'r allweddi preifat sy'n perthyn i'ch waled - Sign messages with your Bitcoin addresses to prove you own them - Arwyddo negeseuon gyda eich cyfeiriadau Bitcoin i brofi mae chi sy'n berchen arnynt + Sign messages with your Verium addresses to prove you own them + Arwyddo negeseuon gyda eich cyfeiriadau Verium i brofi mae chi sy'n berchen arnynt - Verify messages to ensure they were signed with specified Bitcoin addresses - Gwirio negeseuon i sicrhau eu bod wedi eu harwyddo gyda cyfeiriadau Bitcoin penodol + Verify messages to ensure they were signed with specified Verium addresses + Gwirio negeseuon i sicrhau eu bod wedi eu harwyddo gyda cyfeiriadau Verium penodol &File @@ -395,7 +395,7 @@ Open a bitcoin: URI or payment request - Agor Bitcoin: URI neu ofyn taliad + Agor Verium: URI neu ofyn taliad &Command-line options @@ -534,8 +534,8 @@ Mae'r waled <b>wedi'i amgryptio</b> ac <b>ar glo</b> ar hyn o bryd - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Mae gwall angheuol wedi digwydd. Ni all Bitcoin barhau'n ddiogel ac mae'n cau lawr. + A fatal error occurred. Verium can no longer continue safely and will quit. + Mae gwall angheuol wedi digwydd. Ni all Verium barhau'n ddiogel ac mae'n cau lawr. @@ -651,8 +651,8 @@ Croeso - Bitcoin - Bitcoin + Verium + Verium Error diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts index 48ad3cfa40..496d88f5b6 100644 --- a/src/qt/locale/bitcoin_da.ts +++ b/src/qt/locale/bitcoin_da.ts @@ -66,12 +66,12 @@ Modtagelsesadresser - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Disse er dine Bitcoin-adresser til afsendelse af betalinger. Tjek altid beløb og modtagelsesadresse, inden du sender bitcoins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Disse er dine Verium-adresser til afsendelse af betalinger. Tjek altid beløb og modtagelsesadresse, inden du sender bitcoins. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Disse er dine Bitcoin adresser til at modtage betalinger. Benyt 'Opret ny modtager adresse' knappen i modtag fanen for at oprette nye adresser. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Disse er dine Verium adresser til at modtage betalinger. Benyt 'Opret ny modtager adresse' knappen i modtag fanen for at oprette nye adresser. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Signér &besked… @@ -362,8 +362,8 @@ Proxy er <b>aktiveret</b>: %1 - Send coins to a Bitcoin address - Send bitcoins til en Bitcoin-adresse + Send coins to a Verium address + Send bitcoins til en Verium-adresse Backup wallet to another location @@ -406,12 +406,12 @@ Kryptér de private nøgler, der hører til din tegnebog - Sign messages with your Bitcoin addresses to prove you own them - Signér beskeder med dine Bitcoin-adresser for at bevise, at de tilhører dig + Sign messages with your Verium addresses to prove you own them + Signér beskeder med dine Verium-adresser for at bevise, at de tilhører dig - Verify messages to ensure they were signed with specified Bitcoin addresses - Verificér beskeder for at sikre, at de er signeret med de angivne Bitcoin-adresser + Verify messages to ensure they were signed with specified Verium addresses + Verificér beskeder for at sikre, at de er signeret med de angivne Verium-adresser &File @@ -450,8 +450,8 @@ Tilvalg for &kommandolinje - %n active connection(s) to Bitcoin network - %n aktiv forbindelse til Bitcoin-netværket%n aktive forbindelser til Bitcoin-netværket + %n active connection(s) to Verium network + %n aktiv forbindelse til Verium-netværket%n aktive forbindelser til Verium-netværket Indexing blocks on disk... @@ -518,8 +518,8 @@ Luk tegnebog - Show the %1 help message to get a list with possible Bitcoin command-line options - Vis %1 hjælpebesked for at få en liste over mulige tilvalg for Bitcoin kommandolinje + Show the %1 help message to get a list with possible Verium command-line options + Vis %1 hjælpebesked for at få en liste over mulige tilvalg for Verium kommandolinje default wallet @@ -630,8 +630,8 @@ Tegnebog er <b>krypteret</b> og i øjeblikket <b>låst</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Der opstod en fatal fejl. Bitcoin kan ikke længere fortsætte sikkert og vil afslutte. + A fatal error occurred. Verium can no longer continue safely and will quit. + Der opstod en fatal fejl. Verium kan ikke længere fortsætte sikkert og vil afslutte. @@ -874,8 +874,8 @@ Redigér afsendelsesadresse - The entered address "%1" is not a valid Bitcoin address. - Den indtastede adresse “%1” er ikke en gyldig Bitcoin-adresse. + The entered address "%1" is not a valid Verium address. + Den indtastede adresse “%1” er ikke en gyldig Verium-adresse. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -975,8 +975,8 @@ Brug tilpasset mappe for data: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ Omtrent %1 GB data vil blive gemt i denne mappe. - %1 will download and store a copy of the Bitcoin block chain. - %1 vil downloade og gemme en kopi af Bitcoin-blokkæden. + %1 will download and store a copy of the Verium block chain. + %1 vil downloade og gemme en kopi af Verium-blokkæden. The wallet will also be stored in this directory. @@ -1231,8 +1231,8 @@ &Brug ubekræftede byttepenge - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Åbn automatisk Bitcoin-klientens port på routeren. Dette virker kun, når din router understøtter UPnP, og UPnP er aktiveret. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Åbn automatisk Verium-klientens port på routeren. Dette virker kun, når din router understøtter UPnP, og UPnP er aktiveret. Map port using &UPnP @@ -1247,8 +1247,8 @@ Tillad &indkommende forbindelser - Connect to the Bitcoin network through a SOCKS5 proxy. - Forbind til Bitcoin-netværket gennem en SOCKS5-proxy. + Connect to the Verium network through a SOCKS5 proxy. + Forbind til Verium-netværket gennem en SOCKS5-proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1283,8 +1283,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Forbind til Bitcoin-netværket gennem en separat SOCKS5-proxy for Tors skjulte tjenester. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Forbind til Verium-netværket gennem en separat SOCKS5-proxy for Tors skjulte tjenester. &Window @@ -1394,8 +1394,8 @@ Formular - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Den viste information kan være forældet. Din tegnebog synkroniserer automatisk med Bitcoin-netværket, når en forbindelse etableres, men denne proces er ikke gennemført endnu. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Den viste information kan være forældet. Din tegnebog synkroniserer automatisk med Verium-netværket, når en forbindelse etableres, men denne proces er ikke gennemført endnu. Watch-only: @@ -1505,8 +1505,8 @@ Ugyldig betalingsadresse %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI kan ikke tolkes! Dette kan skyldes en ugyldig Bitcoin-adresse eller forkert udformede URL-parametre. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI kan ikke tolkes! Dette kan skyldes en ugyldig Verium-adresse eller forkert udformede URL-parametre. Payment request file handling @@ -1607,8 +1607,8 @@ Beløb - Enter a Bitcoin address (e.g. %1) - Indtast en Bitcoin-adresse (fx %1) + Enter a Verium address (e.g. %1) + Indtast en Verium-adresse (fx %1) %1 d @@ -2068,8 +2068,8 @@ &Besked: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - En valgfri besked, der føjes til betalingsanmodningen, og som vil vises, når anmodningen åbnes. Bemærk: Beskeden vil ikke sendes sammen med betalingen over Bitcoin-netværket. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + En valgfri besked, der føjes til betalingsanmodningen, og som vil vises, når anmodningen åbnes. Bemærk: Beskeden vil ikke sendes sammen med betalingen over Verium-netværket. An optional label to associate with the new receiving address. @@ -2497,8 +2497,8 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Bekræftelse estimeret til at begynde om %n blok.Bekræftelse estimeret til at begynde om %n blokke. - Warning: Invalid Bitcoin address - Advarsel: Ugyldig Bitcoin-adresse + Warning: Invalid Verium address + Advarsel: Ugyldig Verium-adresse Warning: Unknown change address @@ -2540,8 +2540,8 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Dette er en normal betaling. - The Bitcoin address to send the payment to - Bitcoin-adresse, som betalingen skal sendes til + The Verium address to send the payment to + Verium-adresse, som betalingen skal sendes til Alt+A @@ -2588,8 +2588,8 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Indtast et mærkat for denne adresse for at føje den til listen over brugte adresser - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - En besked, som blev føjet til “bitcon:”-URI'en, som vil gemmes med transaktionen til din reference. Bemærk: Denne besked vil ikke blive sendt over Bitcoin-netværket. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + En besked, som blev føjet til “bitcon:”-URI'en, som vil gemmes med transaktionen til din reference. Bemærk: Denne besked vil ikke blive sendt over Verium-netværket. Pay To: @@ -2637,8 +2637,8 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Du kan signere beskeder/aftaler med dine adresser for at bevise, at du kan modtage bitcoin, der bliver sendt til adresserne. Vær forsigtig med ikke at signere noget vagt eller tilfældigt, da eventuelle phishing-angreb kan snyde dig til at overlade din identitet til dem. Signér kun fuldt ud detaljerede udsagn, som du er enig i. - The Bitcoin address to sign the message with - Bitcoin-adresse, som beskeden skal signeres med + The Verium address to sign the message with + Verium-adresse, som beskeden skal signeres med Choose previously used address @@ -2669,8 +2669,8 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Kopiér den nuværende signatur til systemets udklipsholder - Sign the message to prove you own this Bitcoin address - Signér denne besked for at bevise, at Bitcoin-adressen tilhører dig + Sign the message to prove you own this Verium address + Signér denne besked for at bevise, at Verium-adressen tilhører dig Sign &Message @@ -2693,12 +2693,12 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Indtast modtagerens adresse, besked (vær sikker på at kopiere linjeskift, mellemrum, tabuleringer, etc. præcist) og signatur herunder for at verificere beskeden. Vær forsigtig med ikke at læse noget ud fra signaturen, som ikke står i selve beskeden, for at undgå at blive snydt af et eventuelt man-in-the-middle-angreb. Bemærk, at dette kun beviser, at den signerende person kan modtage med adressen; det kan ikke bevise hvem der har sendt en given transaktion! - The Bitcoin address the message was signed with - Bitcoin-adressen, som beskeden blev signeret med + The Verium address the message was signed with + Verium-adressen, som beskeden blev signeret med - Verify the message to ensure it was signed with the specified Bitcoin address - Verificér beskeden for at sikre, at den er signeret med den angivne Bitcoin-adresse + Verify the message to ensure it was signed with the specified Verium address + Verificér beskeden for at sikre, at den er signeret med den angivne Verium-adresse Verify &Message diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index 5ebb7254ec..5178b2df55 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -47,11 +47,11 @@ Choose the address to send coins to - Wählen Sie die Adresse aus, an die Sie Bitcoins senden möchten + Wählen Sie die Adresse aus, an die Sie Veriums senden möchten Choose the address to receive coins with - Wählen Sie die Adresse aus, mit der Sie Bitcoins empfangen wollen + Wählen Sie die Adresse aus, mit der Sie Veriums empfangen wollen C&hoose @@ -66,12 +66,12 @@ Empfangsadressen - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Dies sind Ihre Bitcoin-Adressen zum Tätigen von Überweisungen. Bitte prüfen Sie den Betrag und die Adresse des Empfängers, bevor Sie Bitcoins überweisen. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Dies sind Ihre Verium-Adressen zum Tätigen von Überweisungen. Bitte prüfen Sie den Betrag und die Adresse des Empfängers, bevor Sie Veriums überweisen. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Dies sind Ihre Bitcoin-Adressen zum Empfangen von Zahlungen. Benutze den 'Neue Empfangsadresse erstellen' Button im Empfangen-Tab, um eine neue Addresse zu erstellen. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Dies sind Ihre Verium-Adressen zum Empfangen von Zahlungen. Benutze den 'Neue Empfangsadresse erstellen' Button im Empfangen-Tab, um eine neue Addresse zu erstellen. &Copy Address @@ -189,7 +189,7 @@ Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Beachten Sie, dass das Verschlüsseln Ihrer Wallet nicht komplett vor Diebstahl Ihrer Bitcoins durch Malware schützt, die Ihren Computer infiziert hat. + Beachten Sie, dass das Verschlüsseln Ihrer Wallet nicht komplett vor Diebstahl Ihrer Veriums durch Malware schützt, die Ihren Computer infiziert hat. Wallet to be encrypted @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Nachricht s&ignieren... @@ -362,8 +362,8 @@ Proxy ist <b>aktiviert</b>: %1 - Send coins to a Bitcoin address - Bitcoins an eine Bitcoin-Adresse überweisen + Send coins to a Verium address + Veriums an eine Verium-Adresse überweisen Backup wallet to another location @@ -406,12 +406,12 @@ Verschlüsselt die zu Ihrer Wallet gehörenden privaten Schlüssel - Sign messages with your Bitcoin addresses to prove you own them - Nachrichten signieren, um den Besitz Ihrer Bitcoin-Adressen zu beweisen + Sign messages with your Verium addresses to prove you own them + Nachrichten signieren, um den Besitz Ihrer Verium-Adressen zu beweisen - Verify messages to ensure they were signed with specified Bitcoin addresses - Nachrichten verifizieren, um sicherzustellen, dass diese mit den angegebenen Bitcoin-Adressen signiert wurden + Verify messages to ensure they were signed with specified Verium addresses + Nachrichten verifizieren, um sicherzustellen, dass diese mit den angegebenen Verium-Adressen signiert wurden &File @@ -450,8 +450,8 @@ &Kommandozeilenoptionen - %n active connection(s) to Bitcoin network - %n aktive Verbindung zum Bitcoin-Netzwerk%n aktive Verbindungen zum Bitcoin-Netzwerk + %n active connection(s) to Verium network + %n aktive Verbindung zum Verium-Netzwerk%n aktive Verbindungen zum Verium-Netzwerk Indexing blocks on disk... @@ -518,7 +518,7 @@ Wallet schließen - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options Zeige den "%1"-Hilfetext, um eine Liste mit möglichen Kommandozeilenoptionen zu erhalten @@ -630,8 +630,8 @@ Wallet ist <b>verschlüsselt</b> und aktuell <b>gesperrt</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Ein schwerer Fehler ist aufgetreten. Bitcoin kann nicht stabil weiter ausgeführt werden und wird beendet. + A fatal error occurred. Verium can no longer continue safely and will quit. + Ein schwerer Fehler ist aufgetreten. Verium kann nicht stabil weiter ausgeführt werden und wird beendet. @@ -874,8 +874,8 @@ Zahlungsadresse bearbeiten - The entered address "%1" is not a valid Bitcoin address. - Die eingegebene Adresse "%1" ist keine gültige Bitcoin-Adresse. + The entered address "%1" is not a valid Verium address. + Die eingegebene Adresse "%1" ist keine gültige Verium-Adresse. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -975,8 +975,8 @@ Ein benutzerdefiniertes Datenverzeichnis verwenden: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ Etwa %1 GB Daten werden in diesem Verzeichnis gespeichert. - %1 will download and store a copy of the Bitcoin block chain. - %1 wird eine Kopie der Bitcoin-Blockchain herunterladen und speichern. + %1 will download and store a copy of the Verium block chain. + %1 wird eine Kopie der Verium-Blockchain herunterladen und speichern. The wallet will also be stored in this directory. @@ -1027,11 +1027,11 @@ Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Neueste Transaktionen werden eventuell noch nicht angezeigt, daher könnte Ihr Kontostand veraltet sein. Er wird korrigiert, sobald Ihr Wallet die Synchronisation mit dem Bitcoin-Netzwerk erfolgreich abgeschlossen hat. Details dazu finden sich weiter unten. + Neueste Transaktionen werden eventuell noch nicht angezeigt, daher könnte Ihr Kontostand veraltet sein. Er wird korrigiert, sobald Ihr Wallet die Synchronisation mit dem Verium-Netzwerk erfolgreich abgeschlossen hat. Details dazu finden sich weiter unten. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Versuche, Bitcoins aus noch nicht angezeigten Transaktionen auszugeben, werden vom Netzwerk nicht akzeptiert. + Versuche, Veriums aus noch nicht angezeigten Transaktionen auszugeben, werden vom Netzwerk nicht akzeptiert. Number of blocks left @@ -1231,8 +1231,8 @@ &Unbestätigtes Wechselgeld darf ausgegeben werden - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Automatisch den Bitcoin-Clientport auf dem Router öffnen. Dies funktioniert nur, wenn Ihr Router UPnP unterstützt und dies aktiviert ist. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Automatisch den Verium-Clientport auf dem Router öffnen. Dies funktioniert nur, wenn Ihr Router UPnP unterstützt und dies aktiviert ist. Map port using &UPnP @@ -1247,8 +1247,8 @@ Erlaube eingehende Verbindungen - Connect to the Bitcoin network through a SOCKS5 proxy. - Über einen SOCKS5-Proxy mit dem Bitcoin-Netzwerk verbinden. + Connect to the Verium network through a SOCKS5 proxy. + Über einen SOCKS5-Proxy mit dem Verium-Netzwerk verbinden. &Connect through SOCKS5 proxy (default proxy): @@ -1283,8 +1283,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Über einen separaten SOCKS5 Proxy für Tor Hidden Services mit dem Bitcoin-Netzwerk verbinden. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Über einen separaten SOCKS5 Proxy für Tor Hidden Services mit dem Verium-Netzwerk verbinden. &Window @@ -1320,7 +1320,7 @@ Choose the default subdivision unit to show in the interface and when sending coins. - Wählen Sie die standardmäßige Untereinheit, die in der Benutzeroberfläche und beim Überweisen von Bitcoins angezeigt werden soll. + Wählen Sie die standardmäßige Untereinheit, die in der Benutzeroberfläche und beim Überweisen von Veriums angezeigt werden soll. Whether to show coin control features or not. @@ -1394,8 +1394,8 @@ Formular - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Die angezeigten Informationen sind möglicherweise nicht mehr aktuell. Ihre Wallet wird automatisch synchronisiert, nachdem eine Verbindung zum Bitcoin-Netzwerk hergestellt wurde. Dieser Prozess ist jedoch derzeit noch nicht abgeschlossen. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Die angezeigten Informationen sind möglicherweise nicht mehr aktuell. Ihre Wallet wird automatisch synchronisiert, nachdem eine Verbindung zum Verium-Netzwerk hergestellt wurde. Dieser Prozess ist jedoch derzeit noch nicht abgeschlossen. Watch-only: @@ -1470,7 +1470,7 @@ Cannot start bitcoin: click-to-pay handler - Kann Bitcoin nicht starten: Klicken-zum-Bezahlen-Handler + Kann Verium nicht starten: Klicken-zum-Bezahlen-Handler URI handling @@ -1505,8 +1505,8 @@ Ungültige Zahlungsadresse %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI kann nicht analysiert werden! Dies kann durch eine ungültige Bitcoin-Adresse oder fehlerhafte URI-Parameter verursacht werden. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI kann nicht analysiert werden! Dies kann durch eine ungültige Verium-Adresse oder fehlerhafte URI-Parameter verursacht werden. Payment request file handling @@ -1607,8 +1607,8 @@ Betrag - Enter a Bitcoin address (e.g. %1) - Bitcoin-Adresse eingeben (z.B. %1) + Enter a Verium address (e.g. %1) + Verium-Adresse eingeben (z.B. %1) %1 d @@ -2068,8 +2068,8 @@ &Nachricht: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Eine optionale Nachricht, die an die Zahlungsanforderung angehängt wird. Sie wird angezeigt, wenn die Anforderung geöffnet wird. Hinweis: Diese Nachricht wird nicht mit der Zahlung über das Bitcoin-Netzwerk gesendet. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Eine optionale Nachricht, die an die Zahlungsanforderung angehängt wird. Sie wird angezeigt, wenn die Anforderung geöffnet wird. Hinweis: Diese Nachricht wird nicht mit der Zahlung über das Verium-Netzwerk gesendet. An optional label to associate with the new receiving address. @@ -2226,7 +2226,7 @@ SendCoinsDialog Send Coins - Bitcoins überweisen + Veriums überweisen Coin Control Features @@ -2342,7 +2342,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Nur die minimale Gebühr zu bezahlen ist so lange in Ordnung, wie weniger Transaktionsvolumen als Platz in den Blöcken vorhanden ist. Aber Vorsicht, diese Option kann dazu führen, dass Transaktionen nicht bestätigt werden, wenn mehr Bedarf an Bitcoin-Transaktionen besteht als das Netzwerk verarbeiten kann. + Nur die minimale Gebühr zu bezahlen ist so lange in Ordnung, wie weniger Transaktionsvolumen als Platz in den Blöcken vorhanden ist. Aber Vorsicht, diese Option kann dazu führen, dass Transaktionen nicht bestätigt werden, wenn mehr Bedarf an Verium-Transaktionen besteht als das Netzwerk verarbeiten kann. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2497,8 +2497,8 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Voraussichtlicher Beginn der Bestätigung innerhalb von %n BlockVoraussichtlicher Beginn der Bestätigung innerhalb von %n Blöcken. - Warning: Invalid Bitcoin address - Warnung: Ungültige Bitcoin-Adresse + Warning: Invalid Verium address + Warnung: Ungültige Verium-Adresse Warning: Unknown change address @@ -2540,7 +2540,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Dies ist eine normale Überweisung. - The Bitcoin address to send the payment to + The Verium address to send the payment to Die Zahlungsadresse der Überweisung @@ -2561,7 +2561,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Die Gebühr wird vom zu überweisenden Betrag abgezogen. Der Empfänger wird also weniger Bitcoins erhalten, als Sie im Betrags-Feld eingegeben haben. Falls mehrere Empfänger ausgewählt wurden, wird die Gebühr gleichmäßig verteilt. + Die Gebühr wird vom zu überweisenden Betrag abgezogen. Der Empfänger wird also weniger Veriums erhalten, als Sie im Betrags-Feld eingegeben haben. Falls mehrere Empfänger ausgewählt wurden, wird die Gebühr gleichmäßig verteilt. S&ubtract fee from amount @@ -2588,8 +2588,8 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Adressbezeichnung eingeben, die dann zusammen mit der Adresse der Liste bereits verwendeter Adressen hinzugefügt wird. - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Eine an die "bitcoin:"-URI angefügte Nachricht, die zusammen mit der Transaktion gespeichert wird. Hinweis: Diese Nachricht wird nicht über das Bitcoin-Netzwerk gesendet. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Eine an die "bitcoin:"-URI angefügte Nachricht, die zusammen mit der Transaktion gespeichert wird. Hinweis: Diese Nachricht wird nicht über das Verium-Netzwerk gesendet. Pay To: @@ -2634,11 +2634,11 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Sie können Nachrichten/Vereinbarungen mit Hilfe Ihrer Adressen signieren, um zu beweisen, dass Sie Bitcoins empfangen können, die an diese Adressen überwiesen werden. Seien Sie vorsichtig und signieren Sie nichts Vages oder Willkürliches, um Ihre Indentität vor Phishingangriffen zu schützen. Signieren Sie nur vollständig-detaillierte Aussagen, mit denen Sie auch einverstanden sind. + Sie können Nachrichten/Vereinbarungen mit Hilfe Ihrer Adressen signieren, um zu beweisen, dass Sie Veriums empfangen können, die an diese Adressen überwiesen werden. Seien Sie vorsichtig und signieren Sie nichts Vages oder Willkürliches, um Ihre Indentität vor Phishingangriffen zu schützen. Signieren Sie nur vollständig-detaillierte Aussagen, mit denen Sie auch einverstanden sind. - The Bitcoin address to sign the message with - Die Bitcoin-Adresse mit der die Nachricht signiert wird + The Verium address to sign the message with + Die Verium-Adresse mit der die Nachricht signiert wird Choose previously used address @@ -2669,8 +2669,8 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Aktuelle Signatur in die Zwischenablage kopieren - Sign the message to prove you own this Bitcoin address - Die Nachricht signieren, um den Besitz dieser Bitcoin-Adresse zu beweisen + Sign the message to prove you own this Verium address + Die Nachricht signieren, um den Besitz dieser Verium-Adresse zu beweisen Sign &Message @@ -2693,12 +2693,12 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Geben Sie die Zahlungsadresse des Empfängers, Nachricht (achten Sie darauf Zeilenumbrüche, Leerzeichen, Tabulatoren usw. exakt zu kopieren) und Signatur unten ein, um die Nachricht zu verifizieren. Vorsicht, interpretieren Sie nicht mehr in die Signatur hinein, als in der signierten Nachricht selber enthalten ist, um nicht von einem Man-in-the-middle-Angriff hinters Licht geführt zu werden. Beachten Sie dass dies nur beweist, dass die signierende Partei über diese Adresse Überweisungen empfangen kann. - The Bitcoin address the message was signed with - Die Bitcoin-Adresse mit der die Nachricht signiert wurde + The Verium address the message was signed with + Die Verium-Adresse mit der die Nachricht signiert wurde - Verify the message to ensure it was signed with the specified Bitcoin address - Die Nachricht verifizieren, um sicherzustellen, dass diese mit der angegebenen Bitcoin-Adresse signiert wurde + Verify the message to ensure it was signed with the specified Verium address + Die Nachricht verifizieren, um sicherzustellen, dass diese mit der angegebenen Verium-Adresse signiert wurde Verify &Message @@ -2912,7 +2912,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Erzeugte Bitcoins müssen %1 Blöcke lang reifen, bevor sie ausgegeben werden können. Als Sie diesen Block erzeugten, wurde er an das Netzwerk übertragen, um ihn der Blockchain hinzuzufügen. Falls dies fehlschlägt wird der Status in "nicht angenommen" geändert und Sie werden keine Bitcoins gutgeschrieben bekommen. Das kann gelegentlich passieren, wenn ein anderer Knoten einen Block fast zeitgleich erzeugt. + Erzeugte Veriums müssen %1 Blöcke lang reifen, bevor sie ausgegeben werden können. Als Sie diesen Block erzeugten, wurde er an das Netzwerk übertragen, um ihn der Blockchain hinzuzufügen. Falls dies fehlschlägt wird der Status in "nicht angenommen" geändert und Sie werden keine Veriums gutgeschrieben bekommen. Das kann gelegentlich passieren, wenn ein anderer Knoten einen Block fast zeitgleich erzeugt. Debug information @@ -3249,7 +3249,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio WalletModel Send Coins - Bitcoins überweisen + Veriums überweisen Fee bump error diff --git a/src/qt/locale/bitcoin_el.ts b/src/qt/locale/bitcoin_el.ts index 8da642adaa..ba3143cc5b 100644 --- a/src/qt/locale/bitcoin_el.ts +++ b/src/qt/locale/bitcoin_el.ts @@ -66,8 +66,8 @@ Διευθύνσεις λήψης - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Αυτές είναι οι Bitcoin διευθύνσεις σας για να στέλνετε πληρωμές. Να ελέγχετε πάντα το ποσό, καθώς και τη διεύθυνση παραλήπτη πριν στείλετε νομίσματα. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Αυτές είναι οι Verium διευθύνσεις σας για να στέλνετε πληρωμές. Να ελέγχετε πάντα το ποσό, καθώς και τη διεύθυνση παραλήπτη πριν στείλετε νομίσματα. &Copy Address @@ -220,7 +220,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Υπογραφή &μηνύματος... @@ -318,7 +318,7 @@ Φόρτωση ευρετηρίου μπλοκ στον σκληρό δίσκο... - Send coins to a Bitcoin address + Send coins to a Verium address Στείλε νομίσματα σε μια διεύθυνση bitcoin @@ -362,12 +362,12 @@ Κρυπτογραφήστε τα ιδιωτικά κλειδιά που ανήκουν στο πορτοφόλι σας - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them Υπογράψτε ένα μήνυμα για να βεβαιώσετε πως είστε ο κάτοχος αυτής της διεύθυνσης - Verify messages to ensure they were signed with specified Bitcoin addresses - Υπογράψτε ένα μήνυμα για ν' αποδείξετε πως ανήκει μια συγκεκριμένη διεύθυνση Bitcoin + Verify messages to ensure they were signed with specified Verium addresses + Υπογράψτε ένα μήνυμα για ν' αποδείξετε πως ανήκει μια συγκεκριμένη διεύθυνση Verium &File @@ -662,8 +662,8 @@ Επεξεργασία διεύθυνσης αποστολής - The entered address "%1" is not a valid Bitcoin address. - Η διεύθυνση "%1" δεν είναι έγκυρη Bitcoin διεύθυνση. + The entered address "%1" is not a valid Verium address. + Η διεύθυνση "%1" δεν είναι έγκυρη Verium διεύθυνση. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -743,8 +743,8 @@ Προσαρμογή του φακέλου δεδομένων: - Bitcoin - Bitcoin + Verium + Verium Error: Specified data directory "%1" cannot be created. @@ -883,16 +883,16 @@ &Ξόδεμα μη επικυρωμένων ρέστων - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Αυτόματο άνοιγμα των θυρών Bitcoin στον δρομολογητή. Λειτουργεί μόνο αν ο δρομολογητής σας υποστηρίζει τη λειτουργία UPnP. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Αυτόματο άνοιγμα των θυρών Verium στον δρομολογητή. Λειτουργεί μόνο αν ο δρομολογητής σας υποστηρίζει τη λειτουργία UPnP. Map port using &UPnP Απόδοση θυρών με χρήστη &UPnP - Connect to the Bitcoin network through a SOCKS5 proxy. - Σύνδεση στο δίκτυο Bitcoin μέσω διαμεσολαβητή SOCKS5 (π.χ. για σύνδεση μέσω Tor) + Connect to the Verium network through a SOCKS5 proxy. + Σύνδεση στο δίκτυο Verium μέσω διαμεσολαβητή SOCKS5 (π.χ. για σύνδεση μέσω Tor) &Connect through SOCKS5 proxy (default proxy): @@ -1002,8 +1002,8 @@ Φόρμα - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Οι πληροφορίες που εμφανίζονται μπορεί να είναι ξεπερασμένες. Το πορτοφόλι σας συγχρονίζεται αυτόματα με το δίκτυο Bitcoin μετά από μια σύνδεση, αλλά αυτή η διαδικασία δεν έχει ακόμη ολοκληρωθεί. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Οι πληροφορίες που εμφανίζονται μπορεί να είναι ξεπερασμένες. Το πορτοφόλι σας συγχρονίζεται αυτόματα με το δίκτυο Verium μετά από μια σύνδεση, αλλά αυτή η διαδικασία δεν έχει ακόμη ολοκληρωθεί. Watch-only: @@ -1115,8 +1115,8 @@ Ποσό - Enter a Bitcoin address (e.g. %1) - Εισάγετε μια διεύθυνση Bitcoin (π.χ. %1) + Enter a Verium address (e.g. %1) + Εισάγετε μια διεύθυνση Verium (π.χ. %1) %1 d @@ -1636,8 +1636,8 @@ Αυτή είναι μια απλή πληρωμή. - The Bitcoin address to send the payment to - Η διεύθυνση Bitcoin που θα σταλεί η πληρωμή + The Verium address to send the payment to + Η διεύθυνση Verium που θα σταλεί η πληρωμή Alt+A @@ -1697,8 +1697,8 @@ &Υπογραφή Μηνύματος - The Bitcoin address to sign the message with - Διεύθυνση Bitcoin που θα σταλεί το μήνυμα + The Verium address to sign the message with + Διεύθυνση Verium που θα σταλεί το μήνυμα Choose previously used address @@ -1729,8 +1729,8 @@ Αντιγραφή της επιλεγμένης υπογραφής στο πρόχειρο του συστήματος - Sign the message to prove you own this Bitcoin address - Υπογράψτε το μήνυμα για να αποδείξετε πως σας ανήκει η συγκεκριμένη διεύθυνση Bitcoin + Sign the message to prove you own this Verium address + Υπογράψτε το μήνυμα για να αποδείξετε πως σας ανήκει η συγκεκριμένη διεύθυνση Verium Sign &Message @@ -1749,12 +1749,12 @@ &Επιβεβαίωση Mηνύματος - The Bitcoin address the message was signed with - Διεύθυνση Bitcoin με την οποία έχει υπογραφεί το μήνυμα + The Verium address the message was signed with + Διεύθυνση Verium με την οποία έχει υπογραφεί το μήνυμα - Verify the message to ensure it was signed with the specified Bitcoin address - Επαληθεύστε το μήνυμα για να αποδείξετε πως υπογράφθηκε από τη συγκεκριμένη διεύθυνση Bitcoin + Verify the message to ensure it was signed with the specified Verium address + Επαληθεύστε το μήνυμα για να αποδείξετε πως υπογράφθηκε από τη συγκεκριμένη διεύθυνση Verium Verify &Message diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 207a1e9208..06519edf04 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -85,12 +85,12 @@ - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. @@ -323,7 +323,7 @@ - BitcoinGUI + VeriumGUI Sign &message... @@ -461,8 +461,8 @@ - Send coins to a Bitcoin address - Send coins to a Bitcoin address + Send coins to a Verium address + Send coins to a Verium address @@ -516,13 +516,13 @@ - Sign messages with your Bitcoin addresses to prove you own them - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them + Sign messages with your Verium addresses to prove you own them - Verify messages to ensure they were signed with specified Bitcoin addresses - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses + Verify messages to ensure they were signed with specified Verium addresses @@ -571,10 +571,10 @@ - %n active connection(s) to Bitcoin network + %n active connection(s) to Verium network - %n active connection to Bitcoin network - %n active connections to Bitcoin network + %n active connection to Verium network + %n active connections to Verium network @@ -662,7 +662,7 @@ - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options @@ -793,7 +793,7 @@ - A fatal error occurred. Bitcoin can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. @@ -1097,7 +1097,7 @@ - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. @@ -1222,8 +1222,8 @@ - Bitcoin - Bitcoin + Verium + Verium @@ -1242,7 +1242,7 @@ - %1 will download and store a copy of the Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. @@ -1555,8 +1555,8 @@ - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. @@ -1575,7 +1575,7 @@ - Connect to the Bitcoin network through a SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. @@ -1623,7 +1623,7 @@ - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. @@ -1763,8 +1763,8 @@ - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. @@ -1914,7 +1914,7 @@ - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. @@ -2047,7 +2047,7 @@ - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) @@ -2681,7 +2681,7 @@ - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. @@ -3220,7 +3220,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - Warning: Invalid Bitcoin address + Warning: Invalid Verium address @@ -3275,7 +3275,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - The Bitcoin address to send the payment to + The Verium address to send the payment to @@ -3337,7 +3337,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. @@ -3399,7 +3399,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - The Bitcoin address to sign the message with + The Verium address to sign the message with @@ -3441,8 +3441,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - Sign the message to prove you own this Bitcoin address - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address + Sign the message to prove you own this Verium address @@ -3472,13 +3472,13 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - The Bitcoin address the message was signed with + The Verium address the message was signed with - Verify the message to ensure it was signed with the specified Bitcoin address - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address + Verify the message to ensure it was signed with the specified Verium address diff --git a/src/qt/locale/bitcoin_en_GB.ts b/src/qt/locale/bitcoin_en_GB.ts index 3a43ef89b1..43a55cc508 100644 --- a/src/qt/locale/bitcoin_en_GB.ts +++ b/src/qt/locale/bitcoin_en_GB.ts @@ -66,12 +66,12 @@ Receiving addresses - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. &Copy Address @@ -189,7 +189,7 @@ Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Remember that encrypting your wallet cannot fully protect your Bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your Veriums from being stolen by malware infecting your computer. Wallet to be encrypted @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Sign &message ... @@ -362,8 +362,8 @@ Proxy is <b>enabled</b>: %1 - Send coins to a Bitcoin address - Send coins to a Bitcoin address + Send coins to a Verium address + Send coins to a Verium address Backup wallet to another location @@ -406,12 +406,12 @@ Encrypt the private keys that belong to your wallet - Sign messages with your Bitcoin addresses to prove you own them - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them + Sign messages with your Verium addresses to prove you own them - Verify messages to ensure they were signed with specified Bitcoin addresses - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses + Verify messages to ensure they were signed with specified Verium addresses &File @@ -450,8 +450,8 @@ &Command-line options - %n active connection(s) to Bitcoin network - %n active connection to Bitcoin network%n active connections to Bitcoin network + %n active connection(s) to Verium network + %n active connection to Verium network%n active connections to Verium network Indexing blocks on disk... @@ -518,8 +518,8 @@ Close wallet - Show the %1 help message to get a list with possible Bitcoin command-line options - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options + Show the %1 help message to get a list with possible Verium command-line options default wallet @@ -630,8 +630,8 @@ Wallet is <b>encrypted</b> and currently <b>locked</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - A fatal error occurred. Bitcoin can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. @@ -874,8 +874,8 @@ Edit sending address - The entered address "%1" is not a valid Bitcoin address. - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. + The entered address "%1" is not a valid Verium address. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -975,8 +975,8 @@ Use a custom data directory: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ Approximately %1 GB of data will be stored in this directory. - %1 will download and store a copy of the Bitcoin block chain. - %1 will download and store a copy of the Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. + %1 will download and store a copy of the Verium block chain. The wallet will also be stored in this directory. @@ -1027,11 +1027,11 @@ Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronising with the Bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronising with the Verium network, as detailed below. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Attempting to spend Bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend Veriums that are affected by not-yet-displayed transactions will not be accepted by the network. Number of blocks left @@ -1231,8 +1231,8 @@ &Spend unconfirmed change - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. Map port using &UPnP @@ -1247,8 +1247,8 @@ Allow incomin&g connections - Connect to the Bitcoin network through a SOCKS5 proxy. - Connect to the Bitcoin network through a SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1283,8 +1283,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. &Window @@ -1394,8 +1394,8 @@ Form - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - The displayed information may be out of date. Your Wallet automatically synchronises with the Bitcoin Network after a connection is established, but this process has not been completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your Wallet automatically synchronises with the Verium Network after a connection is established, but this process has not been completed yet. Watch-only: @@ -1470,7 +1470,7 @@ Cannot start bitcoin: click-to-pay handler - Cannot start Bitcoin: click-to-pay handler + Cannot start Verium: click-to-pay handler URI handling @@ -1505,8 +1505,8 @@ Invalid payment address %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. Payment request file handling @@ -1607,8 +1607,8 @@ Amount - Enter a Bitcoin address (e.g. %1) - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) + Enter a Verium address (e.g. %1) %1 d @@ -2068,8 +2068,8 @@ &Message: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. An optional label to associate with the new receiving address. @@ -2497,8 +2497,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Estimated to begin confirmation within %n block.Estimated to begin confirmation within %n blocks. - Warning: Invalid Bitcoin address - Warning: Invalid Bitcoin address + Warning: Invalid Verium address + Warning: Invalid Verium address Warning: Unknown change address @@ -2540,8 +2540,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p This is a normal payment. - The Bitcoin address to send the payment to - The Bitcoin address to send the payment to + The Verium address to send the payment to + The Verium address to send the payment to Alt+A @@ -2588,8 +2588,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Enter a label for this address to add it to the list of used addresses - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. Pay To: @@ -2637,8 +2637,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - The Bitcoin address to sign the message with - The Bitcoin address to sign the message with + The Verium address to sign the message with + The Verium address to sign the message with Choose previously used address @@ -2669,8 +2669,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Copy the current signature to the system clipboard - Sign the message to prove you own this Bitcoin address - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address + Sign the message to prove you own this Verium address Sign &Message @@ -2693,12 +2693,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction! - The Bitcoin address the message was signed with - The Bitcoin address the message was signed with + The Verium address the message was signed with + The Verium address the message was signed with - Verify the message to ensure it was signed with the specified Bitcoin address - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address + Verify the message to ensure it was signed with the specified Verium address Verify &Message diff --git a/src/qt/locale/bitcoin_eo.ts b/src/qt/locale/bitcoin_eo.ts index 78ff6254ce..98f2147249 100644 --- a/src/qt/locale/bitcoin_eo.ts +++ b/src/qt/locale/bitcoin_eo.ts @@ -66,7 +66,7 @@ Ricevaj adresoj - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. Jen viaj Bitmon-adresoj por sendi pagojn. Zorge kontrolu la sumon kaj la alsendan adreson antaŭ ol sendi. @@ -212,7 +212,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Sign &message... Subskribi &mesaĝon... @@ -282,7 +282,7 @@ Reindeksado de blokoj sur disko... - Send coins to a Bitcoin address + Send coins to a Verium address Sendi monon al Bitmon-adreso @@ -326,11 +326,11 @@ Ĉifri la privatajn ŝlosilojn de via monujo - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them Subskribi mesaĝojn per via Bitmon-adresoj por pravigi, ke vi estas la posedanto - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses Kontroli mesaĝojn por kontroli ĉu ili estas subskribitaj per specifaj Bitmon-adresoj @@ -641,7 +641,7 @@ Uzi alian dosierujon por datumoj: - Bitcoin + Verium Bitmono @@ -721,7 +721,7 @@ Fakulo - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. Aŭtomate malfermi la kursilan pordon por Bitmono. Tio funkcias nur se via kursilo havas la UPnP-funkcion, kaj se tiu ĉi estas ŝaltita. @@ -820,7 +820,7 @@ Formularo - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. Eblas, ke la informoj videblaj ĉi tie estas eksdataj. Via monujo aŭtomate sinkoniĝas kun la bitmona reto kiam ili konektiĝas, sed tiu procezo ankoraŭ ne finfariĝis. @@ -1315,7 +1315,7 @@ Kreo de transakcio fiaskis! - Warning: Invalid Bitcoin address + Warning: Invalid Verium address Averto: Nevalida Bitmon-adreso @@ -1431,7 +1431,7 @@ Kopii la aktualan subskribon al la tondejo - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Subskribi la mesaĝon por pravigi, ke vi estas la posedanto de tiu Bitmon-adreso @@ -1451,7 +1451,7 @@ &Kontroli Mesaĝon - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address Kontroli la mesaĝon por pravigi, ke ĝi ja estas subskribita per la specifa Bitmon-adreso diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index ddeed2ca1e..7fce6559d5 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -66,12 +66,12 @@ Direcciones de recepción - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son sus direcciones Bitcoin para enviar pagos. Compruebe siempre la cantidad y la dirección de recibo antes de transferir monedas. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Estas son sus direcciones Verium para enviar pagos. Compruebe siempre la cantidad y la dirección de recibo antes de transferir monedas. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Estas son sus direcciones Bitcoin para la recepción de pagos. Use el botón 'Crear una nueva dirección para recepción' en la pestaña Recibir para crear nuevas direcciones + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Estas son sus direcciones Verium para la recepción de pagos. Use el botón 'Crear una nueva dirección para recepción' en la pestaña Recibir para crear nuevas direcciones &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Firmar &mensaje... @@ -362,8 +362,8 @@ El proxy está <b>habilitado</b>: %1 - Send coins to a Bitcoin address - Enviar monedas a una dirección Bitcoin + Send coins to a Verium address + Enviar monedas a una dirección Verium Backup wallet to another location @@ -406,12 +406,12 @@ Cifrar las claves privadas de su monedero - Sign messages with your Bitcoin addresses to prove you own them - Firmar mensajes con sus direcciones Bitcoin para demostrar la propiedad + Sign messages with your Verium addresses to prove you own them + Firmar mensajes con sus direcciones Verium para demostrar la propiedad - Verify messages to ensure they were signed with specified Bitcoin addresses - Verificar mensajes comprobando que están firmados con direcciones Bitcoin concretas + Verify messages to ensure they were signed with specified Verium addresses + Verificar mensajes comprobando que están firmados con direcciones Verium concretas &File @@ -431,7 +431,7 @@ Request payments (generates QR codes and bitcoin: URIs) - Solicitar pagos (genera código QR y URL's de Bitcoin) + Solicitar pagos (genera código QR y URL's de Verium) Show the list of used sending addresses and labels @@ -450,8 +450,8 @@ &Opciones de línea de comandos - %n active connection(s) to Bitcoin network - %n conexión activa hacia la red Bitcoin%n conexiones activas hacia la red Bitcoin + %n active connection(s) to Verium network + %n conexión activa hacia la red Verium%n conexiones activas hacia la red Verium Indexing blocks on disk... @@ -518,8 +518,8 @@ Cerrar monedero - Show the %1 help message to get a list with possible Bitcoin command-line options - Muestre el mensaje de ayuda %1 para obtener una lista con posibles opciones de línea de comandos de Bitcoin + Show the %1 help message to get a list with possible Verium command-line options + Muestre el mensaje de ayuda %1 para obtener una lista con posibles opciones de línea de comandos de Verium default wallet @@ -630,8 +630,8 @@ El monedero está <b>cifrado</b> y actualmente <b>bloqueado</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Se produjo un error fatal. Bitcoin ya no puede continuar de manera segura y se cerrará + A fatal error occurred. Verium can no longer continue safely and will quit. + Se produjo un error fatal. Verium ya no puede continuar de manera segura y se cerrará @@ -874,8 +874,8 @@ Editar dirección de envío - The entered address "%1" is not a valid Bitcoin address. - La dirección ingresada "%1" no es una dirección válida de Bitcoin. + The entered address "%1" is not a valid Verium address. + La dirección ingresada "%1" no es una dirección válida de Verium. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -975,8 +975,8 @@ Utilice un directorio de datos personalizado: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ Aproximadamente %1 GB de datos se almacenarán en este directorio. - %1 will download and store a copy of the Bitcoin block chain. - %1 descargará y almacenará una copia de la cadena de bloques de Bitcoin. + %1 will download and store a copy of the Verium block chain. + %1 descargará y almacenará una copia de la cadena de bloques de Verium. The wallet will also be stored in this directory. @@ -1223,8 +1223,8 @@ & Gastar cambio no confirmado - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir automáticamente el puerto del cliente Bitcoin en el router. Esta opción solo funciona si el router admite UPnP y está activado. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Abrir automáticamente el puerto del cliente Verium en el router. Esta opción solo funciona si el router admite UPnP y está activado. Map port using &UPnP @@ -1239,8 +1239,8 @@ Permitir conexiones entrantes - Connect to the Bitcoin network through a SOCKS5 proxy. - Conéctese a la red de Bitcoin a través de un proxy SOCKS5. + Connect to the Verium network through a SOCKS5 proxy. + Conéctese a la red de Verium a través de un proxy SOCKS5. &Connect through SOCKS5 proxy (default proxy): @@ -1275,8 +1275,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Conéctese a la red de Bitcoin a través de un proxy SOCKS5 separado para los servicios Tor ocultos. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Conéctese a la red de Verium a través de un proxy SOCKS5 separado para los servicios Tor ocultos. &Window @@ -1386,8 +1386,8 @@ Desde - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - La información mostrada puede estar desactualizada. Su monedero se sincroniza automáticamente con la red Bitcoin después de que se haya establecido una conexión, pero este proceso aún no se ha completado. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + La información mostrada puede estar desactualizada. Su monedero se sincroniza automáticamente con la red Verium después de que se haya establecido una conexión, pero este proceso aún no se ha completado. Watch-only: @@ -1462,7 +1462,7 @@ Cannot start bitcoin: click-to-pay handler - No se puede iniciar Bitcoin: controlador de clic para pagar + No se puede iniciar Verium: controlador de clic para pagar URI handling @@ -1497,8 +1497,8 @@ Dirección de pago inválida %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - ¡No se puede interpretar la URI! Esto puede deberse a una dirección Bitcoin inválida o a parámetros de URI mal formados. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + ¡No se puede interpretar la URI! Esto puede deberse a una dirección Verium inválida o a parámetros de URI mal formados. Payment request file handling @@ -1599,8 +1599,8 @@ Cantidad - Enter a Bitcoin address (e.g. %1) - Ingrese una dirección de Bitcoin (por ejemplo, %1) + Enter a Verium address (e.g. %1) + Ingrese una dirección de Verium (por ejemplo, %1) %1 d @@ -2060,8 +2060,8 @@ Mensaje: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud esté abierta. Nota: El mensaje no se enviará con el pago a través de la red de Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud esté abierta. Nota: El mensaje no se enviará con el pago a través de la red de Verium. An optional label to associate with the new receiving address. @@ -2334,7 +2334,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Cuando hay menos volumen de transacciones que espacio en los bloques, los mineros y los nodos de retransmisión pueden imponer una comisión mínima. Pagar solo esta comisión mínima está bien, pero tenga en cuenta que esto puede resultar en una transacción nunca confirmada una vez que haya más demanda de transacciones de Bitcoin de la que la red puede procesar. + Cuando hay menos volumen de transacciones que espacio en los bloques, los mineros y los nodos de retransmisión pueden imponer una comisión mínima. Pagar solo esta comisión mínima está bien, pero tenga en cuenta que esto puede resultar en una transacción nunca confirmada una vez que haya más demanda de transacciones de Verium de la que la red puede procesar. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2489,8 +2489,8 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Estimado para empezar la confirmación dentro de %n bloque.Estimado para empezar la confirmación dentro de %n bloques. - Warning: Invalid Bitcoin address - Peligro: Dirección de Bitcoin inválida + Warning: Invalid Verium address + Peligro: Dirección de Verium inválida Warning: Unknown change address @@ -2532,8 +2532,8 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Esto es un pago ordinario. - The Bitcoin address to send the payment to - Dirección Bitcoin a la que se enviará el pago + The Verium address to send the payment to + Dirección Verium a la que se enviará el pago Alt+A @@ -2580,8 +2580,8 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Introduzca una etiqueta para esta dirección para añadirla a la lista de direcciones utilizadas - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Un mensaje que se adjuntó a la bitcoin: URL que será almacenada con la transacción para su referencia. Nota: Este mensaje no se envía a través de la red Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Un mensaje que se adjuntó a la bitcoin: URL que será almacenada con la transacción para su referencia. Nota: Este mensaje no se envía a través de la red Verium. Pay To: @@ -2629,8 +2629,8 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Puede firmar los mensajes con sus direcciones para demostrar que las posee. Tenga cuidado de no firmar cualquier cosa de manera vaga o aleatoria, pues los ataques de phishing pueden tratar de engañarle firmando su identidad a través de ellos. Sólo firme declaraciones totalmente detalladas con las que usted esté de acuerdo. - The Bitcoin address to sign the message with - Dirección Bitcoin con la que firmar el mensaje + The Verium address to sign the message with + Dirección Verium con la que firmar el mensaje Choose previously used address @@ -2661,8 +2661,8 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Copiar la firma actual al portapapeles del sistema - Sign the message to prove you own this Bitcoin address - Firmar el mensaje para demostrar que se posee esta dirección Bitcoin + Sign the message to prove you own this Verium address + Firmar el mensaje para demostrar que se posee esta dirección Verium Sign &Message @@ -2685,12 +2685,12 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Introduzca la dirección para la firma, el mensaje (asegurándose de copiar tal cual los saltos de línea, espacios, tabulaciones, etc.) y la firma a continuación para verificar el mensaje. Tenga cuidado de no asumir más información de lo que dice el propio mensaje firmado para evitar fraudes basados en ataques de tipo man-in-the-middle. - The Bitcoin address the message was signed with - La dirección Bitcoin con la que se firmó el mensaje + The Verium address the message was signed with + La dirección Verium con la que se firmó el mensaje - Verify the message to ensure it was signed with the specified Bitcoin address - Verificar el mensaje para comprobar que fue firmado con la dirección Bitcoin indicada + Verify the message to ensure it was signed with the specified Verium address + Verificar el mensaje para comprobar que fue firmado con la dirección Verium indicada Verify &Message diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/bitcoin_es_CL.ts index 59cae48e2f..5966f1a923 100644 --- a/src/qt/locale/bitcoin_es_CL.ts +++ b/src/qt/locale/bitcoin_es_CL.ts @@ -67,8 +67,8 @@ Exportar los datos en la pestaña actual a un archivo Recibiendo dirección - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son sus direcciones de Bitcoin para enviar pagos. Siempre verifique el monto y la dirección de recepción antes de enviar monedas. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Estas son sus direcciones de Verium para enviar pagos. Siempre verifique el monto y la dirección de recepción antes de enviar monedas. &Copy Address @@ -225,7 +225,7 @@ Exportar los datos en la pestaña actual a un archivo - BitcoinGUI + VeriumGUI Sign &message... Firma y mensaje ... @@ -327,8 +327,8 @@ Exportar los datos en la pestaña actual a un archivo Proxy <b>habilitado</b>: %1 - Send coins to a Bitcoin address - Enviando monedas a una dirección de Bitcoin + Send coins to a Verium address + Enviando monedas a una dirección de Verium Backup wallet to another location @@ -371,12 +371,12 @@ Exportar los datos en la pestaña actual a un archivo Encripta las claves privadas que pertenecen a tu billetera - Sign messages with your Bitcoin addresses to prove you own them - Firme mensajes con sus direcciones de Bitcoin para demostrar que los posee + Sign messages with your Verium addresses to prove you own them + Firme mensajes con sus direcciones de Verium para demostrar que los posee - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifique los mensajes para asegurarse de que fueron firmados con las direcciones de Bitcoin especificadas + Verify messages to ensure they were signed with specified Verium addresses + Verifique los mensajes para asegurarse de que fueron firmados con las direcciones de Verium especificadas &File @@ -415,8 +415,8 @@ Exportar los datos en la pestaña actual a un archivo Y opciones de línea de comando - %n active connection(s) to Bitcoin network - %n conexión activa hacia la red Bitcoin%n conexiones activas hacia la red Bitcoin + %n active connection(s) to Verium network + %n conexión activa hacia la red Verium%n conexiones activas hacia la red Verium Indexing blocks on disk... @@ -459,8 +459,8 @@ Exportar los datos en la pestaña actual a un archivo A hoy - Show the %1 help message to get a list with possible Bitcoin command-line options - Muestre el mensaje de ayuda %1 para obtener una lista con posibles opciones de línea de comandos de Bitcoin + Show the %1 help message to get a list with possible Verium command-line options + Muestre el mensaje de ayuda %1 para obtener una lista con posibles opciones de línea de comandos de Verium &Window @@ -555,8 +555,8 @@ Exportar los datos en la pestaña actual a un archivo La billetera está <b> encriptada </ b> y actualmente está <b> bloqueada </ b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Se produjo un error fatal. Bitcoin ya no puede continuar de manera segura y no continuará + A fatal error occurred. Verium can no longer continue safely and will quit. + Se produjo un error fatal. Verium ya no puede continuar de manera segura y no continuará @@ -751,8 +751,8 @@ Exportar los datos en la pestaña actual a un archivo Editar dirección de envío - The entered address "%1" is not a valid Bitcoin address. - La dirección ingresada "%1" no es una dirección válida de Bitcoin. + The entered address "%1" is not a valid Verium address. + La dirección ingresada "%1" no es una dirección válida de Verium. Could not unlock wallet. @@ -840,8 +840,8 @@ Exportar los datos en la pestaña actual a un archivo Use un directorio de datos personalizado: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -852,8 +852,8 @@ Exportar los datos en la pestaña actual a un archivo Aproximadamente %1 GB de datos se almacenarán en este directorio. - %1 will download and store a copy of the Bitcoin block chain. - %1 descargará y almacenará una copia de la cadena de bloques de Bitcoin. + %1 will download and store a copy of the Verium block chain. + %1 descargará y almacenará una copia de la cadena de bloques de Verium. The wallet will also be stored in this directory. @@ -1052,8 +1052,8 @@ Exportar los datos en la pestaña actual a un archivo & Gastar cambio no confirmado - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Abra automáticamente el puerto cliente de Bitcoin en el enrutador. Esto solo funciona cuando su enrutador admite UPnP y está habilitado. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Abra automáticamente el puerto cliente de Verium en el enrutador. Esto solo funciona cuando su enrutador admite UPnP y está habilitado. Map port using &UPnP @@ -1068,8 +1068,8 @@ Exportar los datos en la pestaña actual a un archivo Permitir conexiones entrantes - Connect to the Bitcoin network through a SOCKS5 proxy. - Conéctese a la red de Bitcoin a través de un proxy SOCKS5. + Connect to the Verium network through a SOCKS5 proxy. + Conéctese a la red de Verium a través de un proxy SOCKS5. &Connect through SOCKS5 proxy (default proxy): @@ -1104,8 +1104,8 @@ Exportar los datos en la pestaña actual a un archivo Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Conéctese a la red de Bitcoin a través de un proxy SOCKS5 separado para los servicios Tor ocultos. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Conéctese a la red de Verium a través de un proxy SOCKS5 separado para los servicios Tor ocultos. &Window @@ -1211,8 +1211,8 @@ Exportar los datos en la pestaña actual a un archivo Configurar - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - La información mostrada puede estar desactualizada. Su billetera se sincroniza automáticamente con la red de Bitcoin después de establecer una conexión, pero este proceso aún no se ha completado. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + La información mostrada puede estar desactualizada. Su billetera se sincroniza automáticamente con la red de Verium después de establecer una conexión, pero este proceso aún no se ha completado. Watch-only: @@ -1287,7 +1287,7 @@ Exportar los datos en la pestaña actual a un archivo Cannot start bitcoin: click-to-pay handler - No se puede iniciar Bitcoin: controlador de clic para pagar + No se puede iniciar Verium: controlador de clic para pagar URI handling @@ -1302,8 +1302,8 @@ Exportar los datos en la pestaña actual a un archivo Dirección de pago inválida %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - ¡URI no puede ser analizado! Esto puede deberse a una dirección de Bitcoin no válida o a parámetros de URI mal formados. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + ¡URI no puede ser analizado! Esto puede deberse a una dirección de Verium no válida o a parámetros de URI mal formados. Payment request file handling @@ -1404,8 +1404,8 @@ Exportar los datos en la pestaña actual a un archivo Cantidad - Enter a Bitcoin address (e.g. %1) - Ingrese una dirección de Bitcoin (por ejemplo, %1) + Enter a Verium address (e.g. %1) + Ingrese una dirección de Verium (por ejemplo, %1) %1 d @@ -1821,8 +1821,8 @@ Exportar los datos en la pestaña actual a un archivo Mensaje: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Un mensaje opcional para adjuntar a la solicitud de pago, que se mostrará cuando se abra la solicitud. Nota: El mensaje no se enviará con el pago a través de la red de Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Un mensaje opcional para adjuntar a la solicitud de pago, que se mostrará cuando se abra la solicitud. Nota: El mensaje no se enviará con el pago a través de la red de Verium. An optional label to associate with the new receiving address. @@ -2167,8 +2167,8 @@ Tarifa de copia Solicitud de pago caducada. - Warning: Invalid Bitcoin address - Peligro: Dirección de Bitcoin inválida + Warning: Invalid Verium address + Peligro: Dirección de Verium inválida Warning: Unknown change address @@ -2210,8 +2210,8 @@ Tarifa de copia Este es un pago normal - The Bitcoin address to send the payment to - Dirección Bitcoin a enviar el pago + The Verium address to send the payment to + Dirección Verium a enviar el pago Alt+A @@ -2291,8 +2291,8 @@ Tarifa de copia &Firmar Mensaje - The Bitcoin address to sign the message with - Dirección Bitcoin con la que firmar el mensaje + The Verium address to sign the message with + Dirección Verium con la que firmar el mensaje Choose previously used address @@ -2323,7 +2323,7 @@ Tarifa de copia Copiar la firma actual al portapapeles del sistema - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Firmar un mensjage para probar que usted es dueño de esta dirección @@ -2343,12 +2343,12 @@ Tarifa de copia &Firmar Mensaje - The Bitcoin address the message was signed with - La dirección Bitcoin con la que se firmó el mensaje + The Verium address the message was signed with + La dirección Verium con la que se firmó el mensaje - Verify the message to ensure it was signed with the specified Bitcoin address - Verifica el mensaje para asegurar que fue firmado con la dirección de Bitcoin especificada. + Verify the message to ensure it was signed with the specified Verium address + Verifica el mensaje para asegurar que fue firmado con la dirección de Verium especificada. Verify &Message diff --git a/src/qt/locale/bitcoin_es_CO.ts b/src/qt/locale/bitcoin_es_CO.ts index 91e425eb08..db498b2ce6 100644 --- a/src/qt/locale/bitcoin_es_CO.ts +++ b/src/qt/locale/bitcoin_es_CO.ts @@ -66,8 +66,8 @@ Recibiendo direcciones - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son tus direcciones de Bitcoin para recibir pagos. Siempre revise el monto y la dirección de envío antes de enviar criptomonedas. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Estas son tus direcciones de Verium para recibir pagos. Siempre revise el monto y la dirección de envío antes de enviar criptomonedas. &Copy Address @@ -220,7 +220,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Firmar &mensaje... @@ -322,7 +322,7 @@ Proxy <b>habilitado</b>: %1 - Send coins to a Bitcoin address + Send coins to a Verium address Enviar monedas a una dirección bitcoin @@ -366,12 +366,12 @@ Cifrar las claves privadas de su monedero - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them Firmar un mensaje para provar que usted es dueño de esta dirección - Verify messages to ensure they were signed with specified Bitcoin addresses - Verificar mensajes comprobando que están firmados con direcciones Bitcoin concretas + Verify messages to ensure they were signed with specified Verium addresses + Verificar mensajes comprobando que están firmados con direcciones Verium concretas &File @@ -410,8 +410,8 @@ &Opciones de linea de comando - %n active connection(s) to Bitcoin network - %n conexión activa hacia la red Bitcoin%n conexiones activas hacia la red Bitcoin + %n active connection(s) to Verium network + %n conexión activa hacia la red Verium%n conexiones activas hacia la red Verium Indexing blocks on disk... @@ -454,8 +454,8 @@ Actualizado - Show the %1 help message to get a list with possible Bitcoin command-line options - Mostrar el mensaje de ayuda %1 para obtener una lista de los posibles comandos de Bitcoin + Show the %1 help message to get a list with possible Verium command-line options + Mostrar el mensaje de ayuda %1 para obtener una lista de los posibles comandos de Verium &Window @@ -550,8 +550,8 @@ La billetera esta <b>codificada</b> y actualmente <b>bloqueda</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Ha ocurrido un error fatal. Bitcoin no puede seguir seguro y se cerrará. + A fatal error occurred. Verium can no longer continue safely and will quit. + Ha ocurrido un error fatal. Verium no puede seguir seguro y se cerrará. @@ -747,8 +747,8 @@ Editar dirección de envio - The entered address "%1" is not a valid Bitcoin address. - La dirección introducida "%1" no es una dirección Bitcoin valida. + The entered address "%1" is not a valid Verium address. + La dirección introducida "%1" no es una dirección Verium valida. Could not unlock wallet. @@ -836,8 +836,8 @@ usar un directorio de datos personalizado: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -848,8 +848,8 @@ Aproximadamente %1 GB de información será almacenado en este directorio. - %1 will download and store a copy of the Bitcoin block chain. - %1 descargará y almacenará una copia del blockchain de Bitcoin. + %1 will download and store a copy of the Verium block chain. + %1 descargará y almacenará una copia del blockchain de Verium. The wallet will also be stored in this directory. @@ -1048,8 +1048,8 @@ Gastar cambio sin confirmar - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Abre automáticamente el puerto del cliente Bitcoin en el router. Esto funciona solo cuando tu router es compatible con UPnP y está habilitado. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Abre automáticamente el puerto del cliente Verium en el router. Esto funciona solo cuando tu router es compatible con UPnP y está habilitado. Map port using &UPnP @@ -1064,8 +1064,8 @@ Permitir conexiones entrantes - Connect to the Bitcoin network through a SOCKS5 proxy. - Conectar a la red de Bitcoin a través de un proxy SOCKS5 + Connect to the Verium network through a SOCKS5 proxy. + Conectar a la red de Verium a través de un proxy SOCKS5 &Connect through SOCKS5 proxy (default proxy): @@ -1100,8 +1100,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Conectar a la red de Bitcoin a través de un proxy SOCKS5 diferente para los servicios anónimos de Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Conectar a la red de Verium a través de un proxy SOCKS5 diferente para los servicios anónimos de Tor. &Window @@ -1208,8 +1208,8 @@ Formulario - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - La información entregada puede estar desactualizada. Tu billetera se sincroniza automáticamente con la red de Bitcoin después de establecer una conexión, pero este proceso aún no se ha completado. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + La información entregada puede estar desactualizada. Tu billetera se sincroniza automáticamente con la red de Verium después de establecer una conexión, pero este proceso aún no se ha completado. Watch-only: @@ -1284,7 +1284,7 @@ Cannot start bitcoin: click-to-pay handler - No se puede iniciar Bitcoin: controlador de clic para pagar + No se puede iniciar Verium: controlador de clic para pagar URI handling @@ -1299,8 +1299,8 @@ Dirección de pago inválida %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - ¡URI no puede ser analizado! Esto puede deberse a una dirección de Bitcoin no válida o a parámetros de URI mal formados. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + ¡URI no puede ser analizado! Esto puede deberse a una dirección de Verium no válida o a parámetros de URI mal formados. Payment request file handling @@ -1401,8 +1401,8 @@ Cantidad - Enter a Bitcoin address (e.g. %1) - Ingresa una dirección de Bitcoin (Ejemplo: %1) + Enter a Verium address (e.g. %1) + Ingresa una dirección de Verium (Ejemplo: %1) %1 d @@ -1819,8 +1819,8 @@ &mensaje - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Mensaje opcional adjunto a la solicitud de pago, que será mostrado cuando la solicitud sea abierta. Nota: Este mensaje no será enviado con el pago a través de la red Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Mensaje opcional adjunto a la solicitud de pago, que será mostrado cuando la solicitud sea abierta. Nota: Este mensaje no será enviado con el pago a través de la red Verium. An optional label to associate with the new receiving address. @@ -2165,8 +2165,8 @@ Solicitud de pago expirada - Warning: Invalid Bitcoin address - Peligro: Dirección de Bitcoin inválida + Warning: Invalid Verium address + Peligro: Dirección de Verium inválida Warning: Unknown change address @@ -2208,8 +2208,8 @@ Este es un pago normal - The Bitcoin address to send the payment to - Dirección Bitcoin a enviar el pago + The Verium address to send the payment to + Dirección Verium a enviar el pago Alt+A @@ -2289,8 +2289,8 @@ &Firmar Mensaje - The Bitcoin address to sign the message with - Dirección Bitcoin con la que firmar el mensaje + The Verium address to sign the message with + Dirección Verium con la que firmar el mensaje Choose previously used address @@ -2321,7 +2321,7 @@ Copiar la firma actual al portapapeles del sistema - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Firmar un mensjage para probar que usted es dueño de esta dirección @@ -2341,12 +2341,12 @@ &Firmar Mensaje - The Bitcoin address the message was signed with - La dirección Bitcoin con la que se firmó el mensaje + The Verium address the message was signed with + La dirección Verium con la que se firmó el mensaje - Verify the message to ensure it was signed with the specified Bitcoin address - Verifica el mensaje para asegurar que fue firmado con la dirección de Bitcoin especificada. + Verify the message to ensure it was signed with the specified Verium address + Verifica el mensaje para asegurar que fue firmado con la dirección de Verium especificada. Verify &Message diff --git a/src/qt/locale/bitcoin_es_DO.ts b/src/qt/locale/bitcoin_es_DO.ts index 7af0050a18..9c9b8b5201 100644 --- a/src/qt/locale/bitcoin_es_DO.ts +++ b/src/qt/locale/bitcoin_es_DO.ts @@ -66,8 +66,8 @@ Direcciones de recepción - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son tus direcciones Bitcoin para realizar pagos. Verifica siempre el monto y la dirección de recepción antes de enviar monedas. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Estas son tus direcciones Verium para realizar pagos. Verifica siempre el monto y la dirección de recepción antes de enviar monedas. &Copy Address @@ -178,7 +178,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Sign &message... Firmar &mensaje... @@ -244,8 +244,8 @@ Reindexando bloques en el disco... - Send coins to a Bitcoin address - Enviar monedas a una dirección Bitcoin + Send coins to a Verium address + Enviar monedas a una dirección Verium Backup wallet to another location @@ -288,12 +288,12 @@ Encriptar las llaves privadas que pertenecen a tu billetera - Sign messages with your Bitcoin addresses to prove you own them - Firma mensajes con tus direcciones Bitcoin para probar que eres dueño de ellas + Sign messages with your Verium addresses to prove you own them + Firma mensajes con tus direcciones Verium para probar que eres dueño de ellas - Verify messages to ensure they were signed with specified Bitcoin addresses - Verificar mensajes para asegurar que estaban firmados con direcciones Bitcoin especificas + Verify messages to ensure they were signed with specified Verium addresses + Verificar mensajes para asegurar que estaban firmados con direcciones Verium especificas &File @@ -313,7 +313,7 @@ Request payments (generates QR codes and bitcoin: URIs) - Solicitar pagos (genera codigo QR y URL's de Bitcoin) + Solicitar pagos (genera codigo QR y URL's de Verium) Show the list of used sending addresses and labels @@ -569,8 +569,8 @@ Usa un directorio de datos personalizado: - Bitcoin - Bitcoin + Verium + Verium Error: Specified data directory "%1" cannot be created. @@ -649,8 +649,8 @@ Experto - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir automáticamente el puerto del cliente Bitcoin en el router. Esta opción solo funciona si el router admite UPnP y está activado. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Abrir automáticamente el puerto del cliente Verium en el router. Esta opción solo funciona si el router admite UPnP y está activado. Map port using &UPnP @@ -748,8 +748,8 @@ Desde - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - La información mostrada puede estar desactualizada. Su monedero se sincroniza automáticamente con la red Bitcoin después de que se haya establecido una conexión, pero este proceso aún no se ha completado. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + La información mostrada puede estar desactualizada. Su monedero se sincroniza automáticamente con la red Verium después de que se haya establecido una conexión, pero este proceso aún no se ha completado. Available: @@ -1239,8 +1239,8 @@ Copiar la firma actual al portapapeles del sistema - Sign the message to prove you own this Bitcoin address - Firmar el mensaje para demostrar que se posee esta dirección Bitcoin + Sign the message to prove you own this Verium address + Firmar el mensaje para demostrar que se posee esta dirección Verium Sign &Message @@ -1259,8 +1259,8 @@ &Verificar mensaje - Verify the message to ensure it was signed with the specified Bitcoin address - Verificar el mensaje para comprobar que fue firmado con la dirección Bitcoin indicada + Verify the message to ensure it was signed with the specified Verium address + Verificar el mensaje para comprobar que fue firmado con la dirección Verium indicada Verify &Message diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/bitcoin_es_MX.ts index 5ff1b4dec8..153dc687d3 100644 --- a/src/qt/locale/bitcoin_es_MX.ts +++ b/src/qt/locale/bitcoin_es_MX.ts @@ -66,8 +66,8 @@ Direcciones de recibo - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son tus direcciones de Bitcoin para enviar pagos. Siempre revisa el monto y la dirección de envío antes de enviar monedas. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Estas son tus direcciones de Verium para enviar pagos. Siempre revisa el monto y la dirección de envío antes de enviar monedas. &Copy Address @@ -220,7 +220,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Firmar &mensaje @@ -323,8 +323,8 @@ Haga clic para habilitar la actividad de red nuevamente. El proxy está <b>habilitado</b>: %1 - Send coins to a Bitcoin address - Enviar monedas a una dirección Bitcoin + Send coins to a Verium address + Enviar monedas a una dirección Verium Backup wallet to another location @@ -367,12 +367,12 @@ Haga clic para habilitar la actividad de red nuevamente. Cifre las claves privadas que pertenecen a su billetera - Sign messages with your Bitcoin addresses to prove you own them - Firme mensajes con sus direcciones de Bitcoin para demostrar que los posee + Sign messages with your Verium addresses to prove you own them + Firme mensajes con sus direcciones de Verium para demostrar que los posee - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifique los mensajes para asegurarse de que se firmaron con direcciones de Bitcoin especificadas. + Verify messages to ensure they were signed with specified Verium addresses + Verifique los mensajes para asegurarse de que se firmaron con direcciones de Verium especificadas. &File @@ -526,8 +526,8 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) Intro - Bitcoin - Bitcoin + Verium + Verium Error @@ -615,8 +615,8 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) Mensaje: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud este abierta. Nota: El mensaje no se manda con el pago a travéz de la red de Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud este abierta. Nota: El mensaje no se manda con el pago a travéz de la red de Verium. Use this form to request payments. All fields are <b>optional</b>. diff --git a/src/qt/locale/bitcoin_es_VE.ts b/src/qt/locale/bitcoin_es_VE.ts index b347606074..2571991c5d 100644 --- a/src/qt/locale/bitcoin_es_VE.ts +++ b/src/qt/locale/bitcoin_es_VE.ts @@ -66,8 +66,8 @@ Direcciones de recepción - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son sus direcciones Bitcoin para enviar pagos. Compruebe siempre la cantidad y la dirección de recibo antes de transferir monedas. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Estas son sus direcciones Verium para enviar pagos. Compruebe siempre la cantidad y la dirección de recibo antes de transferir monedas. &Copy Address @@ -180,7 +180,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Sign &message... Firmar &mensaje... @@ -246,8 +246,8 @@ Reindexando bloques en disco... - Send coins to a Bitcoin address - Enviar monedas a una dirección Bitcoin + Send coins to a Verium address + Enviar monedas a una dirección Verium Backup wallet to another location @@ -290,12 +290,12 @@ Cifrar las claves privadas de su monedero - Sign messages with your Bitcoin addresses to prove you own them - Firmar mensajes con sus direcciones Bitcoin para demostrar la propiedad + Sign messages with your Verium addresses to prove you own them + Firmar mensajes con sus direcciones Verium para demostrar la propiedad - Verify messages to ensure they were signed with specified Bitcoin addresses - Verificar mensajes comprobando que están firmados con direcciones Bitcoin concretas + Verify messages to ensure they were signed with specified Verium addresses + Verificar mensajes comprobando que están firmados con direcciones Verium concretas &File @@ -315,7 +315,7 @@ Request payments (generates QR codes and bitcoin: URIs) - Solicitar pagos (genera codigo QR y URL's de Bitcoin) + Solicitar pagos (genera codigo QR y URL's de Verium) Show the list of used sending addresses and labels @@ -587,8 +587,8 @@ Utilice un directorio de datos personalizado: - Bitcoin - Bitcoin + Verium + Verium Error: Specified data directory "%1" cannot be created. @@ -667,8 +667,8 @@ Experto - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir automáticamente el puerto del cliente Bitcoin en el router. Esta opción solo funciona si el router admite UPnP y está activado. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Abrir automáticamente el puerto del cliente Verium en el router. Esta opción solo funciona si el router admite UPnP y está activado. Map port using &UPnP @@ -766,8 +766,8 @@ Desde - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - La información mostrada puede estar desactualizada. Su monedero se sincroniza automáticamente con la red Bitcoin después de que se haya establecido una conexión, pero este proceso aún no se ha completado. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + La información mostrada puede estar desactualizada. Su monedero se sincroniza automáticamente con la red Verium después de que se haya establecido una conexión, pero este proceso aún no se ha completado. Available: @@ -1257,8 +1257,8 @@ Copiar la firma actual al portapapeles del sistema - Sign the message to prove you own this Bitcoin address - Firmar el mensaje para demostrar que se posee esta dirección Bitcoin + Sign the message to prove you own this Verium address + Firmar el mensaje para demostrar que se posee esta dirección Verium Sign &Message @@ -1277,8 +1277,8 @@ &Verificar mensaje - Verify the message to ensure it was signed with the specified Bitcoin address - Verificar el mensaje para comprobar que fue firmado con la dirección Bitcoin indicada + Verify the message to ensure it was signed with the specified Verium address + Verificar el mensaje para comprobar que fue firmado con la dirección Verium indicada Verify &Message diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/bitcoin_et.ts index c7e4ee38ac..b9ac23be73 100644 --- a/src/qt/locale/bitcoin_et.ts +++ b/src/qt/locale/bitcoin_et.ts @@ -66,8 +66,8 @@ Vastuvõtvad aadressid - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Need on sinu Bitcoin aadressid maksete saatmiseks. Ennem müntide saatmist kontrolli alati summat ja makse saaja aadressi. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Need on sinu Verium aadressid maksete saatmiseks. Ennem müntide saatmist kontrolli alati summat ja makse saaja aadressi. &Copy Address @@ -212,7 +212,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Signeeri &sõnum @@ -282,8 +282,8 @@ Kõvakettal olevate plokkide reindekseerimine... - Send coins to a Bitcoin address - Saada münte Bitcoini aadressile + Send coins to a Verium address + Saada münte Veriumi aadressile Backup wallet to another location @@ -326,12 +326,12 @@ Krüpteeri oma rahakoti privaatvõtmed - Sign messages with your Bitcoin addresses to prove you own them - Omandi tõestamiseks allkirjasta sõnumid oma Bitcoini aadressiga + Sign messages with your Verium addresses to prove you own them + Omandi tõestamiseks allkirjasta sõnumid oma Veriumi aadressiga - Verify messages to ensure they were signed with specified Bitcoin addresses - Kinnita sõnumid kindlustamaks et need allkirjastati määratud Bitcoini aadressiga + Verify messages to ensure they were signed with specified Verium addresses + Kinnita sõnumid kindlustamaks et need allkirjastati määratud Veriumi aadressiga &File @@ -362,8 +362,8 @@ &Käsurea valikud - %n active connection(s) to Bitcoin network - %n aktiivne ühendus Bitcoini võrku%n aktiivset ühendust Bitcoini võrku + %n active connection(s) to Verium network + %n aktiivne ühendus Veriumi võrku%n aktiivset ühendust Veriumi võrku Indexing blocks on disk... @@ -616,8 +616,8 @@ Muuda saatvat aadressi - The entered address "%1" is not a valid Bitcoin address. - Sisestatud aadress "%1" ei ole korrektne Bitcoin aadress. + The entered address "%1" is not a valid Verium address. + Sisestatud aadress "%1" ei ole korrektne Verium aadress. Could not unlock wallet. @@ -653,8 +653,8 @@ Tere tulemast - Bitcoin - Bitcoin + Verium + Verium Error @@ -729,8 +729,8 @@ Ekspert - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Bitcoini kliendi pordi automaatne avamine ruuteris. Toimib, kui sinu ruuter aktsepteerib UPnP ühendust. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Veriumi kliendi pordi automaatne avamine ruuteris. Toimib, kui sinu ruuter aktsepteerib UPnP ühendust. Map port using &UPnP @@ -828,7 +828,7 @@ Vorm - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. Kuvatav info ei pruugi olla ajakohane. Ühenduse loomisel süngitakse sinu rahakott automaatselt Bitconi võrgustikuga, kuid see toiming on hetkel lõpetamata. @@ -1355,8 +1355,8 @@ Maksepäring aegunud. - Warning: Invalid Bitcoin address - Hoiatus: Ebakorrektne Bitcoin aadress + Warning: Invalid Verium address + Hoiatus: Ebakorrektne Verium aadress (no label) @@ -1439,8 +1439,8 @@ &Allkirjastamise teade - The Bitcoin address to sign the message with - Bitcoin aadress millega sõnum allkirjastada + The Verium address to sign the message with + Verium aadress millega sõnum allkirjastada Choose previously used address @@ -1471,8 +1471,8 @@ Kopeeri praegune signatuur vahemällu - Sign the message to prove you own this Bitcoin address - Allkirjasta sõnum Bitcoini aadressi sulle kuulumise tõestamiseks + Sign the message to prove you own this Verium address + Allkirjasta sõnum Veriumi aadressi sulle kuulumise tõestamiseks Sign &Message @@ -1491,12 +1491,12 @@ &Kinnita Sõnum - The Bitcoin address the message was signed with - Bitcoin aadress millega sõnum on allkirjastatud + The Verium address the message was signed with + Verium aadress millega sõnum on allkirjastatud - Verify the message to ensure it was signed with the specified Bitcoin address - Kinnita sõnum tõestamaks selle allkirjastatust määratud Bitcoini aadressiga. + Verify the message to ensure it was signed with the specified Verium address + Kinnita sõnum tõestamaks selle allkirjastatust määratud Veriumi aadressiga. Verify &Message diff --git a/src/qt/locale/bitcoin_eu.ts b/src/qt/locale/bitcoin_eu.ts index 73ea345e32..630f932448 100644 --- a/src/qt/locale/bitcoin_eu.ts +++ b/src/qt/locale/bitcoin_eu.ts @@ -66,12 +66,12 @@ Helbideak jasotzen - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Hauek dira zuk dirua jaso dezaketen Bitcoin helbideak. Egiaztatu beti diru-kopurua eta dirua jasoko duen helbidea zuzen egon daitezen, txanponak bidali baino lehen. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Hauek dira zuk dirua jaso dezaketen Verium helbideak. Egiaztatu beti diru-kopurua eta dirua jasoko duen helbidea zuzen egon daitezen, txanponak bidali baino lehen. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Hauek dira ordainketak jasotzeko zure Bitcoin helbideak. Jaso taulako 'Jasotzeko helbide berri bat sortu' botoia erabili helbide berri bat sortzeko. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Hauek dira ordainketak jasotzeko zure Verium helbideak. Jaso taulako 'Jasotzeko helbide berri bat sortu' botoia erabili helbide berri bat sortzeko. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... &Mezua zinatu @@ -653,8 +653,8 @@ Ongietorri %1-ra - Bitcoin - Bitcoin + Verium + Verium Error diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts index 2e96626fa0..4e3a233f81 100644 --- a/src/qt/locale/bitcoin_fa.ts +++ b/src/qt/locale/bitcoin_fa.ts @@ -66,7 +66,7 @@ آدرس‌های گیرنده - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. اینها آدرس‌های شما برای ارسال وجوه هستند. همیشه قبل از ارسال، مقدار و آدرس گیرنده را بررسی کنید. @@ -225,7 +225,7 @@ - BitcoinGUI + VeriumGUI Sign &message... ثبت &پیام @@ -327,7 +327,7 @@ پراکسی <br>فعال شده است: %1</br> - Send coins to a Bitcoin address + Send coins to a Verium address ارسال کوین به آدرس بیت کوین @@ -371,11 +371,11 @@ رمزنگاری کلیدهای شخصی متعلق به کیف‌پول - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them پیام‌ها را با آدرس بیت‌کوین خود امضا کنید تا مالکیت آن‌ها را اثبات کنید - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses پیام‌ها را تائید کنید تا از امضاشدن آن‌ها با آدرس بیت‌کوین مطمئن شوید @@ -415,7 +415,7 @@ گزینه های خط فرمان - %n active connection(s) to Bitcoin network + %n active connection(s) to Verium network %n ارتباط فعال به شبکه بیت‌کوین%n ارتباط فعال به شبکه بیت‌کوین @@ -559,7 +559,7 @@ wallet رمزگذاری شد و در حال حاضر قفل است - A fatal error occurred. Bitcoin can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. خطای بحرانی رخ داده است. بیتکوین دیگر به صورت ایمن قادر به ادامه دادن نمی‌باشد و خارج خواهد شد. @@ -739,7 +739,7 @@ ویرایش آدرس ارسالی - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. آدرس وارد شده "%1" آدرس معتبر بیت کوین نیست. @@ -820,7 +820,7 @@ استفاده کردن از پوشه داده مخصوص: - Bitcoin + Verium بیت کوین @@ -969,7 +969,7 @@ حرفه‌ای - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. باز کردن خودکار درگاه شبکهٔ بیت‌کوین روی روترها. تنها زمانی کار می‌کند که روتر از پروتکل UPnP پشتیبانی کند و این پروتکل فعال باشد. @@ -1009,7 +1009,7 @@ شبکه Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. اتصال به شبکه بیت کوین با استفاده از پراکسی SOCKS5 برای استفاده از سرویس مخفی تور @@ -1108,7 +1108,7 @@ فرم - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. اطلاعات نمایش داده شده ممکن است روزآمد نباشد. wallet شما به صورت خودکار بعد از برقراری اتصال با شبکه bitcoin به روز می شود اما این فرایند هنوز تکمیل نشده است. @@ -1241,7 +1241,7 @@ میزان - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) آدرس بیت کوین را وارد کنید (به طور مثال %1) @@ -1975,7 +1975,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p تایید شدن تخمین زده شده تراکنش برابر است با: %n بلاک.تایید شدن تخمین زده شده تراکنش برابر است با: %n بلاک. - Warning: Invalid Bitcoin address + Warning: Invalid Verium address هشدار: آدرس بیت کوین نامعتبر @@ -2018,7 +2018,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p این پرداحت,عادی هست. - The Bitcoin address to send the payment to + The Verium address to send the payment to آدرس بیت کوین برای ارسال پرداحت به آن @@ -2087,7 +2087,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p &ثبت پیام - The Bitcoin address to sign the message with + The Verium address to sign the message with نشانی بیت‌کوین برای امضاء پیغام با آن @@ -2119,7 +2119,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p امضای فعلی را به حافظهٔ سیستم کپی کن - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address پیام را امضا کنید تا ثابت کنید این آدرس بیت‌کوین متعلق به شماست @@ -2139,11 +2139,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p تایید پیام - The Bitcoin address the message was signed with + The Verium address the message was signed with نشانی بیت‌کوین که پیغام با آن امضاء شده - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address پیام را تایید کنید تا مطمئن شوید که توسط آدرس بیت‌کوین مشخص شده امضا شده است. diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index 830309ee46..f8d45297e4 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -66,12 +66,12 @@ Vastaanotto-osoitteet - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Nämä ovat Bitcoin-osoitteesi maksujen lähettämistä varten. Tarkista aina määrä ja vastaanotto-osoite ennen kolikoiden lähettämistä. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Nämä ovat Verium-osoitteesi maksujen lähettämistä varten. Tarkista aina määrä ja vastaanotto-osoite ennen kolikoiden lähettämistä. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Nämä ovat sinun Bitcoin osoitteesi maksujen vastaanottamista varten. Käytä 'Luo uusi vastaanotto-osoite' painiketta vastaantto tabissä luodaksesi uuden osoitteen. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Nämä ovat sinun Verium osoitteesi maksujen vastaanottamista varten. Käytä 'Luo uusi vastaanotto-osoite' painiketta vastaantto tabissä luodaksesi uuden osoitteen. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... &Allekirjoita viesti... @@ -362,8 +362,8 @@ Välipalvelin on <b>käytössä</b>: %1 - Send coins to a Bitcoin address - Lähetä kolikoita Bitcoin-osoitteeseen + Send coins to a Verium address + Lähetä kolikoita Verium-osoitteeseen Backup wallet to another location @@ -399,19 +399,19 @@ Show or hide the main Window - Näytä tai piilota Bitcoin-ikkuna + Näytä tai piilota Verium-ikkuna Encrypt the private keys that belong to your wallet Suojaa yksityiset avaimet, jotka kuuluvat lompakkoosi - Sign messages with your Bitcoin addresses to prove you own them - Allekirjoita viestisi omalla Bitcoin -osoitteellasi todistaaksesi, että omistat ne + Sign messages with your Verium addresses to prove you own them + Allekirjoita viestisi omalla Verium -osoitteellasi todistaaksesi, että omistat ne - Verify messages to ensure they were signed with specified Bitcoin addresses - Varmista, että viestisi on allekirjoitettu määritetyllä Bitcoin -osoitteella + Verify messages to ensure they were signed with specified Verium addresses + Varmista, että viestisi on allekirjoitettu määritetyllä Verium -osoitteella &File @@ -450,8 +450,8 @@ &Komentorivin valinnat - %n active connection(s) to Bitcoin network - %n aktiivinen yhteys Bitcoin-verkkoon%n aktiivista yhteyttä Bitcoin-verkkoon + %n active connection(s) to Verium network + %n aktiivinen yhteys Verium-verkkoon%n aktiivista yhteyttä Verium-verkkoon Indexing blocks on disk... @@ -518,8 +518,8 @@ Sulje lompakko - Show the %1 help message to get a list with possible Bitcoin command-line options - Näytä %1 ohjeet saadaksesi listan mahdollisista Bitcoinin komentorivivalinnoista + Show the %1 help message to get a list with possible Verium command-line options + Näytä %1 ohjeet saadaksesi listan mahdollisista Veriumin komentorivivalinnoista default wallet @@ -630,8 +630,8 @@ Lompakko on <b>salattu</b> ja tällä hetkellä <b>lukittuna</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Peruuttamaton virhe on tapahtunut. Bitcoin ei voi enää jatkaa turvallisesti ja sammutetaan. + A fatal error occurred. Verium can no longer continue safely and will quit. + Peruuttamaton virhe on tapahtunut. Verium ei voi enää jatkaa turvallisesti ja sammutetaan. @@ -866,8 +866,8 @@ Muokkaa lähettävää osoitetta - The entered address "%1" is not a valid Bitcoin address. - Antamasi osoite "%1" ei ole kelvollinen Bitcoin-osoite. + The entered address "%1" is not a valid Verium address. + Antamasi osoite "%1" ei ole kelvollinen Verium-osoite. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -967,8 +967,8 @@ Määritä oma kansio: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -979,8 +979,8 @@ Noin %1 GB tietoa varastoidaan tähän hakemistoon. - %1 will download and store a copy of the Bitcoin block chain. - %1 lataa ja tallentaa kopion Bitcoinin lohkoketjusta. + %1 will download and store a copy of the Verium block chain. + %1 lataa ja tallentaa kopion Veriumin lohkoketjusta. The wallet will also be stored in this directory. @@ -1211,8 +1211,8 @@ &Käytä varmistamattomia vaihtorahoja - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Avaa Bitcoin-asiakasohjelman portti reitittimellä automaattisesti. Tämä toimii vain, jos reitittimesi tukee UPnP:tä ja se on käytössä. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Avaa Verium-asiakasohjelman portti reitittimellä automaattisesti. Tämä toimii vain, jos reitittimesi tukee UPnP:tä ja se on käytössä. Map port using &UPnP @@ -1227,8 +1227,8 @@ Hyväksy sisääntulevia yhteyksiä - Connect to the Bitcoin network through a SOCKS5 proxy. - Yhdistä Bitcoin-verkkoon SOCKS5-välityspalvelimen kautta. + Connect to the Verium network through a SOCKS5 proxy. + Yhdistä Verium-verkkoon SOCKS5-välityspalvelimen kautta. &Connect through SOCKS5 proxy (default proxy): @@ -1263,8 +1263,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Yhdistä Bitcoin-verkkoon erillisen SOCKS5-välityspalvelimen kautta piilotettuja Tor-palveluja varten. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Yhdistä Verium-verkkoon erillisen SOCKS5-välityspalvelimen kautta piilotettuja Tor-palveluja varten. &Window @@ -1374,8 +1374,8 @@ Lomake - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Näytetyt tiedot eivät välttämättä ole ajantasalla. Lompakkosi synkronoituu Bitcoin-verkon kanssa automaattisesti yhteyden muodostamisen jälkeen, mutta synkronointi on vielä meneillään. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Näytetyt tiedot eivät välttämättä ole ajantasalla. Lompakkosi synkronoituu Verium-verkon kanssa automaattisesti yhteyden muodostamisen jälkeen, mutta synkronointi on vielä meneillään. Watch-only: @@ -1415,7 +1415,7 @@ Your current total balance - Tililläsi tällä hetkellä olevien Bitcoinien määrä + Tililläsi tällä hetkellä olevien Veriumien määrä Your current balance in watch-only addresses @@ -1450,7 +1450,7 @@ Cannot start bitcoin: click-to-pay handler - Bitcoinia ei voi käynnistää: klikkaa-maksaaksesi -käsittelijän virhe + Veriumia ei voi käynnistää: klikkaa-maksaaksesi -käsittelijän virhe URI handling @@ -1477,8 +1477,8 @@ Virheellinen maksuosoite %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URIa ei voitu jäsentää! Tämä voi johtua virheellisestä Bitcoin-osoitteesta tai väärin muotoilluista URI parametreista. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URIa ei voitu jäsentää! Tämä voi johtua virheellisestä Verium-osoitteesta tai väärin muotoilluista URI parametreista. Payment request file handling @@ -1579,8 +1579,8 @@ Määrä - Enter a Bitcoin address (e.g. %1) - Syötä Bitcoin-osoite (esim. %1) + Enter a Verium address (e.g. %1) + Syötä Verium-osoite (esim. %1) %1 d @@ -2040,8 +2040,8 @@ &Viesti: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Valinnainen viesti liitetään maksupyyntöön ja näytetään avattaessa. Viestiä ei lähetetä Bitcoin-verkkoon. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Valinnainen viesti liitetään maksupyyntöön ja näytetään avattaessa. Viestiä ei lähetetä Verium-verkkoon. An optional label to associate with the new receiving address. @@ -2453,8 +2453,8 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Vahvistuminen alkaa arviolta %n lohkon sisällä.Vahvistuminen alkaa arviolta %n lohkon sisällä. - Warning: Invalid Bitcoin address - Varoitus: Virheellinen Bitcoin-osoite + Warning: Invalid Verium address + Varoitus: Virheellinen Verium-osoite Warning: Unknown change address @@ -2496,8 +2496,8 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Tämä on normaali maksu. - The Bitcoin address to send the payment to - Bitcoin-osoite johon maksu lähetetään + The Verium address to send the payment to + Verium-osoite johon maksu lähetetään Alt+A @@ -2544,8 +2544,8 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Aseta nimi tälle osoitteelle lisätäksesi sen käytettyjen osoitteiden listalle. - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Viesti joka liitettiin bitcoin: URI:iin tallennetaan rahansiirtoon viitteeksi. Tätä viestiä ei lähetetä Bitcoin-verkkoon. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Viesti joka liitettiin bitcoin: URI:iin tallennetaan rahansiirtoon viitteeksi. Tätä viestiä ei lähetetä Verium-verkkoon. Pay To: @@ -2593,8 +2593,8 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Voit allekirjoittaa viestit / sopimukset omalla osoitteellasi todistaaksesi että voit vastaanottaa siihen lähetetyt bitcoinit. Varo allekirjoittamasta mitään epämääräistä, sillä phishing-hyökkääjät voivat huijata sinua luovuttamaan henkilöllisyytesi allekirjoituksella. Allekirjoita ainoastaan täysin yksityiskohtainen selvitys siitä, mihin olet sitoutumassa. - The Bitcoin address to sign the message with - Bitcoin-osoite jolla viesti allekirjoitetaan + The Verium address to sign the message with + Verium-osoite jolla viesti allekirjoitetaan Choose previously used address @@ -2625,8 +2625,8 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Kopioi tämänhetkinen allekirjoitus leikepöydälle - Sign the message to prove you own this Bitcoin address - Allekirjoita viesti todistaaksesi, että omistat tämän Bitcoin-osoitteen + Sign the message to prove you own this Verium address + Allekirjoita viesti todistaaksesi, että omistat tämän Verium-osoitteen Sign &Message @@ -2649,12 +2649,12 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Syötä vastaanottajan osoite, viesti ja allekirjoitus (varmista että kopioit rivinvaihdot, välilyönnit, sarkaimet yms. täsmälleen) alle vahvistaaksesi viestin. Varo lukemasta allekirjoitukseen enempää kuin mitä viestissä itsessään on välttääksesi man-in-the-middle -hyökkäyksiltä. Huomaa, että tämä todentaa ainoastaan allekirjoittavan vastaanottajan osoitteen, tämä ei voi todentaa minkään tapahtuman lähettäjää! - The Bitcoin address the message was signed with - Bitcoin-osoite jolla viesti on allekirjoitettu + The Verium address the message was signed with + Verium-osoite jolla viesti on allekirjoitettu - Verify the message to ensure it was signed with the specified Bitcoin address - Tarkista viestin allekirjoitus varmistaaksesi, että se allekirjoitettiin tietyllä Bitcoin-osoitteella + Verify the message to ensure it was signed with the specified Verium address + Tarkista viestin allekirjoitus varmistaaksesi, että se allekirjoitettiin tietyllä Verium-osoitteella Verify &Message diff --git a/src/qt/locale/bitcoin_fil.ts b/src/qt/locale/bitcoin_fil.ts index 9ced1af626..0004c39a53 100644 --- a/src/qt/locale/bitcoin_fil.ts +++ b/src/qt/locale/bitcoin_fil.ts @@ -66,8 +66,8 @@ Mga address na tatanggap - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Ito ang iyong mga Bitcoin address para sa pagpapadala ng bayad. Laging suriin ang halaga at ang address na tatanggap bago magpadala ng coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Ito ang iyong mga Verium address para sa pagpapadala ng bayad. Laging suriin ang halaga at ang address na tatanggap bago magpadala ng coins. &Copy Address @@ -220,7 +220,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Pirmahan ang mensahe... @@ -322,8 +322,8 @@ Ang proxy ay <b>pinagana</b>: %1 - Send coins to a Bitcoin address - Magpadala ng coins sa Bitcoin address + Send coins to a Verium address + Magpadala ng coins sa Verium address Backup wallet to another location @@ -366,12 +366,12 @@ I-encrypt ang private keys na kabilang sa iyong walet - Sign messages with your Bitcoin addresses to prove you own them - Pumirma ng mga mensahe gamit ang iyong mga Bitcoin address upang mapatunayan na pagmamay-ari mo ang mga ito + Sign messages with your Verium addresses to prove you own them + Pumirma ng mga mensahe gamit ang iyong mga Verium address upang mapatunayan na pagmamay-ari mo ang mga ito - Verify messages to ensure they were signed with specified Bitcoin addresses - I-verify ang mga mensahe upang matiyak na sila ay napirmahan ng tinukoy na mga Bitcoin address. + Verify messages to ensure they were signed with specified Verium addresses + I-verify ang mga mensahe upang matiyak na sila ay napirmahan ng tinukoy na mga Verium address. &File @@ -470,8 +470,8 @@ Isara ang walet - Show the %1 help message to get a list with possible Bitcoin command-line options - Ipakita sa %1 ang tulong na mensahe upang makuha ang talaan ng mga posibleng opsyon ng Bitcoin command-line + Show the %1 help message to get a list with possible Verium command-line options + Ipakita sa %1 ang tulong na mensahe upang makuha ang talaan ng mga posibleng opsyon ng Verium command-line default wallet @@ -578,8 +578,8 @@ Walet ay na-encrypt at kasalukuyang naka-lock. - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - May nangyaring malubhang kamalian. Hindi na kayang magpatuloy ng ligtas ang Bitcoin at ito ay hihinto na. + A fatal error occurred. Verium can no longer continue safely and will quit. + May nangyaring malubhang kamalian. Hindi na kayang magpatuloy ng ligtas ang Verium at ito ay hihinto na. @@ -774,8 +774,8 @@ Baguhin ang address para sa pagpapadala - The entered address "%1" is not a valid Bitcoin address. - Ang address na in-enter "%1" ay hindi isang wastong Bitcoin address. + The entered address "%1" is not a valid Verium address. + Ang address na in-enter "%1" ay hindi isang wastong Verium address. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -871,8 +871,8 @@ Gamitin ang pasadyang data directory: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -883,8 +883,8 @@ Humigit-kumulang na %1 GB na data ay maiimbak sa direktoryong ito. - %1 will download and store a copy of the Bitcoin block chain. - %1 ay mag-do-download at magiimbak ng kopya ng Bitcoin blockchain. + %1 will download and store a copy of the Verium block chain. + %1 ay mag-do-download at magiimbak ng kopya ng Verium blockchain. The wallet will also be stored in this directory. @@ -1103,8 +1103,8 @@ Gastusin ang sukli na hindi pa nakumpirma - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Kusang buksan ang Bitcoin client port sa router. Gumagana lamang ito kapag ang iyong router ay sumusuporta ng UPnP at ito ay pinagana. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Kusang buksan ang Verium client port sa router. Gumagana lamang ito kapag ang iyong router ay sumusuporta ng UPnP at ito ay pinagana. Map port using &UPnP @@ -1119,8 +1119,8 @@ Ipahintulot ang mga papasok na koneksyon - Connect to the Bitcoin network through a SOCKS5 proxy. - Kumunekta sa Bitcoin network sa pamamagitan ng SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. + Kumunekta sa Verium network sa pamamagitan ng SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1155,8 +1155,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Kumunekta sa Bitcoin network sa pamamagitan ng hiwalay na SOCKS5 proxy para sa mga tagong serbisyo ng Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Kumunekta sa Verium network sa pamamagitan ng hiwalay na SOCKS5 proxy para sa mga tagong serbisyo ng Tor. &Window @@ -1266,8 +1266,8 @@ Anyo - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Ang ipinapakitang impormasyon ay maaaring luma na. Kusang mag-sy-synchronize ang iyong walet sa Bitcoin network pagkatapos maitatag ang koneksyon, ngunit hindi pa nakukumpleto ang prosesong ito. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Ang ipinapakitang impormasyon ay maaaring luma na. Kusang mag-sy-synchronize ang iyong walet sa Verium network pagkatapos maitatag ang koneksyon, ngunit hindi pa nakukumpleto ang prosesong ito. Watch-only: @@ -1369,8 +1369,8 @@ Hindi wasto and address ng bayad %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - Hindi ma-parse ang URI! Marahil ito ay dahil sa hindi wastong Bitcoin address o maling URI parameters + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + Hindi ma-parse ang URI! Marahil ito ay dahil sa hindi wastong Verium address o maling URI parameters Payment request file handling @@ -1471,8 +1471,8 @@ Halaga - Enter a Bitcoin address (e.g. %1) - I-enter ang Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) + I-enter ang Verium address (e.g. %1) %1 d @@ -1928,8 +1928,8 @@ Mensahe: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Opsyonal na mensahe na ilakip sa hiling ng bayad, na ipapakita pagbukas ng hiling. Tandaan: Ang mensahe ay hindi ipapadala kasama ng bayad sa Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Opsyonal na mensahe na ilakip sa hiling ng bayad, na ipapakita pagbukas ng hiling. Tandaan: Ang mensahe ay hindi ipapadala kasama ng bayad sa Verium network. An optional label to associate with the new receiving address. @@ -2341,8 +2341,8 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Tinatayang magsimula ng kumpirmasyon sa loob ng %n na mga block.Tinatayang magsimula ng kumpirmasyon sa loob ng %n na mga block. - Warning: Invalid Bitcoin address - Babala: Hindi wastong Bitcoin address + Warning: Invalid Verium address + Babala: Hindi wastong Verium address Warning: Unknown change address @@ -2384,8 +2384,8 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Ito ay normal na pagbabayad. - The Bitcoin address to send the payment to - Ang Bitcoin address kung saan ipapadala and bayad + The Verium address to send the payment to + Ang Verium address kung saan ipapadala and bayad Alt+A @@ -2432,8 +2432,8 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Mag-enter ng label para sa address na ito upang idagdag ito sa listahan ng mga gamit na address. - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Mensahe na nakalakip sa bitcoin: URI na kung saan maiimbak kasama ang transaksyon para sa iyong sanggunian. Tandaan: Ang mensaheng ito ay hindi ipapadala sa network ng Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Mensahe na nakalakip sa bitcoin: URI na kung saan maiimbak kasama ang transaksyon para sa iyong sanggunian. Tandaan: Ang mensaheng ito ay hindi ipapadala sa network ng Verium. Pay To: @@ -2481,8 +2481,8 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Maaari kang pumirma ng mga mensahe/kasunduan sa iyong mga address upang mapatunayan na maaari kang makatanggap ng mga bitcoin na ipinadala sa kanila. Mag-ingat na huwag pumirma ng anumang bagay na hindi malinaw o random, dahil ang mga phishing attack ay maaaring subukan na linlangin ka sa pagpirma ng iyong pagkakakilanlan sa kanila. Pumirma lamang ng kumpletong mga pahayag na sumasang-ayon ka. - The Bitcoin address to sign the message with - Ang Bitcoin address kung anong ipipirma sa mensahe + The Verium address to sign the message with + Ang Verium address kung anong ipipirma sa mensahe Choose previously used address @@ -2513,8 +2513,8 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Kopyahin ang kasalukuyang address sa system clipboard - Sign the message to prove you own this Bitcoin address - Pirmahan ang mensahe upang mapatunayan na pagmamay-ari mo ang Bitcoin address na ito + Sign the message to prove you own this Verium address + Pirmahan ang mensahe upang mapatunayan na pagmamay-ari mo ang Verium address na ito Sign &Message @@ -2537,12 +2537,12 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Ipasok ang address ng tatanggap, mensahe (tiyakin na kopyahin mo ang mga break ng linya, puwang, mga tab, atbp.) at pirma sa ibaba upang i-verify ang mensahe. Mag-ingat na huwag magbasa ng higit pa sa pirma kaysa sa kung ano ang nasa nakapirmang mensahe mismo, upang maiwasan na maloko ng man-in-the-middle attack. Tandaan na pinapatunayan lamang nito na nakakatanggap sa address na ito ang partido na pumirma, hindi nito napapatunayan ang pagpapadala ng anumang transaksyon! - The Bitcoin address the message was signed with - Ang Bitcoin address na pumirma sa mensahe + The Verium address the message was signed with + Ang Verium address na pumirma sa mensahe - Verify the message to ensure it was signed with the specified Bitcoin address - Tiyakin ang katotohanan ng mensahe upang siguruhin na ito'y napirmahan ng tinukoy na Bitcoin address + Verify the message to ensure it was signed with the specified Verium address + Tiyakin ang katotohanan ng mensahe upang siguruhin na ito'y napirmahan ng tinukoy na Verium address Verify &Message diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index 493700455d..699a773ef7 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -66,12 +66,12 @@ Adresses de réception - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Ce sont vos adresses Bitcoin pour envoyer des paiements. Vérifiez toujours le montant et l’adresse du destinataire avant d’envoyer des pièces. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Ce sont vos adresses Verium pour envoyer des paiements. Vérifiez toujours le montant et l’adresse du destinataire avant d’envoyer des pièces. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Ce sont vos adresses Bitcoin pour recevoir des paiements. Utilisez le bouton 'Créer une nouvelle adresse de réception' dans l’onglet Recevoir afin de créer de nouvelles adresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Ce sont vos adresses Verium pour recevoir des paiements. Utilisez le bouton 'Créer une nouvelle adresse de réception' dans l’onglet Recevoir afin de créer de nouvelles adresses. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Signer un &message… @@ -362,8 +362,8 @@ Le serveur mandataire est <b>activé</b> : %1 - Send coins to a Bitcoin address - Envoyer des pièces à une adresse Bitcoin + Send coins to a Verium address + Envoyer des pièces à une adresse Verium Backup wallet to another location @@ -406,12 +406,12 @@ Chiffrer les clés privées qui appartiennent à votre porte-monnaie - Sign messages with your Bitcoin addresses to prove you own them - Signer les messages avec vos adresses Bitcoin pour prouver que vous les détenez + Sign messages with your Verium addresses to prove you own them + Signer les messages avec vos adresses Verium pour prouver que vous les détenez - Verify messages to ensure they were signed with specified Bitcoin addresses - Vérifier les messages pour s’assurer qu’ils ont été signés avec les adresses Bitcoin indiquées + Verify messages to ensure they were signed with specified Verium addresses + Vérifier les messages pour s’assurer qu’ils ont été signés avec les adresses Verium indiquées &File @@ -450,8 +450,8 @@ Options de ligne de &commande - %n active connection(s) to Bitcoin network - %n connexion active avec le réseau Bitcoin%n connexions actives avec le réseau Bitcoin + %n active connection(s) to Verium network + %n connexion active avec le réseau Verium%n connexions actives avec le réseau Verium Indexing blocks on disk... @@ -518,8 +518,8 @@ Fermer le porte-monnaie - Show the %1 help message to get a list with possible Bitcoin command-line options - Afficher le message d’aide de %1 pour obtenir la liste des options de ligne de commande Bitcoin possibles. + Show the %1 help message to get a list with possible Verium command-line options + Afficher le message d’aide de %1 pour obtenir la liste des options de ligne de commande Verium possibles. default wallet @@ -630,8 +630,8 @@ Le porte-monnaie est <b>chiffré</b> et actuellement <b>verrouillé</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Une erreur fatale est survenue. Bitcoin ne peut plus continuer en toute sécurité et va s’arrêter. + A fatal error occurred. Verium can no longer continue safely and will quit. + Une erreur fatale est survenue. Verium ne peut plus continuer en toute sécurité et va s’arrêter. @@ -874,8 +874,8 @@ Modifier l’adresse d’envoi - The entered address "%1" is not a valid Bitcoin address. - L’adresse saisie « %1 » n’est pas une adresse Bitcoin valide. + The entered address "%1" is not a valid Verium address. + L’adresse saisie « %1 » n’est pas une adresse Verium valide. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -975,8 +975,8 @@ Utiliser un répertoire de données personnalisé : - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ Approximativement %1 Go de données seront stockés dans ce répertoire. - %1 will download and store a copy of the Bitcoin block chain. - %1 téléchargera et stockera une copie de la chaîne de blocs Bitcoin. + %1 will download and store a copy of the Verium block chain. + %1 téléchargera et stockera une copie de la chaîne de blocs Verium. The wallet will also be stored in this directory. @@ -1027,7 +1027,7 @@ Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Les transactions récentes ne sont peut-être pas encore visibles et par conséquent le solde de votre porte-monnaie est peut-être erroné. Ces informations seront justes quand votre porte-monnaie aura fini de se synchroniser avec le réseau Bitcoin, comme décrit ci-dessous. + Les transactions récentes ne sont peut-être pas encore visibles et par conséquent le solde de votre porte-monnaie est peut-être erroné. Ces informations seront justes quand votre porte-monnaie aura fini de se synchroniser avec le réseau Verium, comme décrit ci-dessous. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -1231,8 +1231,8 @@ &Dépenser la monnaie non confirmée - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Ouvrir automatiquement le port du client Bitcoin sur le routeur. Cela ne fonctionne que si votre routeur prend en charge l’UPnP et si la fonction est activée. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Ouvrir automatiquement le port du client Verium sur le routeur. Cela ne fonctionne que si votre routeur prend en charge l’UPnP et si la fonction est activée. Map port using &UPnP @@ -1247,8 +1247,8 @@ Permettre les connexions e&ntrantes - Connect to the Bitcoin network through a SOCKS5 proxy. - Se connecter au réseau Bitcoin par un mandataire SOCKS5. + Connect to the Verium network through a SOCKS5 proxy. + Se connecter au réseau Verium par un mandataire SOCKS5. &Connect through SOCKS5 proxy (default proxy): @@ -1283,8 +1283,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Se connecter au réseau Bitcoin au travers d’un mandataire SOCKS5 séparé pour les services cachés de Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Se connecter au réseau Verium au travers d’un mandataire SOCKS5 séparé pour les services cachés de Tor. &Window @@ -1394,8 +1394,8 @@ Formulaire - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Les informations affichées peuvent être obsolètes. Votre porte-monnaie se synchronise automatiquement avec le réseau Bitcoin dès qu’une connexion est établie, mais ce processus n’est pas encore achevé. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Les informations affichées peuvent être obsolètes. Votre porte-monnaie se synchronise automatiquement avec le réseau Verium dès qu’une connexion est établie, mais ce processus n’est pas encore achevé. Watch-only: @@ -1505,8 +1505,8 @@ Adresse de paiement invalide %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - L’URI ne peut pas être analysée ! Cela peut être causé par une adresse Bitcoin invalide ou par des paramètres d’URI mal formés. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + L’URI ne peut pas être analysée ! Cela peut être causé par une adresse Verium invalide ou par des paramètres d’URI mal formés. Payment request file handling @@ -1607,8 +1607,8 @@ Montant - Enter a Bitcoin address (e.g. %1) - Saisir une adresse Bitcoin (p. ex. %1) + Enter a Verium address (e.g. %1) + Saisir une adresse Verium (p. ex. %1) %1 d @@ -2068,8 +2068,8 @@ M&essage : - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Un message facultatif à joindre à la demande de paiement et qui sera affiché à l’ouverture de celle-ci. Note : Le message ne sera pas envoyé avec le paiement par le réseau Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Un message facultatif à joindre à la demande de paiement et qui sera affiché à l’ouverture de celle-ci. Note : Le message ne sera pas envoyé avec le paiement par le réseau Verium. An optional label to associate with the new receiving address. @@ -2497,8 +2497,8 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Il est estimé que la confirmation commencera dans %n bloc.Il est estimé que la confirmation commencera dans %n blocs. - Warning: Invalid Bitcoin address - Avertissement : L’adresse Bitcoin est invalide + Warning: Invalid Verium address + Avertissement : L’adresse Verium est invalide Warning: Unknown change address @@ -2540,8 +2540,8 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Ceci est un paiement normal. - The Bitcoin address to send the payment to - L’adresse Bitcoin à laquelle envoyer le paiement + The Verium address to send the payment to + L’adresse Verium à laquelle envoyer le paiement Alt+A @@ -2588,8 +2588,8 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Saisir une étiquette pour cette adresse afin de l’ajouter à la liste d’adresses utilisées - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Un message qui était joint à l’URI bitcoin: et qui sera stocké avec la transaction pour référence. Note : Ce message ne sera pas envoyé par le réseau Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Un message qui était joint à l’URI bitcoin: et qui sera stocké avec la transaction pour référence. Note : Ce message ne sera pas envoyé par le réseau Verium. Pay To: @@ -2637,8 +2637,8 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Vous pouvez signer des messages ou des accords avec vos adresses pour prouver que vous pouvez recevoir des bitcoins à ces dernières. Faites attention de ne rien signer de vague ou au hasard, car des attaques d’hameçonnage pourraient essayer de vous faire signer avec votre identité afin de l’usurper. Ne signez que des déclarations entièrement détaillées et avec lesquelles vous êtes d’accord. - The Bitcoin address to sign the message with - L’adresse Bitcoin avec laquelle signer le message + The Verium address to sign the message with + L’adresse Verium avec laquelle signer le message Choose previously used address @@ -2669,8 +2669,8 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Copier la signature actuelle dans le presse-papiers - Sign the message to prove you own this Bitcoin address - Signer le message afin de prouver que vous détenez cette adresse Bitcoin + Sign the message to prove you own this Verium address + Signer le message afin de prouver que vous détenez cette adresse Verium Sign &Message @@ -2693,12 +2693,12 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Saisir ci-dessous l’adresse du destinataire, le message (s’assurer de copier fidèlement les retours à la ligne, les espaces, les tabulations, etc.) et la signature pour vérifier le message. Faire attention à ne pas déduire davantage de la signature que ce qui est contenu dans le message signé même, pour éviter d’être trompé par une attaque d’homme du milieu. Prendre en compte que cela ne fait que prouver que le signataire reçoit l’adresse et ne peut pas prouver la provenance d’une transaction ! - The Bitcoin address the message was signed with - L’adresse Bitcoin avec laquelle le message a été signé + The Verium address the message was signed with + L’adresse Verium avec laquelle le message a été signé - Verify the message to ensure it was signed with the specified Bitcoin address - Vérifier le message pour s’assurer qu’il a été signé avec l’adresse Bitcoin indiquée + Verify the message to ensure it was signed with the specified Verium address + Vérifier le message pour s’assurer qu’il a été signé avec l’adresse Verium indiquée Verify &Message diff --git a/src/qt/locale/bitcoin_he.ts b/src/qt/locale/bitcoin_he.ts index 8f9e59f5f7..0228439c47 100644 --- a/src/qt/locale/bitcoin_he.ts +++ b/src/qt/locale/bitcoin_he.ts @@ -66,11 +66,11 @@ כתובות לקבלה - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. אלו הן כתובות הביטקוין שלך לשליחת תשלומים. חשוב לבדוק את הסכום ואת הכתובת המקבלת לפני שליחת מטבעות. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. אלה כתובות הביטקוין שלך לקבלת תשלומים. השתמש בלחצן 'צור כתובת קבלה חדשה' בכרטיסייה קבלה כדי ליצור כתובות חדשות. @@ -228,7 +228,7 @@ - BitcoinGUI + VeriumGUI Sign &message... חתום &הודעה... @@ -330,7 +330,7 @@ שרת הפרוקסי <b>פעיל</b>: %1 - Send coins to a Bitcoin address + Send coins to a Verium address שליחת מטבעות לכתובת ביטקוין @@ -374,11 +374,11 @@ הצפנת המפתחות הפרטיים ששייכים לארנק שלך - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them חתום על הודעות עם כתובות הביטקוין שלך כדי להוכיח שהן בבעלותך - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses אמת הודעות כדי להבטיח שהן נחתמו עם כתובת ביטקוין מסוימות @@ -418,7 +418,7 @@ אפשרויות &שורת הפקודה - %n active connection(s) to Bitcoin network + %n active connection(s) to Verium network חיבור אחד פעיל לרשת ביטקוין%n חיבורים פעילים לרשת ביטקוין%n חיבורים פעילים לרשת ביטקוין%n חיבורים פעילים לרשת ביטקוין @@ -486,7 +486,7 @@ סגירת ארנק - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options יש להציג את הודעת העזרה של %1 כדי להציג רשימה עם אפשרויות שורת פקודה לביטקוין @@ -594,7 +594,7 @@ הארנק <b>מוצפן</b> ו<b>נעול</b> כרגע - A fatal error occurred. Bitcoin can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. אירעה שגיאה חמורה. אין אפשרות להשתמש עוד בביטקוין באופן מאובטח והיישום ייסגר. @@ -790,7 +790,7 @@ עריכת כתובת השליחה - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. הכתובת שהוקלדה „%1” היא אינה כתובת ביטקוין תקנית. @@ -887,7 +887,7 @@ שימוש בתיקיית נתונים מותאמת אישית: - Bitcoin + Verium ביטקוין @@ -899,7 +899,7 @@ מידע בנפח של כ-%1 ג׳יגה-בייט יאוחסן בתיקייה זו. - %1 will download and store a copy of the Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. %1 תוריד ותאחסן עותק של שרשרת הבלוקים של ביטקוין. @@ -1127,7 +1127,7 @@ עודף &בלתי מאושר מההשקעה - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. פתיחת הפתחה של ביטקוין בנתב באופן אוטומטי. עובד רק אם UPnP מופעל ונתמך בנתב. @@ -1143,7 +1143,7 @@ לאפשר חיבורים &נכנסים - Connect to the Bitcoin network through a SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. התחבר לרשת הביטקוין דרך פרוקסי SOCKS5. @@ -1179,7 +1179,7 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. התחברות לרשת ביטקוין דרך מתווך SOCKS5 נפרד לשירותי Tor נסתרים. @@ -1290,7 +1290,7 @@ טופס - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. המידע המוצג עשוי להיות מיושן. הארנק שלך מסתנכרן באופן אוטומטי עם רשת הביטקוין לאחר יצירת החיבור, אך התהליך טרם הסתיים. @@ -1393,7 +1393,7 @@ כתובת תשלום שגויה %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. לא ניתן לנתח את כתובת המשאב! מצב זה יכול לקרות עקב כתובת ביטקוין שגויה או פרמטרים שגויים בכתובת המשאב. @@ -1495,7 +1495,7 @@ כמות - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) נא להזין כתובת ביטקוין (למשל: %1) @@ -1952,7 +1952,7 @@ הו&דעה: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. הודעת רשות לצירוף לבקשת התשלום שתוצג בעת פתיחת הבקשה. לתשומת לבך: ההודעה לא תישלח עם התשלום ברשת ביטקוין. @@ -2365,7 +2365,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p האמדן לתחילת ביצוע אימות בתוך בלוק %n האמדן לתחילת ביצוע אימות בתוך %n בלוקיםהאמדן לתחילת ביצוע אימות בתוך %n בלוקיםC. - Warning: Invalid Bitcoin address + Warning: Invalid Verium address אזהרה: כתובת ביטקיון שגויה @@ -2408,7 +2408,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p זהו תשלום רגיל. - The Bitcoin address to send the payment to + The Verium address to send the payment to כתובת הביטקוין של המוטב @@ -2456,7 +2456,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p יש להזין תווית עבור כתובת זו כדי להוסיף אותה לרשימת הכתובות בשימוש - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. הודעה שצורפה לביטקוין: כתובת שתאוחסן בהעברה לצורך מעקב מצדך. לתשומת לבך: הודעה זו לא תישלח ברשת הביטקוין. @@ -2505,7 +2505,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p באפשרותך לחתום על הודעות/הסכמים באמצעות הכתובות שלך, כדי להוכיח שאתה יכול לקבל את הביטקוינים הנשלחים אליהן. היזהר לא לחתום על תוכן עמום או אקראי, מכיוון שתקיפות פישינג עשויות לנסות לגנוב את הזהות שלך. חתום רק על הצהרות מפורטות שאתה מסכים להן. - The Bitcoin address to sign the message with + The Verium address to sign the message with כתובת הביטקוין אתה לחתום אתה את ההודעה @@ -2537,7 +2537,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p העתקת החתימה הנוכחית ללוח הגזירים - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address ניתן לחתום על ההודעה כדי להוכיח שכתובת הביטקוין הזו בבעלותך. @@ -2561,11 +2561,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p יש להזין את כתובת הנמען, ההודעה (נא לוודא שמעתיקים במדויק את תווי קפיצות השורה, רווחים, טאבים וכדומה). והחותימה מתחת אשר מאמתת את ההודעה. יש להזהר שלא לקרוא לתוך החתימה יותר מאשר בהודעה החתומה עצמה, כדי להמנע מניצול לרעה של המתווך שבדרך. יש לשים לב שהדגר רק מוכיח שהצד החותם מקבל עם הכתובת. הדבר אינו מוכיח משלוח כלשהו של עיסקה! - The Bitcoin address the message was signed with + The Verium address the message was signed with כתובת הביטקוין שאתה נחתמה ההודעה - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address ניתן לאמת את ההודעה כדי להבטיח שהיא נחתמה עם כתובת הביטקוין הנתונה diff --git a/src/qt/locale/bitcoin_hi.ts b/src/qt/locale/bitcoin_hi.ts index 50c07a794d..808500d7fc 100644 --- a/src/qt/locale/bitcoin_hi.ts +++ b/src/qt/locale/bitcoin_hi.ts @@ -62,7 +62,7 @@ पतों को प्राप्त कर रहा है - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. ये भुगतान भेजने के लिए ये आपके बिटकॉइन पते हैं। हमेशा सिक्के भेजने से पहले राशि और प्राप्तकर्ता पते की जांच करें। @@ -184,7 +184,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Synchronizing with network... नेटवर्क से समकालिक (मिल) रहा है ... @@ -340,7 +340,7 @@ Intro - Bitcoin + Verium बीटकोइन diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/bitcoin_hr.ts index 142770139c..0b3bedf450 100644 --- a/src/qt/locale/bitcoin_hr.ts +++ b/src/qt/locale/bitcoin_hr.ts @@ -66,12 +66,12 @@ Adrese primatelja - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Ovo su vaše Bitcoin adrese za slanje novca. Uvijek provjerite iznos i adresu primatelja prije slanja novca. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Ovo su vaše Verium adrese za slanje novca. Uvijek provjerite iznos i adresu primatelja prije slanja novca. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Ovo su vaše Bitcoin adrese za primanje novca. Preporučeno je da koristite novu primateljsku adresu za svaku transakciju. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Ovo su vaše Verium adrese za primanje novca. Preporučeno je da koristite novu primateljsku adresu za svaku transakciju. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... P&otpišite poruku... @@ -362,8 +362,8 @@ Proxy je <b>uključen</b>: %1 - Send coins to a Bitcoin address - Pošaljite novac na Bitcoin adresu + Send coins to a Verium address + Pošaljite novac na Verium adresu Backup wallet to another location @@ -406,12 +406,12 @@ Šifrirajte privatne ključeve u novčaniku - Sign messages with your Bitcoin addresses to prove you own them - Poruku potpišemo s Bitcoin adresom, kako bi dokazali vlasništvo nad tom adresom + Sign messages with your Verium addresses to prove you own them + Poruku potpišemo s Verium adresom, kako bi dokazali vlasništvo nad tom adresom - Verify messages to ensure they were signed with specified Bitcoin addresses - Provjerite poruku da je potpisana s navedenom Bitcoin adresom + Verify messages to ensure they were signed with specified Verium addresses + Provjerite poruku da je potpisana s navedenom Verium adresom &File @@ -450,8 +450,8 @@ Opcije &naredbene linije - %n active connection(s) to Bitcoin network - %n aktivna veza na Bitcoin mrežu%n aktivnih veza na Bitcoin mrežu%n aktivnih veza na Bitcoin mrežu + %n active connection(s) to Verium network + %n aktivna veza na Verium mrežu%n aktivnih veza na Verium mrežu%n aktivnih veza na Verium mrežu Indexing blocks on disk... @@ -518,7 +518,7 @@ Zatvorite novčanik - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options Prikažite pomoć programa %1 kako biste ispisali moguće opcije preko terminala @@ -629,8 +629,8 @@ Novčanik je <b>šifriran</b> i trenutno <b>zaključan</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Dogodila se kobna greška. Bitcoin ne može više sigurno nastaviti te će se zatvoriti. + A fatal error occurred. Verium can no longer continue safely and will quit. + Dogodila se kobna greška. Verium ne može više sigurno nastaviti te će se zatvoriti. @@ -873,8 +873,8 @@ Uredi adresu za slanje - The entered address "%1" is not a valid Bitcoin address. - Upisana adresa "%1" nije valjana Bitcoin adresa. + The entered address "%1" is not a valid Verium address. + Upisana adresa "%1" nije valjana Verium adresa. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -974,8 +974,8 @@ Odaberite različitu podatkovnu mapu: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -990,8 +990,8 @@ Otprilike %1 GB podataka bit će spremljeno u ovoj mapi. - %1 will download and store a copy of the Bitcoin block chain. - %1 preuzet će i pohraniti kopiju Bitcoinovog lanca blokova. + %1 will download and store a copy of the Verium block chain. + %1 preuzet će i pohraniti kopiju Veriumovog lanca blokova. The wallet will also be stored in this directory. @@ -1026,7 +1026,7 @@ Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Nedavne transakcije možda još nisu vidljive pa vam stanje novčanika može biti netočno. Ove informacije bit će točne nakon što vaš novčanik dovrši sinkronizaciju s Bitcoinovom mrežom, kako je opisano dolje. + Nedavne transakcije možda još nisu vidljive pa vam stanje novčanika može biti netočno. Ove informacije bit će točne nakon što vaš novčanik dovrši sinkronizaciju s Veriumovom mrežom, kako je opisano dolje. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -1230,8 +1230,8 @@ &Trošenje nepotvrđenih vraćenih iznosa - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Automatski otvori port Bitcoin klijenta na ruteru. To radi samo ako ruter podržava UPnP i ako je omogućen. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Automatski otvori port Verium klijenta na ruteru. To radi samo ako ruter podržava UPnP i ako je omogućen. Map port using &UPnP @@ -1246,8 +1246,8 @@ Dozvolite dolazeće veze - Connect to the Bitcoin network through a SOCKS5 proxy. - Spojite se na Bitcoin mrežu kroz SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. + Spojite se na Verium mrežu kroz SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1282,8 +1282,8 @@ Tora - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Spojite se na Bitcoin mrežu kroz zaseban SOCKS5 proxy za povezivanje na Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Spojite se na Verium mrežu kroz zaseban SOCKS5 proxy za povezivanje na Tor. &Window @@ -1393,8 +1393,8 @@ Oblik - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Prikazani podatci mogu biti zastarjeli. Vaš novčanik se automatski sinkronizira s Bitcoin mrežom kada je veza uspostavljena, ali taj proces još nije završen. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Prikazani podatci mogu biti zastarjeli. Vaš novčanik se automatski sinkronizira s Verium mrežom kada je veza uspostavljena, ali taj proces još nije završen. Watch-only: @@ -1504,8 +1504,8 @@ Nevažeća adresa za plaćanje %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - Ne može se parsirati URI! Uzrok tomu može biti nevažeća Bitcoin adresa ili neispravni parametri kod URI-a. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + Ne može se parsirati URI! Uzrok tomu može biti nevažeća Verium adresa ili neispravni parametri kod URI-a. Payment request file handling @@ -1606,8 +1606,8 @@ Iznos - Enter a Bitcoin address (e.g. %1) - Unesite Bitcoin adresu (npr. %1) + Enter a Verium address (e.g. %1) + Unesite Verium adresu (npr. %1) %1 d @@ -2067,8 +2067,8 @@ &Poruka: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Opcionalna poruka koja se može dodati kao privitak zahtjevu za plaćanje. Bit će prikazana kad je zahtjev otvoren. Napomena: Ova poruka neće biti poslana zajedno s uplatom preko Bitcoin mreže. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Opcionalna poruka koja se može dodati kao privitak zahtjevu za plaćanje. Bit će prikazana kad je zahtjev otvoren. Napomena: Ova poruka neće biti poslana zajedno s uplatom preko Verium mreže. An optional label to associate with the new receiving address. @@ -2341,7 +2341,7 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Kada je kapacitet transakcija manja od prostora u blokovima, rudari i čvorovi prenositelji mogu zatražiti minimalnu naknadu. Prihvatljivo je platiti samo ovu minimalnu naknadu, ali budite svjesni da ovime može nastati transakcija koja se nikad ne potvrđuje čim je potražnja za korištenjem Bitcoina veća nego što mreža može obraditi. + Kada je kapacitet transakcija manja od prostora u blokovima, rudari i čvorovi prenositelji mogu zatražiti minimalnu naknadu. Prihvatljivo je platiti samo ovu minimalnu naknadu, ali budite svjesni da ovime može nastati transakcija koja se nikad ne potvrđuje čim je potražnja za korištenjem Veriuma veća nego što mreža može obraditi. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2496,8 +2496,8 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Procijenjeno je da će početi potvrđivanje unutar %n bloka.Procijenjeno je da će početi potvrđivanje unutar %n bloka.Procijenjeno je da će početi potvrđivanje unutar %n blokova. - Warning: Invalid Bitcoin address - Upozorenje: Nevažeća Bitcoin adresa + Warning: Invalid Verium address + Upozorenje: Nevažeća Verium adresa Warning: Unknown change address @@ -2539,8 +2539,8 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Ovo je normalna uplata. - The Bitcoin address to send the payment to - Bitcoin adresa na koju ćete poslati uplatu + The Verium address to send the payment to + Verium adresa na koju ćete poslati uplatu Alt+A @@ -2587,8 +2587,8 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Unesite oznaku za ovu adresu kako bi ju dodali u vaš adresar - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Poruka koja je dodana uplati: URI koji će biti spremljen s transakcijom za referencu. Napomena: Ova poruka neće biti poslana preko Bitcoin mreže. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Poruka koja je dodana uplati: URI koji će biti spremljen s transakcijom za referencu. Napomena: Ova poruka neće biti poslana preko Verium mreže. Pay To: @@ -2636,8 +2636,8 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Možete potpisati poruke/dogovore svojim adresama kako biste dokazali da možete pristupiti bitcoinima poslanim na te adrese. Budite oprezni da ne potpisujte ništa nejasno ili nasumično, jer napadi phishingom vas mogu prevariti da prepišite svoj identitet njima. Potpisujte samo detaljno objašnjene izjave s kojima se slažete. - The Bitcoin address to sign the message with - Bitcoin adresa pomoću koje ćete potpisati poruku + The Verium address to sign the message with + Verium adresa pomoću koje ćete potpisati poruku Choose previously used address @@ -2668,8 +2668,8 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Kopirajte trenutni potpis u međuspremnik - Sign the message to prove you own this Bitcoin address - Potpišite poruku kako biste dokazali da posjedujete ovu Bitcoin adresu + Sign the message to prove you own this Verium address + Potpišite poruku kako biste dokazali da posjedujete ovu Verium adresu Sign &Message @@ -2692,12 +2692,12 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Unesite primateljevu adresu, poruku (provjerite da kopirate prekide crta, razmake, tabove, itd. točno) i potpis ispod da provjerite poruku. Pazite da ne pridodate veće značenje potpisu nego što je sadržano u samoj poruci kako biste izbjegli napad posrednika (MITM attack). Primijetite da ovo samo dokazuje da stranka koja potpisuje prima na adresu. Ne može dokažati da je neka stranka poslala transakciju! - The Bitcoin address the message was signed with - Bitcoin adresa kojom je poruka potpisana + The Verium address the message was signed with + Verium adresa kojom je poruka potpisana - Verify the message to ensure it was signed with the specified Bitcoin address - Provjerite poruku da budete sigurni da je potpisana zadanom Bitcoin adresom + Verify the message to ensure it was signed with the specified Verium address + Provjerite poruku da budete sigurni da je potpisana zadanom Verium adresom Verify &Message diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts index 0a6f718e14..aff4d5192d 100644 --- a/src/qt/locale/bitcoin_hu.ts +++ b/src/qt/locale/bitcoin_hu.ts @@ -66,8 +66,8 @@ Fogadási cím - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Ezek a Bitcoin címeid kifizetések küldéséhez. Mindíg ellenőrizd az összeget és a fogadó címet mielőtt coinokat küldenél. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Ezek a Verium címeid kifizetések küldéséhez. Mindíg ellenőrizd az összeget és a fogadó címet mielőtt coinokat küldenél. &Copy Address @@ -248,7 +248,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Üzenet aláírása... @@ -358,8 +358,8 @@ Proxy <b>aktív</b>: %1 - Send coins to a Bitcoin address - Bitcoin küldése megadott címre + Send coins to a Verium address + Verium küldése megadott címre Backup wallet to another location @@ -402,12 +402,12 @@ A tárcádhoz tartozó privát kulcsok titkosítása - Sign messages with your Bitcoin addresses to prove you own them - Üzenetek aláírása a Bitcoin-címmeiddel, amivel bizonyítod, hogy a cím a sajátod + Sign messages with your Verium addresses to prove you own them + Üzenetek aláírása a Verium-címmeiddel, amivel bizonyítod, hogy a cím a sajátod - Verify messages to ensure they were signed with specified Bitcoin addresses - Üzenetek ellenőrzése, hogy valóban a megjelölt Bitcoin-címekkel vannak-e aláírva + Verify messages to ensure they were signed with specified Verium addresses + Üzenetek ellenőrzése, hogy valóban a megjelölt Verium-címekkel vannak-e aláírva &File @@ -446,8 +446,8 @@ Paran&cssor kapcsolók - %n active connection(s) to Bitcoin network - %n aktív kapcsolat a Bitcoin hálózathoz%n aktív kapcsolat a Bitcoin hálózathoz + %n active connection(s) to Verium network + %n aktív kapcsolat a Verium hálózathoz%n aktív kapcsolat a Verium hálózathoz Indexing blocks on disk... @@ -514,8 +514,8 @@ Tárca bezárása - Show the %1 help message to get a list with possible Bitcoin command-line options - A %1 súgó megjelenítése a Bitcoin lehetséges parancssori kapcsolóinak listájával + Show the %1 help message to get a list with possible Verium command-line options + A %1 súgó megjelenítése a Verium lehetséges parancssori kapcsolóinak listájával default wallet @@ -621,8 +621,8 @@ A tárca <b>titkosítva</b> és jelenleg <b>bezárva</b>. - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Végzetes hiba történt. A Bitcoin működése nem biztonságos és hamarosan leáll. + A fatal error occurred. Verium can no longer continue safely and will quit. + Végzetes hiba történt. A Verium működése nem biztonságos és hamarosan leáll. @@ -857,8 +857,8 @@ Küldő cím szerkesztése - The entered address "%1" is not a valid Bitcoin address. - A megadott "%1" cím nem egy érvényes Bitcoin-cím. + The entered address "%1" is not a valid Verium address. + A megadott "%1" cím nem egy érvényes Verium-cím. Could not unlock wallet. @@ -950,8 +950,8 @@ Saját adatkönyvtár használata: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -966,8 +966,8 @@ Hozzávetőlegesen %1 GB adatot fogunk ebben a könyvtárban tárolni. - %1 will download and store a copy of the Bitcoin block chain. - %1 le fog töltődni és a Bitcoin blokk lánc egy másolatát fogja tárolni. + %1 will download and store a copy of the Verium block chain. + %1 le fog töltődni és a Verium blokk lánc egy másolatát fogja tárolni. The wallet will also be stored in this directory. @@ -1190,8 +1190,8 @@ &Költése a a jóváhagyatlan visszajárónak - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - A Bitcoin-kliens portjának automatikus megnyitása a routeren. Ez csak akkor működik, ha a routered támogatja az UPnP-t és az engedélyezve is van rajta. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + A Verium-kliens portjának automatikus megnyitása a routeren. Ez csak akkor működik, ha a routered támogatja az UPnP-t és az engedélyezve is van rajta. Map port using &UPnP @@ -1206,8 +1206,8 @@ Bejövő kapcsolatok engedélyezése. - Connect to the Bitcoin network through a SOCKS5 proxy. - Csatlakozás a Bitcoin hálózatához SOCKS5 proxyn keresztül + Connect to the Verium network through a SOCKS5 proxy. + Csatlakozás a Verium hálózatához SOCKS5 proxyn keresztül &Connect through SOCKS5 proxy (default proxy): @@ -1242,8 +1242,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Csatlakozás a Bitcoin hálózathoz külön SOCKS5 proxy használatával a Tor rejtett szolgáltatásainak eléréséhez. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Csatlakozás a Verium hálózathoz külön SOCKS5 proxy használatával a Tor rejtett szolgáltatásainak eléréséhez. &Window @@ -1349,8 +1349,8 @@ Űrlap - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - A kijelzett információ lehet, hogy elavult. A kapcsolat létrehozatalát követően tárcája automatikusan szinkronba kerül a Bitcoin hálózattal, de ez a folyamat még nem fejeződött be. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + A kijelzett információ lehet, hogy elavult. A kapcsolat létrehozatalát követően tárcája automatikusan szinkronba kerül a Verium hálózattal, de ez a folyamat még nem fejeződött be. Watch-only: @@ -1440,8 +1440,8 @@ Érvénytelen fizetési cím %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - Nem sikerült az URI elemzése! Ezt okozhatja érvénytelen Bitcoin cím, vagy rossz URI paraméterezés. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + Nem sikerült az URI elemzése! Ezt okozhatja érvénytelen Verium cím, vagy rossz URI paraméterezés. Payment request file handling @@ -1538,8 +1538,8 @@ Összeg - Enter a Bitcoin address (e.g. %1) - Ad meg egy Bitcoin címet (pl: %1) + Enter a Verium address (e.g. %1) + Ad meg egy Verium címet (pl: %1) %1 d @@ -1975,8 +1975,8 @@ &Üzenet: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Egy opcionális üzenet csatolása a fizetési kérelemhez, amely megjelenik a kérelem megnyitásakor. Megjegyzés: Az üzenet nem lesz elküldve a fizetséggel a Bitcoin hálózaton keresztül. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Egy opcionális üzenet csatolása a fizetési kérelemhez, amely megjelenik a kérelem megnyitásakor. Megjegyzés: Az üzenet nem lesz elküldve a fizetséggel a Verium hálózaton keresztül. An optional label to associate with the new receiving address. @@ -2344,8 +2344,8 @@ A fizetési kérelem lejárt. - Warning: Invalid Bitcoin address - Figyelmeztetés: Érvénytelen Bitcoin cím + Warning: Invalid Verium address + Figyelmeztetés: Érvénytelen Verium cím Warning: Unknown change address @@ -2387,8 +2387,8 @@ Ez normál fizetés. - The Bitcoin address to send the payment to - Erre a Bitcoin címre küldje az összeget + The Verium address to send the payment to + Erre a Verium címre küldje az összeget Alt+A @@ -2472,8 +2472,8 @@ Üzenet aláírása... - The Bitcoin address to sign the message with - Bitcoin cím, amivel alá kívánja írni az üzenetet + The Verium address to sign the message with + Verium cím, amivel alá kívánja írni az üzenetet Choose previously used address @@ -2504,7 +2504,7 @@ A jelenleg kiválasztott aláírás másolása a rendszer-vágólapra - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Üzenet @@ -2520,12 +2520,12 @@ Üzenet ellenőrzése - The Bitcoin address the message was signed with - Bitcoin cím, amivel aláírta az üzenetet + The Verium address the message was signed with + Verium cím, amivel aláírta az üzenetet - Verify the message to ensure it was signed with the specified Bitcoin address - Ellenőrizze az üzenetet, hogy valóban a megjelölt Bitcoin címmel van-e aláírva + Verify the message to ensure it was signed with the specified Verium address + Ellenőrizze az üzenetet, hogy valóban a megjelölt Verium címmel van-e aláírva Verify &Message diff --git a/src/qt/locale/bitcoin_id.ts b/src/qt/locale/bitcoin_id.ts index 2937c844e9..53fad44833 100644 --- a/src/qt/locale/bitcoin_id.ts +++ b/src/qt/locale/bitcoin_id.ts @@ -66,12 +66,12 @@ Alamat-alamat penerima - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Berikut ialah alamat-alamat Bitcoin Anda yang digunakan untuk mengirimkan pembayaran. Selalu periksa jumlah dan alamat penerima sebelum mengirimkan koin. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Berikut ialah alamat-alamat Verium Anda yang digunakan untuk mengirimkan pembayaran. Selalu periksa jumlah dan alamat penerima sebelum mengirimkan koin. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Ini adalah alamat Bitcoin untuk menerima pembayaran. Gunakan tombol 'Buat alamat penerima baru' di tab terima untuk membuat alamat baru. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Ini adalah alamat Verium untuk menerima pembayaran. Gunakan tombol 'Buat alamat penerima baru' di tab terima untuk membuat alamat baru. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Pesan &penanda... @@ -362,8 +362,8 @@ Proxy di <b>aktifkan</b>: %1 - Send coins to a Bitcoin address - Kirim koin ke alamat Bitcoin + Send coins to a Verium address + Kirim koin ke alamat Verium Backup wallet to another location @@ -406,12 +406,12 @@ Enkripsi private key yang dimiliki dompet Anda - Sign messages with your Bitcoin addresses to prove you own them - Tanda tangani sebuah pesan menggunakan alamat Bitcoin Anda untuk membuktikan bahwa Anda adalah pemilik alamat tersebut + Sign messages with your Verium addresses to prove you own them + Tanda tangani sebuah pesan menggunakan alamat Verium Anda untuk membuktikan bahwa Anda adalah pemilik alamat tersebut - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifikasi pesan untuk memastikan bahwa pesan tersebut ditanda tangani oleh suatu alamat Bitcoin tertentu + Verify messages to ensure they were signed with specified Verium addresses + Verifikasi pesan untuk memastikan bahwa pesan tersebut ditanda tangani oleh suatu alamat Verium tertentu &File @@ -450,8 +450,8 @@ &pilihan Command-line - %n active connection(s) to Bitcoin network - %n koneksi aktif ke jaringan Bitcoin + %n active connection(s) to Verium network + %n koneksi aktif ke jaringan Verium Indexing blocks on disk... @@ -518,8 +518,8 @@ Tutup wallet - Show the %1 help message to get a list with possible Bitcoin command-line options - Tampilkan %1 pesan bantuan untuk mendapatkan daftar opsi baris perintah Bitcoin yang memungkinkan + Show the %1 help message to get a list with possible Verium command-line options + Tampilkan %1 pesan bantuan untuk mendapatkan daftar opsi baris perintah Verium yang memungkinkan default wallet @@ -630,8 +630,8 @@ Dompet saat ini <b>terenkripsi</b> dan <b>terkunci</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Terjadi Kesalahan Fatal. Bitcoin Tidak Dapat Melanjutkan Dengan Aman Dan Akan Keluar + A fatal error occurred. Verium can no longer continue safely and will quit. + Terjadi Kesalahan Fatal. Verium Tidak Dapat Melanjutkan Dengan Aman Dan Akan Keluar @@ -874,8 +874,8 @@ Ubah alamat pengirim - The entered address "%1" is not a valid Bitcoin address. - Alamat yang dimasukkan "%1" bukanlah alamat Bitcoin yang valid. + The entered address "%1" is not a valid Verium address. + Alamat yang dimasukkan "%1" bukanlah alamat Verium yang valid. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -975,8 +975,8 @@ Gunakan direktori pilihan Anda: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ %1 GB data akan disimpan di direktori ini. - %1 will download and store a copy of the Bitcoin block chain. - %1 akan mengunduh dan menyimpan salinan Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. + %1 akan mengunduh dan menyimpan salinan Verium block chain. The wallet will also be stored in this directory. @@ -1027,7 +1027,7 @@ Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Transaksi-transaksi terkini mungkin belum terlihat dan oleh karenanya, saldo dompet Anda mungkin tidak tepat. Informasi ini akan akurat ketika dompet Anda tersinkronisasi dengan jaringan Bitcoin, seperti rincian berikut. + Transaksi-transaksi terkini mungkin belum terlihat dan oleh karenanya, saldo dompet Anda mungkin tidak tepat. Informasi ini akan akurat ketika dompet Anda tersinkronisasi dengan jaringan Verium, seperti rincian berikut. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -1231,8 +1231,8 @@ &Perubahan saldo untuk transaksi yang belum dikonfirmasi - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Otomatis membuka port client Bitcoin di router. Hanya berjalan apabila router anda mendukung UPnP dan di-enable. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Otomatis membuka port client Verium di router. Hanya berjalan apabila router anda mendukung UPnP dan di-enable. Map port using &UPnP @@ -1247,8 +1247,8 @@ Terima koneksi-koneksi masuk - Connect to the Bitcoin network through a SOCKS5 proxy. - Hubungkan ke jaringan Bitcoin melalui SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. + Hubungkan ke jaringan Verium melalui SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1283,7 +1283,7 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. Koneksi ke jaringan bitcoin melalui proxy SOCKS5 yang berbeda untuk layanan Tor tersembunyi. @@ -1394,8 +1394,8 @@ Formulir - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Informasi terlampir mungkin sudah kedaluwarsa. Dompet Anda secara otomatis mensinkronisasi dengan jaringan Bitcoin ketika sebuah hubungan terbentuk, namun proses ini belum selesai. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Informasi terlampir mungkin sudah kedaluwarsa. Dompet Anda secara otomatis mensinkronisasi dengan jaringan Verium ketika sebuah hubungan terbentuk, namun proses ini belum selesai. Watch-only: @@ -1505,8 +1505,8 @@ Alamat pembayaran tidak valid %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI tidak bisa dimengerti! Hal ini bisa disebabkan karena alamat Bitcoin yang tidak sah atau parameter URI yang tidak tepat. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI tidak bisa dimengerti! Hal ini bisa disebabkan karena alamat Verium yang tidak sah atau parameter URI yang tidak tepat. Payment request file handling @@ -1607,8 +1607,8 @@ Nilai - Enter a Bitcoin address (e.g. %1) - Masukkan alamat Bitcoin (contoh %1) + Enter a Verium address (e.g. %1) + Masukkan alamat Verium (contoh %1) %1 d @@ -2066,8 +2066,8 @@ &Pesan: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Pesan opsional untuk dilampirkan ke permintaan pembayaran, yang akan ditampilkan ketika permintaan dibuka. Catatan: Pesan tidak akan dikirim dengan pembayaran melalui jaringan Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Pesan opsional untuk dilampirkan ke permintaan pembayaran, yang akan ditampilkan ketika permintaan dibuka. Catatan: Pesan tidak akan dikirim dengan pembayaran melalui jaringan Verium. An optional label to associate with the new receiving address. @@ -2487,8 +2487,8 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Diperkirakan akan memulai konfirmasi dalam %n blok. - Warning: Invalid Bitcoin address - Peringatan: Alamat Bitcoin tidak valid + Warning: Invalid Verium address + Peringatan: Alamat Verium tidak valid Warning: Unknown change address @@ -2530,8 +2530,8 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Ini adalah pembayaran normal - The Bitcoin address to send the payment to - Alamat Bitcoin untuk mengirim pembayaran + The Verium address to send the payment to + Alamat Verium untuk mengirim pembayaran Alt+A @@ -2578,8 +2578,8 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Masukkan label untuk alamat ini untuk dimasukan dalam daftar alamat yang pernah digunakan - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Pesan yang dilampirkan ke bitcoin: URI yang akan disimpan dengan transaksi untuk referensi Anda. Catatan: Pesan ini tidak akan dikirim melalui jaringan Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Pesan yang dilampirkan ke bitcoin: URI yang akan disimpan dengan transaksi untuk referensi Anda. Catatan: Pesan ini tidak akan dikirim melalui jaringan Verium. Pay To: @@ -2623,8 +2623,8 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Anda dapat menandatangani pesan / perjanjian dengan alamat Anda untuk membuktikan bahwa Anda dapat menerima bitcoin yang dikirimkan kepada mereka. Berhati-hatilah untuk tidak menandatangani apa pun yang samar-samar atau acak, karena serangan phishing mungkin mencoba menipu Anda untuk menandatangani identitas Anda kepada mereka. Hanya tandatangani pernyataan terperinci yang Anda setujui. - The Bitcoin address to sign the message with - Alamat Bitcoin untuk menandatangani pesan + The Verium address to sign the message with + Alamat Verium untuk menandatangani pesan Choose previously used address @@ -2655,8 +2655,8 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Salin tanda tangan terpilih ke sistem klipboard - Sign the message to prove you own this Bitcoin address - Tandai pesan untuk menyetujui kamu pemiliki alamat Bitcoin ini + Sign the message to prove you own this Verium address + Tandai pesan untuk menyetujui kamu pemiliki alamat Verium ini Sign &Message @@ -2679,12 +2679,12 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Masukkan alamat penerima, pesan (pastikan Anda menyalin persis jeda baris, spasi, tab, dll) dan tanda tangan di bawah untuk memverifikasi pesan. Berhati-hatilah untuk tidak memberi informasi lebih ke tanda tangan daripada apa yang ada dalam pesan yang ditandatangani itu sendiri, untuk menghindari dikelabui oleh serangan man-in-the-middle. Perhatikan bahwa ini hanya membuktikan pihak penandatangan menerima dengan alamat, tapi tidak dapat membuktikan pengiriman dari transaksi apa pun! - The Bitcoin address the message was signed with - Alamat Bitcoin yang menandatangani pesan + The Verium address the message was signed with + Alamat Verium yang menandatangani pesan - Verify the message to ensure it was signed with the specified Bitcoin address - Verifikasi pesan untuk memastikannya ditandatangani dengan alamat Bitcoin tersebut + Verify the message to ensure it was signed with the specified Verium address + Verifikasi pesan untuk memastikannya ditandatangani dengan alamat Verium tersebut Verify &Message diff --git a/src/qt/locale/bitcoin_is.ts b/src/qt/locale/bitcoin_is.ts index 2bc8bf222b..e47ecd1f6a 100644 --- a/src/qt/locale/bitcoin_is.ts +++ b/src/qt/locale/bitcoin_is.ts @@ -62,8 +62,8 @@ Færslugildi sem þiggja til sín - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Þetta eru Bitcoin færslugildin sem senda greiðslur. Skoðið ævinlega vel upphæðina og færslugildin sem þiggja greiðslur áður en mynt er send. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Þetta eru Verium færslugildin sem senda greiðslur. Skoðið ævinlega vel upphæðina og færslugildin sem þiggja greiðslur áður en mynt er send. &Copy Address @@ -216,7 +216,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Undirrita &skilaboð @@ -310,8 +310,8 @@ Endurraða blokkum á drifi... - Send coins to a Bitcoin address - Senda mynt í Bitcoin færslugildi + Send coins to a Verium address + Senda mynt í Verium færslugildi Backup wallet to another location @@ -354,12 +354,12 @@ Dulkóða einkalyklana sem tilheyra veskinu þínu - Sign messages with your Bitcoin addresses to prove you own them - Kvitta undir skilaboð með Bitcoin færslugildunum þínum til að sanna að þú eigir þau + Sign messages with your Verium addresses to prove you own them + Kvitta undir skilaboð með Verium færslugildunum þínum til að sanna að þú eigir þau - Verify messages to ensure they were signed with specified Bitcoin addresses - Yfirfara skilaboð til að tryggja að kvittað hafi verið fyrir þau með tilteknum Bitcoin færslugildum + Verify messages to ensure they were signed with specified Verium addresses + Yfirfara skilaboð til að tryggja að kvittað hafi verið fyrir þau með tilteknum Verium færslugildum &File @@ -434,8 +434,8 @@ Uppfært - Show the %1 help message to get a list with possible Bitcoin command-line options - Sýna %1 hjálparskilaboðin til að fá lista yfir valkosti Bitcoin aðgerðir í skipanalínu + Show the %1 help message to get a list with possible Verium command-line options + Sýna %1 hjálparskilaboðin til að fá lista yfir valkosti Verium aðgerðir í skipanalínu %1 client @@ -504,8 +504,8 @@ Veskið er <b>dulkóðað</b> and currently <b>locked</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Alvarleg villa átti sér stað. Bitcoin getur ekki haldið áfram með öruggum hætti og stoppar hér. + A fatal error occurred. Verium can no longer continue safely and will quit. + Alvarleg villa átti sér stað. Verium getur ekki haldið áfram með öruggum hætti og stoppar hér. @@ -624,8 +624,8 @@ Breyta sendingarfærslugildi - The entered address "%1" is not a valid Bitcoin address. - Færslugildið sem slegið var inn "%1" er ekki leyfilegt Bitcoin færslugildi. + The entered address "%1" is not a valid Verium address. + Færslugildið sem slegið var inn "%1" er ekki leyfilegt Verium færslugildi. @@ -637,8 +637,8 @@ Intro - Bitcoin - Bitcoin + Verium + Verium Error diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index cb383befbd..eaba7bb69b 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -66,12 +66,12 @@ Indirizzi di ricezione - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Questi sono i tuoi indirizzi Bitcoin per l'invio di pagamenti. Controlla sempre l'importo e l'indirizzo del beneficiario prima di inviare bitcoin. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Questi sono i tuoi indirizzi Verium per l'invio di pagamenti. Controlla sempre l'importo e l'indirizzo del beneficiario prima di inviare bitcoin. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Questi sono i tuoi indirizzi Bitcoin per ricevere pagamenti. Usa il tasto "Crea nuovo indirizzo ricevente" nella schermata "Ricevi" per creare nuovi indirizzi. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Questi sono i tuoi indirizzi Verium per ricevere pagamenti. Usa il tasto "Crea nuovo indirizzo ricevente" nella schermata "Ricevi" per creare nuovi indirizzi. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Firma &messaggio... @@ -362,8 +362,8 @@ Il Proxy è <b>abilitato</b>:%1 - Send coins to a Bitcoin address - Invia fondi ad un indirizzo Bitcoin + Send coins to a Verium address + Invia fondi ad un indirizzo Verium Backup wallet to another location @@ -406,12 +406,12 @@ Cifra le chiavi private che appartengono al tuo portamonete - Sign messages with your Bitcoin addresses to prove you own them - Firma messaggi con i tuoi indirizzi Bitcoin per dimostrarne il possesso + Sign messages with your Verium addresses to prove you own them + Firma messaggi con i tuoi indirizzi Verium per dimostrarne il possesso - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifica che i messaggi siano stati firmati con gli indirizzi Bitcoin specificati + Verify messages to ensure they were signed with specified Verium addresses + Verifica che i messaggi siano stati firmati con gli indirizzi Verium specificati &File @@ -450,8 +450,8 @@ Opzioni della riga di &comando - %n active connection(s) to Bitcoin network - %n connessione attiva alla rete Bitcoin%n connessioni alla rete Bitcoin attive + %n active connection(s) to Verium network + %n connessione attiva alla rete Verium%n connessioni alla rete Verium attive Indexing blocks on disk... @@ -518,8 +518,8 @@ Chiudi il portafoglio - Show the %1 help message to get a list with possible Bitcoin command-line options - Mostra il messaggio di aiuto di %1 per ottenere una lista di opzioni di comando per Bitcoin + Show the %1 help message to get a list with possible Verium command-line options + Mostra il messaggio di aiuto di %1 per ottenere una lista di opzioni di comando per Verium default wallet @@ -630,8 +630,8 @@ Il portamonete è <b>cifrato</b> ed attualmente <b>bloccato</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Si è verificato un errore critico. Bitcoin non può più funzionare in maniera sicura e verrà chiuso. + A fatal error occurred. Verium can no longer continue safely and will quit. + Si è verificato un errore critico. Verium non può più funzionare in maniera sicura e verrà chiuso. @@ -874,7 +874,7 @@ Modifica indirizzo d'invio - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. L'indirizzo inserito "%1" non è un indirizzo bitcoin valido. @@ -975,8 +975,8 @@ Usa una cartella dati personalizzata: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ Verranno salvati circa %1 GB di dati in questa cartella. - %1 will download and store a copy of the Bitcoin block chain. - %1 scaricherà e salverà una copia della block chain di Bitcoin. + %1 will download and store a copy of the Verium block chain. + %1 scaricherà e salverà una copia della block chain di Verium. The wallet will also be stored in this directory. @@ -1232,8 +1232,8 @@ Per specificare più URL separarli con una barra verticale "|". &Spendi resti non confermati - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Apri automaticamente la porta del client Bitcoin sul router. Il protocollo UPnP deve essere supportato da parte del router ed attivo. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Apri automaticamente la porta del client Verium sul router. Il protocollo UPnP deve essere supportato da parte del router ed attivo. Map port using &UPnP @@ -1248,8 +1248,8 @@ Per specificare più URL separarli con una barra verticale "|". Accetta connessioni in entrata - Connect to the Bitcoin network through a SOCKS5 proxy. - Connessione alla rete Bitcoin attraverso un proxy SOCKS5. + Connect to the Verium network through a SOCKS5 proxy. + Connessione alla rete Verium attraverso un proxy SOCKS5. &Connect through SOCKS5 proxy (default proxy): @@ -1284,8 +1284,8 @@ Per specificare più URL separarli con una barra verticale "|". Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Connette alla rete Bitcoin attraverso un proxy SOCKS5 separato per Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Connette alla rete Verium attraverso un proxy SOCKS5 separato per Tor. &Window @@ -1395,8 +1395,8 @@ Per specificare più URL separarli con una barra verticale "|". Modulo - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Le informazioni visualizzate potrebbero non essere aggiornate. Il portafoglio si sincronizza automaticamente con la rete Bitcoin una volta stabilita una connessione, ma questo processo non è ancora stato completato. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Le informazioni visualizzate potrebbero non essere aggiornate. Il portafoglio si sincronizza automaticamente con la rete Verium una volta stabilita una connessione, ma questo processo non è ancora stato completato. Watch-only: @@ -1506,8 +1506,8 @@ Per specificare più URL separarli con una barra verticale "|". Indirizzo di pagamento non valido %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - Impossibile interpretare l'URI! I parametri dell'URI o l'indirizzo Bitcoin potrebbero non essere corretti. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + Impossibile interpretare l'URI! I parametri dell'URI o l'indirizzo Verium potrebbero non essere corretti. Payment request file handling @@ -1608,8 +1608,8 @@ Per specificare più URL separarli con una barra verticale "|". Importo - Enter a Bitcoin address (e.g. %1) - Inserisci un indirizzo Bitcoin (ad es. %1) + Enter a Verium address (e.g. %1) + Inserisci un indirizzo Verium (ad es. %1) %1 d @@ -2069,8 +2069,8 @@ Per specificare più URL separarli con una barra verticale "|". &Messaggio: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Un messaggio opzionale da allegare e mostrare all'apertura della richiesta di pagamento. Nota: Il messaggio non sarà inviato con il pagamento sulla rete Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Un messaggio opzionale da allegare e mostrare all'apertura della richiesta di pagamento. Nota: Il messaggio non sarà inviato con il pagamento sulla rete Verium. An optional label to associate with the new receiving address. @@ -2227,7 +2227,7 @@ Per specificare più URL separarli con una barra verticale "|". SendCoinsDialog Send Coins - Invia Bitcoin + Invia Verium Coin Control Features @@ -2498,8 +2498,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Inizio delle conferme stimato entro %n blocchi.Inizio delle conferme stimato entro %n blocchi. - Warning: Invalid Bitcoin address - Attenzione: Indirizzo Bitcoin non valido + Warning: Invalid Verium address + Attenzione: Indirizzo Verium non valido Warning: Unknown change address @@ -2541,8 +2541,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Questo è un normale pagamento. - The Bitcoin address to send the payment to - L'indirizzo Bitcoin a cui vuoi inviare il pagamento + The Verium address to send the payment to + L'indirizzo Verium a cui vuoi inviare il pagamento Alt+A @@ -2589,8 +2589,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Inserisci un'etichetta per questo indirizzo per aggiungerlo alla lista degli indirizzi utilizzati - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Messaggio incluso nel bitcoin URI e che sarà memorizzato con la transazione per tuo riferimento. Nota: Questo messaggio non sarà inviato attraverso la rete Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Messaggio incluso nel bitcoin URI e che sarà memorizzato con la transazione per tuo riferimento. Nota: Questo messaggio non sarà inviato attraverso la rete Verium. Pay To: @@ -2638,8 +2638,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " È possibile firmare messaggi/accordi con i propri indirizzi in modo da dimostrare di poter ricevere bitcoin attraverso di essi. Presta attenzione a non firmare dichiarazioni vaghe o casuali, perché attacchi di phishing potrebbero cercare di indurti ad apporre la firma su di esse. Firma esclusivamente dichiarazioni completamente dettagliate e delle quali condividi in pieno il contenuto. - The Bitcoin address to sign the message with - Indirizzo Bitcoin da utilizzare per firmare il messaggio + The Verium address to sign the message with + Indirizzo Verium da utilizzare per firmare il messaggio Choose previously used address @@ -2670,8 +2670,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Copia la firma corrente nella clipboard - Sign the message to prove you own this Bitcoin address - Firma un messaggio per dimostrare di possedere questo indirizzo Bitcoin + Sign the message to prove you own this Verium address + Firma un messaggio per dimostrare di possedere questo indirizzo Verium Sign &Message @@ -2694,11 +2694,11 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Per verificare il messaggio inserire l'indirizzo del firmatario, il messaggio e la firma nei campi sottostanti, assicurandosi di copiare esattamente anche ritorni a capo, spazi, tabulazioni, etc.. Si raccomanda di non lasciarsi fuorviare dalla firma a leggere più di quanto non sia riportato nel testo del messaggio stesso, in modo da evitare di cadere vittima di attacchi di tipo man-in-the-middle. Si ricorda che la verifica della firma dimostra soltanto che il firmatario può ricevere pagamenti con l'indirizzo corrispondente, non prova l'invio di alcuna transazione. - The Bitcoin address the message was signed with - L'indirizzo Bitcoin con cui è stato contrassegnato il messaggio + The Verium address the message was signed with + L'indirizzo Verium con cui è stato contrassegnato il messaggio - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address Verifica il messaggio per accertare che sia stato firmato con l'indirizzo specificato @@ -3250,7 +3250,7 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " WalletModel Send Coins - Invia Bitcoin + Invia Verium Fee bump error diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index 951b7afe23..55913ff900 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -66,12 +66,12 @@ 受取用アドレス - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - これらは、あなたが知っている支払い送り先の Bitcoin アドレスです。コインを送る前に、必ず金額と送金先アドレスを確認してください。 + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + これらは、あなたが知っている支払い送り先の Verium アドレスです。コインを送る前に、必ず金額と送金先アドレスを確認してください。 - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - これらは支払いを受け取るための、あなたの Bitcoin アドレスです。新しいアドレスを作成するには受取タブ内の「新しい受取用アドレスを作成」ボタンを使用します。 + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + これらは支払いを受け取るための、あなたの Verium アドレスです。新しいアドレスを作成するには受取タブ内の「新しい受取用アドレスを作成」ボタンを使用します。 &Copy Address @@ -169,7 +169,7 @@ Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - 警告: もしもあなたのウォレットを暗号化してパスフレーズを忘れてしまったら、<b>あなたの Bitcoin はすべて失われます</b>! + 警告: もしもあなたのウォレットを暗号化してパスフレーズを忘れてしまったら、<b>あなたの Verium はすべて失われます</b>! Are you sure you wish to encrypt your wallet? @@ -190,7 +190,7 @@ Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - ウォレットを暗号化しても、コンピュータに感染したマルウェアなどによる Bitcoin の盗難を完全に防ぐことはできないことにご注意ください。 + ウォレットを暗号化しても、コンピュータに感染したマルウェアなどによる Verium の盗難を完全に防ぐことはできないことにご注意ください。 Wallet to be encrypted @@ -253,7 +253,7 @@ - BitcoinGUI + VeriumGUI Sign &message... メッセージの署名...(&m) @@ -363,8 +363,8 @@ プロキシは<b>有効</b>: %1 - Send coins to a Bitcoin address - Bitcoin アドレスにコインを送る + Send coins to a Verium address + Verium アドレスにコインを送る Backup wallet to another location @@ -407,12 +407,12 @@ ウォレットの秘密鍵を暗号化する - Sign messages with your Bitcoin addresses to prove you own them - Bitcoin アドレスでメッセージに署名して、アドレスを所有していることを証明する + Sign messages with your Verium addresses to prove you own them + Verium アドレスでメッセージに署名して、アドレスを所有していることを証明する - Verify messages to ensure they were signed with specified Bitcoin addresses - メッセージを検証して、指定された Bitcoin アドレスで署名されたことを確認する + Verify messages to ensure they were signed with specified Verium addresses + メッセージを検証して、指定された Verium アドレスで署名されたことを確認する &File @@ -451,8 +451,8 @@ コマンドラインオプション(&C) - %n active connection(s) to Bitcoin network - Bitcoin ネットワークへのアクティブな接続は %n 個 + %n active connection(s) to Verium network + Verium ネットワークへのアクティブな接続は %n 個 Indexing blocks on disk... @@ -519,7 +519,7 @@ ウォレットを閉じる - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options %1 のヘルプ メッセージを表示して、使用可能な XPChain のコマンドライン オプションの一覧を見る。 @@ -631,8 +631,8 @@ ウォレットは<b>暗号化済み</b>・<b>ロック状態</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - 致命的なエラーが発生しました。Bitcoin を安全に動作し続けることができないため終了します。 + A fatal error occurred. Verium can no longer continue safely and will quit. + 致命的なエラーが発生しました。Verium を安全に動作し続けることができないため終了します。 @@ -875,8 +875,8 @@ 送金先アドレスを編集 - The entered address "%1" is not a valid Bitcoin address. - 入力されたアドレス "%1" は無効な Bitcoin アドレスです。 + The entered address "%1" is not a valid Verium address. + 入力されたアドレス "%1" は無効な Verium アドレスです。 Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -976,8 +976,8 @@ カスタム データ ディレクトリを使用: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -992,8 +992,8 @@ 約%1 GBのデータがこのディレクトリに保存されます。 - %1 will download and store a copy of the Bitcoin block chain. - %1 は Bitcoin ブロックチェーンのコピーをダウンロードし保存します。 + %1 will download and store a copy of the Verium block chain. + %1 は Verium ブロックチェーンのコピーをダウンロードし保存します。 The wallet will also be stored in this directory. @@ -1028,11 +1028,11 @@ Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - 最近の取引がまだ表示されていない可能性があります。そのため、ウォレットの残高が正しく表示されていないかもしれません。この情報は、ウォレットが Bitcoin ネットワークへの同期が完了すると正確なものとなります。詳細は下記を参照してください。 + 最近の取引がまだ表示されていない可能性があります。そのため、ウォレットの残高が正しく表示されていないかもしれません。この情報は、ウォレットが Verium ネットワークへの同期が完了すると正確なものとなります。詳細は下記を参照してください。 Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - まだ表示されていない取引が関係する Bitcoin を使用しようとすると、ネットワークから認証を受けられません。 + まだ表示されていない取引が関係する Verium を使用しようとすると、ネットワークから認証を受けられません。 Number of blocks left @@ -1232,8 +1232,8 @@ 未検証のお釣りを使用する(&S) - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - 自動的にルーター上の Bitcoin クライアントのポートを開放します。あなたのルーターが UPnP に対応していて、それが有効になっている場合のみ動作します。 + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + 自動的にルーター上の Verium クライアントのポートを開放します。あなたのルーターが UPnP に対応していて、それが有効になっている場合のみ動作します。 Map port using &UPnP @@ -1248,8 +1248,8 @@ 外部からの接続を許可する(&G) - Connect to the Bitcoin network through a SOCKS5 proxy. - SOCKS5 プロキシ経由で Bitcoin ネットワークに接続する。 + Connect to the Verium network through a SOCKS5 proxy. + SOCKS5 プロキシ経由で Verium ネットワークに接続する。 &Connect through SOCKS5 proxy (default proxy): @@ -1284,8 +1284,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Tor秘匿サービスを利用するため、専用の SOCKS5 プロキシ経由で Bitcoin ネットワークに接続する。 + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Tor秘匿サービスを利用するため、専用の SOCKS5 プロキシ経由で Verium ネットワークに接続する。 &Window @@ -1395,8 +1395,8 @@ フォーム - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - 表示されている情報は古い可能性があります。ウォレットは接続確立後に Bitcoin ネットワークと自動的に同期しますが、同期処理はまだ完了していません。 + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + 表示されている情報は古い可能性があります。ウォレットは接続確立後に Verium ネットワークと自動的に同期しますが、同期処理はまだ完了していません。 Watch-only: @@ -1471,7 +1471,7 @@ Cannot start bitcoin: click-to-pay handler - Bitcoin を起動できません: click-to-pay handler + Verium を起動できません: click-to-pay handler URI handling @@ -1506,8 +1506,8 @@ 支払い先アドレス「 %1 」は無効です - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URIを解析できませんでした! Bitcoin アドレスが無効であるか、URIパラメーターが不正な形式である可能性があります。 + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URIを解析できませんでした! Verium アドレスが無効であるか、URIパラメーターが不正な形式である可能性があります。 Payment request file handling @@ -1608,8 +1608,8 @@ 金額 - Enter a Bitcoin address (e.g. %1) - Bitcoin アドレスを入力してください (例: %1) + Enter a Verium address (e.g. %1) + Verium アドレスを入力してください (例: %1) %1 d @@ -2069,8 +2069,8 @@ メッセージ (&M): - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - 支払いリクエストに添付するメッセージ(任意)。支払リクエスト開始時に表示されます。注意: メッセージは Bitcoin ネットワーク上へ送信されません。 + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + 支払いリクエストに添付するメッセージ(任意)。支払リクエスト開始時に表示されます。注意: メッセージは Verium ネットワーク上へ送信されません。 An optional label to associate with the new receiving address. @@ -2498,8 +2498,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 予想される承認開始ブロック: %n ブロック以内 - Warning: Invalid Bitcoin address - 警告: 無効な Bitcoin アドレス + Warning: Invalid Verium address + 警告: 無効な Verium アドレス Warning: Unknown change address @@ -2541,8 +2541,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p これは通常の支払いです。 - The Bitcoin address to send the payment to - 支払い先 Bitcoin アドレス + The Verium address to send the payment to + 支払い先 Verium アドレス Alt+A @@ -2562,7 +2562,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - 手数料は送金する金額から差し引かれます。送金先には金額欄で指定した額よりも少ない Bitcoin が送られます。送金先が複数ある場合は、手数料は均等に分けられます。 + 手数料は送金する金額から差し引かれます。送金先には金額欄で指定した額よりも少ない Verium が送られます。送金先が複数ある場合は、手数料は均等に分けられます。 S&ubtract fee from amount @@ -2589,8 +2589,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p このアドレスに対するラベルを入力することで、送金したことがあるアドレスの一覧に追加することができます - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - bitcoin: URIに添付されていたメッセージです。これは参照用として取引とともに保存されます。注意: メッセージは Bitcoin ネットワーク上へ送信されません。 + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + bitcoin: URIに添付されていたメッセージです。これは参照用として取引とともに保存されます。注意: メッセージは Verium ネットワーク上へ送信されません。 Pay To: @@ -2635,11 +2635,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - あなたが所有しているアドレスでメッセージや契約書に署名をすることで、それらのアドレスへ送られた Bitcoin を受け取ることができることを証明できます。フィッシング攻撃者があなたを騙して、あなたの身分情報に署名させようとしている可能性があるため、よくわからないものやランダムな文字列に対して署名しないでください。あなたが同意した、よく詳細の記された文言にのみ署名するようにしてください。 + あなたが所有しているアドレスでメッセージや契約書に署名をすることで、それらのアドレスへ送られた Verium を受け取ることができることを証明できます。フィッシング攻撃者があなたを騙して、あなたの身分情報に署名させようとしている可能性があるため、よくわからないものやランダムな文字列に対して署名しないでください。あなたが同意した、よく詳細の記された文言にのみ署名するようにしてください。 - The Bitcoin address to sign the message with - メッセージの署名に使用する Bitcoin アドレス + The Verium address to sign the message with + メッセージの署名に使用する Verium アドレス Choose previously used address @@ -2670,8 +2670,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p この署名をシステムのクリップボードにコピー - Sign the message to prove you own this Bitcoin address - メッセージに署名してこの Bitcoin アドレスを所有していることを証明 + Sign the message to prove you own this Verium address + メッセージに署名してこの Verium アドレスを所有していることを証明 Sign &Message @@ -2694,12 +2694,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 送金先のアドレスと、メッセージ(改行やスペース、タブなども完全に一致させること)および署名を以下に入力し、メッセージを検証します。中間者攻撃により騙されるのを防ぐため、署名対象のメッセージから書かれていること以上の意味を読み取ろうとしないでください。また、これは署名作成者がこのアドレスで受け取れることを証明するだけであり、取引の送信権限を証明するものではありません! - The Bitcoin address the message was signed with - メッセージの署名に使われた Bitcoin アドレス + The Verium address the message was signed with + メッセージの署名に使われた Verium アドレス - Verify the message to ensure it was signed with the specified Bitcoin address - メッセージを検証して指定された Bitcoin アドレスで署名されたことを確認 + Verify the message to ensure it was signed with the specified Verium address + メッセージを検証して指定された Verium アドレスで署名されたことを確認 Verify &Message diff --git a/src/qt/locale/bitcoin_ka.ts b/src/qt/locale/bitcoin_ka.ts index 25bf390524..a1c200771d 100644 --- a/src/qt/locale/bitcoin_ka.ts +++ b/src/qt/locale/bitcoin_ka.ts @@ -66,7 +66,7 @@ მიმღები მისამართი - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. ეს არის თქვენი ბიტკოინ-მისამართები, რომელთაგანაც შეგიძლიათ გადახდა. აუცილებლად შეამოწმეთ თანხა და მიმღები მისამართი გაგზავნამდე. @@ -204,7 +204,7 @@ - BitcoinGUI + VeriumGUI Sign &message... ხელ&მოწერა @@ -294,8 +294,8 @@ დისკზე ბლოკების რეინდექსაცია... - Send coins to a Bitcoin address - მონეტების გაგზავნა Bitcoin-მისამართზე + Send coins to a Verium address + მონეტების გაგზავნა Verium-მისამართზე Backup wallet to another location @@ -338,12 +338,12 @@ თქვენი საფულის პირადი გასაღებების დაშიფრვა - Sign messages with your Bitcoin addresses to prove you own them - მესიჯებზე ხელმოწერა თქვენი Bitcoin-მისამართებით იმის დასტურად, რომ ის თქვენია + Sign messages with your Verium addresses to prove you own them + მესიჯებზე ხელმოწერა თქვენი Verium-მისამართებით იმის დასტურად, რომ ის თქვენია - Verify messages to ensure they were signed with specified Bitcoin addresses - შეამოწმეთ, რომ მესიჯები ხელმოწერილია მითითებული Bitcoin-მისამართით + Verify messages to ensure they were signed with specified Verium addresses + შეამოწმეთ, რომ მესიჯები ხელმოწერილია მითითებული Verium-მისამართით &File @@ -663,8 +663,8 @@ მითითებული კატალოგის გამოყენება: - Bitcoin - Bitcoin + Verium + Verium Error @@ -771,8 +771,8 @@ დაუდასტურებელი ხურდის გამოყენების აკრძალვის შემდეგ მათი გამოყენება შეუძლებელი იქნება, სანამ ტრანსაქციას არ ექნება ერთი დასტური მაინც. ეს აისახება თქვენი ნაშთის დათვლაზეც. - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - როუტერში Bitcoin-კლიენტის პორტის ავტომატური გახსნა. მუშაობს, თუ თქვენს როუტერს ჩართული აქვს UPnP. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + როუტერში Verium-კლიენტის პორტის ავტომატური გახსნა. მუშაობს, თუ თქვენს როუტერს ჩართული აქვს UPnP. Map port using &UPnP @@ -882,8 +882,8 @@ ფორმა - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - ნაჩვენები ინფორმაცია შეიძლება მოძველებული იყოს. თქვენი საფულე ავტომატურად სინქრონიზდება Bitcoin-ის ქსელთან კავშირის დამყარების შემდეგ, ეს პროცესი ჯერ არ არის დასრულებული. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + ნაჩვენები ინფორმაცია შეიძლება მოძველებული იყოს. თქვენი საფულე ავტომატურად სინქრონიზდება Verium-ის ქსელთან კავშირის დამყარების შემდეგ, ეს პროცესი ჯერ არ არის დასრულებული. Available: @@ -1084,7 +1084,7 @@ &მესიჯი: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. არააუცილებელი მესიჯი, რომელიც ერთვის გადახდის მოთხოვნას და ნაჩვენები იქნება მოთხოვნის გახსნისას. შენიშვნა: მესიჯი არ გაყვება გადახდას ბითქოინის ქსელში. @@ -1340,7 +1340,7 @@ შეიყვანეთ ამ მისამართის ნიშნული გამოყენებული მისამართების სიაში დასამატებლად - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. მესიჯი, რომელიც თან ერთვის მონეტებს: URI, რომელიც შეინახება ტრანსაქციასთან ერთად თქვენთვის. შენიშვნა: მესიჯი არ გაყვება გადახდას ბითქოინის ქსელში. @@ -1401,7 +1401,7 @@ მიმდინარე ხელმოწერის კოპირება კლიპბორდში - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address მოაწერეთ ხელი იმის დასადასტურებლად, რომ ეს მისამართი თქვენია @@ -1421,8 +1421,8 @@ მესიჯის &ვერიფიკაცია - Verify the message to ensure it was signed with the specified Bitcoin address - შეამოწმეთ, რომ მესიჯი ხელმოწერილია მითითებული Bitcoin-მისამართით + Verify the message to ensure it was signed with the specified Verium address + შეამოწმეთ, რომ მესიჯი ხელმოწერილია მითითებული Verium-მისამართით Verify &Message diff --git a/src/qt/locale/bitcoin_kk.ts b/src/qt/locale/bitcoin_kk.ts index 5b13dd7b97..cc24c3464e 100644 --- a/src/qt/locale/bitcoin_kk.ts +++ b/src/qt/locale/bitcoin_kk.ts @@ -48,7 +48,7 @@ BanTableModel - BitcoinGUI + VeriumGUI &Transactions &Транзакциялар @@ -167,7 +167,7 @@ Intro - Bitcoin + Verium Биткоин diff --git a/src/qt/locale/bitcoin_km.ts b/src/qt/locale/bitcoin_km.ts index e5976cf8d4..b5b2611006 100644 --- a/src/qt/locale/bitcoin_km.ts +++ b/src/qt/locale/bitcoin_km.ts @@ -145,10 +145,10 @@ - BitcoinGUI + VeriumGUI - Send coins to a Bitcoin address - ផ្ញើកាក់ទៅកាន់ អាសយដ្ឋាន Bitcoin មួយ + Send coins to a Verium address + ផ្ញើកាក់ទៅកាន់ អាសយដ្ឋាន Verium មួយ diff --git a/src/qt/locale/bitcoin_ko.ts b/src/qt/locale/bitcoin_ko.ts index f9ac10a881..0b23b9f979 100644 --- a/src/qt/locale/bitcoin_ko.ts +++ b/src/qt/locale/bitcoin_ko.ts @@ -66,11 +66,11 @@ 받는 주소들 - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. 비트코인을 보내는 계좌 주소입니다. 코인을 보내기 전에 금액과 받는 주소를 항상 확인하세요. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. 지불 수신용 비트코인주소. 신규 주소를 만들려면 'Create new receiving address' 버튼을 사용하세요. @@ -236,7 +236,7 @@ - BitcoinGUI + VeriumGUI Sign &message... 메시지 서명(&M)... @@ -338,7 +338,7 @@ 프록시가 <b>활성화</b> 되었습니다: %1 - Send coins to a Bitcoin address + Send coins to a Verium address 비트코인 주소로 코인을 전송합니다 @@ -382,11 +382,11 @@ 지갑에 포함된 개인키 암호화하기 - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them 지갑 주소가 본인 소유인지 증명하기 위해 메시지를 서명합니다 - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses 해당 비트코인 주소로 서명되었는지 확인하기 위해 메시지를 검증합니다 @@ -426,7 +426,7 @@ 명령줄 옵션(&C) - %n active connection(s) to Bitcoin network + %n active connection(s) to Verium network 비트코인 네트워크에 %n개의 연결 활성화됨 @@ -494,7 +494,7 @@ 지갑 닫기 - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options 사용할 수 있는 비트코인 명령줄 옵션 목록을 가져오기 위해 %1 도움말 메시지를 표시합니다 @@ -602,7 +602,7 @@ 지갑이 <b>암호화</b> 되었고 현재 <b>잠겨져</b> 있습니다 - A fatal error occurred. Bitcoin can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. 치명적인 오류가 발생했습니다. 비트코인을 더이상 안전하게 진행할 수 없어 곧 종료합니다. @@ -798,7 +798,7 @@ 보내는 주소 편집 - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. 입력한 "%1" 주소는 올바른 비트코인 주소가 아닙니다. @@ -895,7 +895,7 @@ 커스텀 데이터 폴더 사용: - Bitcoin + Verium 비트코인 @@ -907,7 +907,7 @@ 약 %1 GB의 데이터가 이 디렉토리에 저장됩니다. - %1 will download and store a copy of the Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. %1은 비트코인 블록체인의 사본을 다운로드하여 저장합니다. @@ -1135,7 +1135,7 @@ 검증되지 않은 잔돈 쓰기 (&S) - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. 라우터에서 비트코인 클라이언트 포트를 자동적으로 엽니다. 라우터에서 UPnP를 지원하고 활성화 했을 경우에만 동작합니다. @@ -1151,7 +1151,7 @@ 연결 요청을 허용 (&G) - Connect to the Bitcoin network through a SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. SOCKS5 프록시를 통해 비트코인 네트워크에 연결합니다. @@ -1187,7 +1187,7 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. Tor 서비스를 경유하여 비트코인 네트워크에 연결하기 위해 분리된 SOCKS5 프록시를 사용합니다. @@ -1298,7 +1298,7 @@ 유형 - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. 표시된 정보가 오래된 것 같습니다. 비트코인 네트워크에 연결하고 난 다음에 지갑을 자동으로 동기화 하지만, 아직 과정이 끝나지는 않았습니다. @@ -1401,7 +1401,7 @@ 잘못된 지불 주소 %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. URI의 파싱에 문제가 발생했습니다. 잘못된 비트코인 주소나 URI 파라미터 구성에 오류가 존재할 수 있습니다. @@ -1503,7 +1503,7 @@ 금액 - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) 비트코인 주소를 입력하세요 (예. %1) @@ -1960,7 +1960,7 @@ 메시지(&M): - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. 지불 요청에 첨부되는 선택가능한 메시지 입니다. 이 메세지는 요청이 열릴 때 표시될 것 입니다. 메모: 이 메시지는 비트코인 네트워크로 전송되지 않습니다. @@ -2373,7 +2373,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p %n 블록 안에 승인이 시작될 것으로 추정됩니다. - Warning: Invalid Bitcoin address + Warning: Invalid Verium address 경고: 잘못된 비트코인주소입니다 @@ -2416,7 +2416,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 이것은 정상적인 지불입니다. - The Bitcoin address to send the payment to + The Verium address to send the payment to 이 비트코인 주소로 송금됩니다 @@ -2464,7 +2464,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 이 주소에 라벨을 입력하면 사용된 주소 목록에 라벨이 표시됩니다 - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. bitcoin: URI에 추가된 메시지는 참고를 위해 거래내역과 함께 저장될 것입니다. Note: 이 메시지는 비트코인 네트워크로 전송되지 않습니다. @@ -2513,7 +2513,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 당신이 해당 주소로 비트코인을 받을 수 있다는 것을 증명하기 위해 메시지/합의문을 그 주소로 서명할 수 있습니다. 피싱 공격이 당신을 속일 수 있으므로 임의의 내용이나 모호한 내용에 서명하지 않도록 주의하세요. 당신이 동의하는 명확한 조항들에만 서명하세요. - The Bitcoin address to sign the message with + The Verium address to sign the message with 메세지를 서명할 비트코인 주소 @@ -2545,7 +2545,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 이 서명을 시스템 클립보드로 복사 - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address 당신이 이 비트코인 주소를 소유한다는 증명을 위해 메시지를 서명합니다 @@ -2569,11 +2569,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 메시지를 검증하기 위해 아래 칸에 각각 지갑 주소와 메시지, 서명을 입력하세요 (메시지 원본의 띄어쓰기, 들여쓰기, 행 나눔 등이 정확하게 입력되어야 하므로 원본을 복사해서 입력하세요). 네트워크 침입자의 속임수에 넘어가지 않도록 서명된 메시지 내용 이외의 내용은 참고하지 않도록 유의하세요. 이 기능은 단순히 서명한 쪽에서 해당 주소로 송금을 받을 수 있다는 것을 증명하는 것 뿐이며 그 이상은 어떤 것도 보증하지 않습니다. - The Bitcoin address the message was signed with + The Verium address the message was signed with 메세지의 서명에 사용된 비트코인 주소 - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address 입력된 비트코인 주소로 메시지가 서명되었는지 검증합니다 diff --git a/src/qt/locale/bitcoin_ku_IQ.ts b/src/qt/locale/bitcoin_ku_IQ.ts index afdb4c781f..b820c037a9 100644 --- a/src/qt/locale/bitcoin_ku_IQ.ts +++ b/src/qt/locale/bitcoin_ku_IQ.ts @@ -40,7 +40,7 @@ BanTableModel - BitcoinGUI + VeriumGUI &Send &ناردن diff --git a/src/qt/locale/bitcoin_ky.ts b/src/qt/locale/bitcoin_ky.ts index 6f2560e1d6..15dbcfd850 100644 --- a/src/qt/locale/bitcoin_ky.ts +++ b/src/qt/locale/bitcoin_ky.ts @@ -28,7 +28,7 @@ BanTableModel - BitcoinGUI + VeriumGUI &Transactions &Транзакциялар @@ -103,8 +103,8 @@ Intro - Bitcoin - Bitcoin + Verium + Verium Error diff --git a/src/qt/locale/bitcoin_la.ts b/src/qt/locale/bitcoin_la.ts index 6866b1d17e..925316ea03 100644 --- a/src/qt/locale/bitcoin_la.ts +++ b/src/qt/locale/bitcoin_la.ts @@ -56,7 +56,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Sign &message... Signa &nuntium... @@ -118,8 +118,8 @@ Recreans indicem frustorum in disco... - Send coins to a Bitcoin address - Mitte nummos ad inscriptionem Bitcoin + Send coins to a Verium address + Mitte nummos ad inscriptionem Verium Backup wallet to another location @@ -162,12 +162,12 @@ Cifra claves privatas quae cassidili tui sunt - Sign messages with your Bitcoin addresses to prove you own them - Signa nuntios cum tuis inscriptionibus Bitcoin ut demonstres te eas possidere + Sign messages with your Verium addresses to prove you own them + Signa nuntios cum tuis inscriptionibus Verium ut demonstres te eas possidere - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifica nuntios ut certus sis eos signatos esse cum specificatis inscriptionibus Bitcoin + Verify messages to ensure they were signed with specified Verium addresses + Verifica nuntios ut certus sis eos signatos esse cum specificatis inscriptionibus Verium &File @@ -299,8 +299,8 @@ Intro - Bitcoin - Bitcoin + Verium + Verium Error @@ -351,8 +351,8 @@ Cassidile - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Aperi per se portam clientis Bitcoin in itineratore. Hoc tantum effectivum est si itineratrum tuum supportat UPnP et id activum est. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Aperi per se portam clientis Verium in itineratore. Hoc tantum effectivum est si itineratrum tuum supportat UPnP et id activum est. Map port using &UPnP @@ -434,8 +434,8 @@ Schema - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Monstrata informatio fortasse non recentissima est. Tuum cassidile per se synchronizat cum rete Bitcoin postquam conexio constabilita est, sed hoc actio nondum perfecta est. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Monstrata informatio fortasse non recentissima est. Tuum cassidile per se synchronizat cum rete Verium postquam conexio constabilita est, sed hoc actio nondum perfecta est. Immature: @@ -697,8 +697,8 @@ Copia signationem in latibulum systematis - Sign the message to prove you own this Bitcoin address - Signa nuntium ut demonstres hanc inscriptionem Bitcoin a te possessa esse + Sign the message to prove you own this Verium address + Signa nuntium ut demonstres hanc inscriptionem Verium a te possessa esse Sign &Message @@ -717,8 +717,8 @@ &Verifica Nuntium - Verify the message to ensure it was signed with the specified Bitcoin address - Verifica nuntium ut cures signatum esse cum specifica inscriptione Bitcoin + Verify the message to ensure it was signed with the specified Verium address + Verifica nuntium ut cures signatum esse cum specifica inscriptione Verium Verify &Message diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts index d142edff5a..df0796cb3e 100644 --- a/src/qt/locale/bitcoin_lt.ts +++ b/src/qt/locale/bitcoin_lt.ts @@ -66,8 +66,8 @@ Gavimo adresai - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Tai yra jūsų Bitcoin adresai išeinantiems mokėjimams. Visada pasitikrinkite sumą ir gavėjo adresą prieš siunčiant lėšas. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Tai yra jūsų Verium adresai išeinantiems mokėjimams. Visada pasitikrinkite sumą ir gavėjo adresą prieš siunčiant lėšas. &Copy Address @@ -224,7 +224,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Pasirašyti ži&nutę... @@ -326,8 +326,8 @@ Tarpinis serveris yra <b>įgalintas</b>: %1 - Send coins to a Bitcoin address - Siųsti monetas Bitcoin adresui + Send coins to a Verium address + Siųsti monetas Verium adresui Backup wallet to another location @@ -370,12 +370,12 @@ Užšifruoti privačius raktus, kurie priklauso jūsų piniginei - Sign messages with your Bitcoin addresses to prove you own them - Pasirašydami žinutes su savo Bitcoin adresais įrodysite jog esate jų savininkas + Sign messages with your Verium addresses to prove you own them + Pasirašydami žinutes su savo Verium adresais įrodysite jog esate jų savininkas - Verify messages to ensure they were signed with specified Bitcoin addresses - Patikrinkite žinutę, jog įsitikintumėte, kad ją pasirašė nurodytas Bitcoin adresas + Verify messages to ensure they were signed with specified Verium addresses + Patikrinkite žinutę, jog įsitikintumėte, kad ją pasirašė nurodytas Verium adresas &File @@ -414,8 +414,8 @@ Komandinės eilutės parametrai - %n active connection(s) to Bitcoin network - %n Bitcoin tinklo aktyvus ryšys%n Bitcoin tinklo aktyvūs ryšiai%n Bitcoin tinklo aktyvūs ryšiai%n Bitcoin tinklo aktyvūs ryšiai + %n active connection(s) to Verium network + %n Verium tinklo aktyvus ryšys%n Verium tinklo aktyvūs ryšiai%n Verium tinklo aktyvūs ryšiai%n Verium tinklo aktyvūs ryšiai Indexing blocks on disk... @@ -482,8 +482,8 @@ Uždaryti Piniginę - Show the %1 help message to get a list with possible Bitcoin command-line options - Rodyti %1 pagalbos žinutę su Bitcoin pasirinkimo komandomis + Show the %1 help message to get a list with possible Verium command-line options + Rodyti %1 pagalbos žinutę su Verium pasirinkimo komandomis default wallet @@ -586,8 +586,8 @@ Piniginė <b>užšifruota</b> ir šiuo metu <b>užrakinta</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Kritinė klaida. Bitcoin nebegali tęsti saugiai ir bus išjungtas. + A fatal error occurred. Verium can no longer continue safely and will quit. + Kritinė klaida. Verium nebegali tęsti saugiai ir bus išjungtas. @@ -782,8 +782,8 @@ Keisti siuntimo adresą - The entered address "%1" is not a valid Bitcoin address. - Įvestas adresas „%1“ nėra galiojantis Bitcoin adresas. + The entered address "%1" is not a valid Verium address. + Įvestas adresas „%1“ nėra galiojantis Verium adresas. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -879,8 +879,8 @@ Naudoti kitą duomenų katalogą: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -891,8 +891,8 @@ Šiame kataloge bus saugoma maždaug apie %1 GB duomenų. - %1 will download and store a copy of the Bitcoin block chain. - %1 bus atsisiųsta ir išsaugota Bitcoin blokų grandinės kopiją. + %1 will download and store a copy of the Verium block chain. + %1 bus atsisiųsta ir išsaugota Verium blokų grandinės kopiją. The wallet will also be stored in this directory. @@ -1119,8 +1119,8 @@ &Išleiskite nepatvirtintus pakeitimus - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Automatiškai atidaryti Bitcoin kliento prievadą maršrutizatoriuje. Tai veikia tik tada, kai jūsų maršrutizatorius palaiko UPnP ir ji įjungta. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Automatiškai atidaryti Verium kliento prievadą maršrutizatoriuje. Tai veikia tik tada, kai jūsų maršrutizatorius palaiko UPnP ir ji įjungta. Map port using &UPnP @@ -1135,8 +1135,8 @@ Leisti gaunamu&s ryšius - Connect to the Bitcoin network through a SOCKS5 proxy. - Prisijunkite prie „Bitcoin“ tinklo per SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. + Prisijunkite prie „Verium“ tinklo per SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1171,8 +1171,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Prisijunkite prie „Bitcoin“ tinklo per atskirą „SOCKS5“ proxy „Tor“ paslėptas paslaugas. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Prisijunkite prie „Verium“ tinklo per atskirą „SOCKS5“ proxy „Tor“ paslėptas paslaugas. &Window @@ -1282,8 +1282,8 @@ Forma - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Rodoma informacija gali būti pasenusi. Piniginė automatiškai sinchronizuojasi su „Bitcoin“ tinklu po ryšio užmezgimo, tačiau šis procesas dar nebaigtas. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Rodoma informacija gali būti pasenusi. Piniginė automatiškai sinchronizuojasi su „Verium“ tinklu po ryšio užmezgimo, tačiau šis procesas dar nebaigtas. Watch-only: @@ -1385,8 +1385,8 @@ Neteisingas mokėjimo adresas %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI negalima perskaityti! Tai gali sukelti negaliojantys „Bitcoin“ adresas arba netinkami URI parametrai. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI negalima perskaityti! Tai gali sukelti negaliojantys „Verium“ adresas arba netinkami URI parametrai. Payment request file handling @@ -1487,8 +1487,8 @@ Suma - Enter a Bitcoin address (e.g. %1) - Įveskite Bitcoin adresą (pvz., %1) + Enter a Verium address (e.g. %1) + Įveskite Verium adresą (pvz., %1) %1 d @@ -1944,8 +1944,8 @@ Žinutė: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Neprivalomas pranešimas, pridedamas prie mokėjimo prašymo, kuris bus rodomas atidarius užklausą. Pastaba: pranešimas nebus išsiųstas su mokėjimu per „Bitcoin“ tinklą. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Neprivalomas pranešimas, pridedamas prie mokėjimo prašymo, kuris bus rodomas atidarius užklausą. Pastaba: pranešimas nebus išsiųstas su mokėjimu per „Verium“ tinklą. An optional label to associate with the new receiving address. @@ -2353,8 +2353,8 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat Apskaičiuota, kad bus pradėtas patvirtinimas per %n bloką.Apskaičiuota, kad bus pradėtas patvirtinimas per %n blokus.Apskaičiuota, kad bus pradėtas patvirtinimas per %n blokus.Apskaičiuota, kad bus pradėtas patvirtinimas per %n blokus. - Warning: Invalid Bitcoin address - Įspėjimas: neteisingas Bitcoin adresas + Warning: Invalid Verium address + Įspėjimas: neteisingas Verium adresas Warning: Unknown change address @@ -2396,8 +2396,8 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat Tai įprastas mokėjimas. - The Bitcoin address to send the payment to - Bitcoin adresas, į kurį siunčiamas mokėjimas + The Verium address to send the payment to + Verium adresas, į kurį siunčiamas mokėjimas Alt+A @@ -2444,8 +2444,8 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat Įveskite šio adreso etiketę, kad ją pridėtumėte prie naudojamų adresų sąrašo - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Pranešimas, kuris buvo pridėtas prie bitcoin: URI, kuris bus saugomas kartu su sandoriu jūsų nuoroda. Pastaba: šis pranešimas nebus išsiųstas per „Bitcoin“ tinklą. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Pranešimas, kuris buvo pridėtas prie bitcoin: URI, kuris bus saugomas kartu su sandoriu jūsų nuoroda. Pastaba: šis pranešimas nebus išsiųstas per „Verium“ tinklą. Pay To: @@ -2489,8 +2489,8 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat &Pasirašyti žinutę - The Bitcoin address to sign the message with - Bitcoin adresas, kuriuo bus pasirašytas pranešimas su + The Verium address to sign the message with + Verium adresas, kuriuo bus pasirašytas pranešimas su Choose previously used address @@ -2521,7 +2521,7 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat Nukopijuokite dabartinį parašą į sistemos iškarpinę - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Registruotis žinute įrodymuii, kad turite šį adresą @@ -2541,12 +2541,12 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat &Patikrinti žinutę - The Bitcoin address the message was signed with - Bitcoin adresas, kuriuo buvo pasirašytas pranešimas + The Verium address the message was signed with + Verium adresas, kuriuo buvo pasirašytas pranešimas - Verify the message to ensure it was signed with the specified Bitcoin address - Patikrinkite žinutę, jog įsitikintumėte, kad ją pasirašė nurodytas Bitcoin adresas + Verify the message to ensure it was signed with the specified Verium address + Patikrinkite žinutę, jog įsitikintumėte, kad ją pasirašė nurodytas Verium adresas Verify &Message diff --git a/src/qt/locale/bitcoin_lv.ts b/src/qt/locale/bitcoin_lv.ts index f4f3cea70d..9163794583 100644 --- a/src/qt/locale/bitcoin_lv.ts +++ b/src/qt/locale/bitcoin_lv.ts @@ -132,7 +132,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Sign &message... Parakstīt &ziņojumu... @@ -198,8 +198,8 @@ Bloku reindeksēšana no diska... - Send coins to a Bitcoin address - Nosūtīt bitkoinus uz Bitcoin adresi + Send coins to a Verium address + Nosūtīt bitkoinus uz Verium adresi Backup wallet to another location @@ -242,12 +242,12 @@ Šifrēt privātās atslēgas kuras pieder tavam maciņam - Sign messages with your Bitcoin addresses to prove you own them - Parakstīt ziņojumus ar savām Bitcoin adresēm lai pierādītu ka tās pieder tev + Sign messages with your Verium addresses to prove you own them + Parakstīt ziņojumus ar savām Verium adresēm lai pierādītu ka tās pieder tev - Verify messages to ensure they were signed with specified Bitcoin addresses - Pārbaudīt ziņojumus lai pārliecinātos, ka tie tika parakstīti ar norādītajām Bitcoin adresēm + Verify messages to ensure they were signed with specified Verium addresses + Pārbaudīt ziņojumus lai pārliecinātos, ka tie tika parakstīti ar norādītajām Verium adresēm &File @@ -455,8 +455,8 @@ Izmantot pielāgotu datu mapi: - Bitcoin - Bitcoin + Verium + Verium Error @@ -551,8 +551,8 @@ &Tērēt neapstiprinātu atlikumu - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Uz rūtera automātiski atvērt Bitcoin klienta portu. Tas strādā tikai tad, ja rūteris atbalsta UPnP un tas ir ieslēgts. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Uz rūtera automātiski atvērt Verium klienta portu. Tas strādā tikai tad, ja rūteris atbalsta UPnP un tas ir ieslēgts. Map port using &UPnP @@ -604,7 +604,7 @@ Whether to show coin control features or not. - Vai rādīt Bitcoin kontroles funkcijas vai nē. + Vai rādīt Verium kontroles funkcijas vai nē. &OK @@ -642,8 +642,8 @@ Forma - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Attēlotā informācija var būt novecojusi. Jūsu maciņš pēc savienojuma izveides automātiski sinhronizējas ar Bitcoin tīklu, taču šis process vēl nav beidzies. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Attēlotā informācija var būt novecojusi. Jūsu maciņš pēc savienojuma izveides automātiski sinhronizējas ar Verium tīklu, taču šis process vēl nav beidzies. Available: @@ -914,7 +914,7 @@ Coin Control Features - Bitcoin Kontroles Funkcijas + Verium Kontroles Funkcijas Inputs... @@ -1097,8 +1097,8 @@ Kopēt parakstu uz sistēmas starpliktuvi - Sign the message to prove you own this Bitcoin address - Parakstīt ziņojumu lai pierādītu, ka esi šīs Bitcoin adreses īpašnieks. + Sign the message to prove you own this Verium address + Parakstīt ziņojumu lai pierādītu, ka esi šīs Verium adreses īpašnieks. Sign &Message diff --git a/src/qt/locale/bitcoin_mk.ts b/src/qt/locale/bitcoin_mk.ts index 3945687845..6a0fbf1f21 100644 --- a/src/qt/locale/bitcoin_mk.ts +++ b/src/qt/locale/bitcoin_mk.ts @@ -64,7 +64,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Sign &message... Потпиши &порака... @@ -126,7 +126,7 @@ Повторно индексирање на блокови од дискот... - Send coins to a Bitcoin address + Send coins to a Verium address Испрати биткоини на Биткоин адреса @@ -289,7 +289,7 @@ Intro - Bitcoin + Verium Биткоин diff --git a/src/qt/locale/bitcoin_ml.ts b/src/qt/locale/bitcoin_ml.ts index 8bc0f3b54c..24b3f817da 100644 --- a/src/qt/locale/bitcoin_ml.ts +++ b/src/qt/locale/bitcoin_ml.ts @@ -63,7 +63,7 @@ സ്വീകരിക്കുന്ന വിലാസങ്ങൾ - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. പേയ്മെന്റുകൾ അയയ്ക്കുന്നതിനുള്ള നിങ്ങളുടെ ബിറ്റ്കോയിൻ വിലാസങ്ങളാണ് ഇവ. നാണയങ്ങൾ അയയ്ക്കുന്നതിനുമുമ്പ് എല്ലായ്പ്പോഴും തുകയും സ്വീകരിക്കുന്ന വിലാസവും പരിശോധിക്കുക. @@ -165,7 +165,7 @@ BanTableModel - BitcoinGUI + VeriumGUI CoinControlDialog diff --git a/src/qt/locale/bitcoin_mn.ts b/src/qt/locale/bitcoin_mn.ts index 07093aca94..e356ff57e6 100644 --- a/src/qt/locale/bitcoin_mn.ts +++ b/src/qt/locale/bitcoin_mn.ts @@ -64,7 +64,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Sign &message... &Зурвас хавсаргах... @@ -223,7 +223,7 @@ Intro - Bitcoin + Verium Биткойн diff --git a/src/qt/locale/bitcoin_mr_IN.ts b/src/qt/locale/bitcoin_mr_IN.ts index b00ef57759..3e0b0d292d 100644 --- a/src/qt/locale/bitcoin_mr_IN.ts +++ b/src/qt/locale/bitcoin_mr_IN.ts @@ -62,7 +62,7 @@ स्वीकृती पत्ते - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. पैसे पाठविण्यासाठीचे हे तुमचे बिटकॉईन पत्त्ते आहेत. नाणी पाठविण्यापूर्वी नेहमी रक्कम आणि प्राप्त होणारा पत्ता तपासून पहा. @@ -88,7 +88,7 @@ BanTableModel - BitcoinGUI + VeriumGUI CoinControlDialog diff --git a/src/qt/locale/bitcoin_ms.ts b/src/qt/locale/bitcoin_ms.ts index f6224aa4ee..afb5ad3358 100644 --- a/src/qt/locale/bitcoin_ms.ts +++ b/src/qt/locale/bitcoin_ms.ts @@ -68,8 +68,8 @@ Alihkan fail data ke dalam tab semasa alamat-alamat penerimaan - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Ini adalah alamat Bitcoin anda untuk pembayaran. Periksa jumlah dan alamat penerima sebelum membuat penghantaran koin sentiasa. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Ini adalah alamat Verium anda untuk pembayaran. Periksa jumlah dan alamat penerima sebelum membuat penghantaran koin sentiasa. &Copy Address @@ -222,7 +222,7 @@ Alihkan fail data ke dalam tab semasa - BitcoinGUI + VeriumGUI Sign &message... Tandatangan & mesej... @@ -320,8 +320,8 @@ Alihkan fail data ke dalam tab semasa Reindexi blok pada cakera... - Send coins to a Bitcoin address - Menghantar koin kepada alamat Bitcoin + Send coins to a Verium address + Menghantar koin kepada alamat Verium Backup wallet to another location @@ -364,12 +364,12 @@ Alihkan fail data ke dalam tab semasa sulitkan kata laluan milik peribadi anda - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them sahkan mesej bersama alamat bitcoin anda untuk menunjukkan alamat ini anda punya - Verify messages to ensure they were signed with specified Bitcoin addresses - Sahkan mesej untuk memastikan mereka telah ditandatangani dengan alamat Bitcoin yang ditentukan + Verify messages to ensure they were signed with specified Verium addresses + Sahkan mesej untuk memastikan mereka telah ditandatangani dengan alamat Verium yang ditentukan &File @@ -465,8 +465,8 @@ Alihkan fail data ke dalam tab semasa Intro - Bitcoin - Bitcoin + Verium + Verium Error diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/bitcoin_nb.ts index bed94f127f..33e7897e09 100644 --- a/src/qt/locale/bitcoin_nb.ts +++ b/src/qt/locale/bitcoin_nb.ts @@ -66,8 +66,8 @@ Mottager adresser - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Dette er dine Bitcoin adresser for å sende å sende betalinger. Husk å sjekke beløp og mottager adresser før du sender mynter. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Dette er dine Verium adresser for å sende å sende betalinger. Husk å sjekke beløp og mottager adresser før du sender mynter. &Copy Address @@ -224,7 +224,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Signer &melding @@ -326,8 +326,8 @@ Proxy er <b>slått på</b>: %1 - Send coins to a Bitcoin address - Send mynter til en Bitcoin adresse + Send coins to a Verium address + Send mynter til en Verium adresse Backup wallet to another location @@ -370,12 +370,12 @@ Krypter de private nøklene som tilhører lommeboken din - Sign messages with your Bitcoin addresses to prove you own them - Signer meldingene med Bitcoin adresse for å bevise at diu eier dem + Sign messages with your Verium addresses to prove you own them + Signer meldingene med Verium adresse for å bevise at diu eier dem - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifiser meldinger for å sikre at de ble signert med en angitt Bitcoin adresse + Verify messages to ensure they were signed with specified Verium addresses + Verifiser meldinger for å sikre at de ble signert med en angitt Verium adresse &File @@ -414,8 +414,8 @@ &Kommandolinjealternativer - %n active connection(s) to Bitcoin network - %n aktiv tilkobling til Bitcoin nettverket%n aktive tilkoblinger til Bitcoin nettverket + %n active connection(s) to Verium network + %n aktiv tilkobling til Verium nettverket%n aktive tilkoblinger til Verium nettverket Indexing blocks on disk... @@ -482,8 +482,8 @@ Lukk lommebok - Show the %1 help message to get a list with possible Bitcoin command-line options - Vis %1-hjelpemeldingen for å få en liste over mulige Bitcoin-kommandolinjealternativer + Show the %1 help message to get a list with possible Verium command-line options + Vis %1-hjelpemeldingen for å få en liste over mulige Verium-kommandolinjealternativer default wallet @@ -590,8 +590,8 @@ Lommeboken er <b>kryptert</b> og for tiden <b>låst</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - En fatal feil har inntruffet. Bitcoin kan ikke lenger trygt fortsette, og må derfor avslutte. + A fatal error occurred. Verium can no longer continue safely and will quit. + En fatal feil har inntruffet. Verium kan ikke lenger trygt fortsette, og må derfor avslutte. @@ -786,8 +786,8 @@ Rediger utsendingsadresse - The entered address "%1" is not a valid Bitcoin address. - Den angitte adressen "%1" er ikke en gyldig Bitcoin-adresse. + The entered address "%1" is not a valid Verium address. + Den angitte adressen "%1" er ikke en gyldig Verium-adresse. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -879,8 +879,8 @@ Bruk en egendefinert datamappe: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -891,8 +891,8 @@ Omtrent %1GB data vil bli lagret i denne mappen. - %1 will download and store a copy of the Bitcoin block chain. - %1 vil laste ned og lagre en kopi av Bitcoin blokkjeden. + %1 will download and store a copy of the Verium block chain. + %1 vil laste ned og lagre en kopi av Verium blokkjeden. The wallet will also be stored in this directory. @@ -1103,8 +1103,8 @@ &Bruk ubekreftet veksel - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Åpne automatisk Bitcoin klientporten på ruteren. Dette virker kun om din ruter støtter UPnP og dette er påslått. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Åpne automatisk Verium klientporten på ruteren. Dette virker kun om din ruter støtter UPnP og dette er påslått. Map port using &UPnP @@ -1119,8 +1119,8 @@ Tillatt innkommend&e tilkoblinger - Connect to the Bitcoin network through a SOCKS5 proxy. - Koble til Bitcoin-nettverket gjennom en SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. + Koble til Verium-nettverket gjennom en SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1155,8 +1155,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Koble til Bitcoin-nettverket gjennom en separat SOCKS5 mellomtjener for Tor skjulte tjenester. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Koble til Verium-nettverket gjennom en separat SOCKS5 mellomtjener for Tor skjulte tjenester. &Window @@ -1262,8 +1262,8 @@ Skjema - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Informasjonen som vises kan være foreldet. Din lommebok synkroniseres automatisk med Bitcoin-nettverket etter at tilkobling er opprettet, men denne prosessen er ikke ferdig enda. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Informasjonen som vises kan være foreldet. Din lommebok synkroniseres automatisk med Verium-nettverket etter at tilkobling er opprettet, men denne prosessen er ikke ferdig enda. Watch-only: @@ -1353,7 +1353,7 @@ Ugyldig betalingsadresse %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. URI kan ikke fortolkes! Dette kan være forårsaket av en ugyldig bitcoin-adresse eller feilformede URI-parametre. @@ -1455,8 +1455,8 @@ Beløp - Enter a Bitcoin address (e.g. %1) - Oppgi en Bitcoin-adresse (f.eks. %1) + Enter a Verium address (e.g. %1) + Oppgi en Verium-adresse (f.eks. %1) %1 d @@ -1888,8 +1888,8 @@ &Melding: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - En valgfri melding å tilknytte betalingsetterspørringen, som vil bli vist når forespørselen er åpnet. Meldingen vil ikke bli sendt med betalingen over Bitcoin-nettverket. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + En valgfri melding å tilknytte betalingsetterspørringen, som vil bli vist når forespørselen er åpnet. Meldingen vil ikke bli sendt med betalingen over Verium-nettverket. An optional label to associate with the new receiving address. @@ -2034,7 +2034,7 @@ SendCoinsDialog Send Coins - Send Bitcoins + Send Veriums Coin Control Features @@ -2277,7 +2277,7 @@ Antatt bekreftelsesbegynnelse innen %n blokk.Antatt bekreftelsesbegynnelse innen %n blokker. - Warning: Invalid Bitcoin address + Warning: Invalid Verium address Advarsel Ugyldig bitcoin-adresse @@ -2320,8 +2320,8 @@ Dette er en normal betaling. - The Bitcoin address to send the payment to - Bitcoin-adressen betalingen skal sendes til + The Verium address to send the payment to + Verium-adressen betalingen skal sendes til Alt+A @@ -2368,8 +2368,8 @@ Skriv inn en merkelapp for denne adressen for å legge den til listen av brukte adresser - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - En melding som var tilknyttet bitcoinen: URI vil bli lagret med transaksjonen for din oversikt. Denne meldingen vil ikke bli sendt over Bitcoin-nettverket. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + En melding som var tilknyttet bitcoinen: URI vil bli lagret med transaksjonen for din oversikt. Denne meldingen vil ikke bli sendt over Verium-nettverket. Pay To: @@ -2417,8 +2417,8 @@ Du kan signere meldinger/avtaler med adresser for å bevise at du kan motta bitcoins sendt til dem. Vær forsiktig med å signere noe vagt eller tilfeldig, siden phishing-angrep kan prøve å lure deg til å signere din identitet over til dem. Bare signer fullt detaljerte utsagn som du er enig i. - The Bitcoin address to sign the message with - Bitcoin-adressen meldingen skal signeres med + The Verium address to sign the message with + Verium-adressen meldingen skal signeres med Choose previously used address @@ -2449,8 +2449,8 @@ Kopier valgt signatur til utklippstavle - Sign the message to prove you own this Bitcoin address - Signer meldingen for å bevise at du eier denne Bitcoin-adressen + Sign the message to prove you own this Verium address + Signer meldingen for å bevise at du eier denne Verium-adressen Sign &Message @@ -2473,12 +2473,12 @@ Skriv inn mottakerens adresse, melding (forsikre deg om at du kopier linjeskift, mellomrom, faner osv. nøyaktig) og underskrift nedenfor for å bekrefte meldingen. Vær forsiktig så du ikke leser mer ut av signaturen enn hva som er i den signerte meldingen i seg selv, for å unngå å bli lurt av et man-in-the-middle-angrep. Merk at dette bare beviser at den som signerer kan motta med adressen, dette beviser ikke hvem som har sendt transaksjoner! - The Bitcoin address the message was signed with - Bitcoin-adressen meldingen ble signert med + The Verium address the message was signed with + Verium-adressen meldingen ble signert med - Verify the message to ensure it was signed with the specified Bitcoin address - Verifiser meldingen for å være sikker på at den ble signert av den angitte Bitcoin-adressen + Verify the message to ensure it was signed with the specified Verium address + Verifiser meldingen for å være sikker på at den ble signert av den angitte Verium-adressen Verify &Message diff --git a/src/qt/locale/bitcoin_ne.ts b/src/qt/locale/bitcoin_ne.ts index a1fbd4f82f..7262eb89af 100644 --- a/src/qt/locale/bitcoin_ne.ts +++ b/src/qt/locale/bitcoin_ne.ts @@ -93,7 +93,7 @@ - BitcoinGUI + VeriumGUI Sign &message... सन्देशमा &amp;हस्ताक्षर गर्नुहोस्... @@ -171,7 +171,7 @@ डिस्कमा ब्लकलाई पुनः सूचीकरण गरिँदै... - Send coins to a Bitcoin address + Send coins to a Verium address बिटकोइन ठेगानामा सिक्का पठाउनुहोस् @@ -240,7 +240,7 @@ OverviewPage - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. देखाइएको सूचना पूरानो हुन सक्छ । कनेक्सन स्थापित भएपछि, तपाईंको वालेट बिटकोइन नेटवर्कमा स्वचालित रूपमा समिकरण हुन्छ , तर यो प्रक्रिया अहिले सम्म पूरा भएको छैन । @@ -305,7 +305,7 @@ रकम - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) कृपया बिटकोइन ठेगाना प्रवेश गर्नुहोस् (उदाहरण %1) @@ -358,7 +358,7 @@ यो ठेगानालाई प्रयोग गरिएको ठेगानाको सूचीमा थप्न एउटा लेबल प्रविष्ट गर्नुहोस् - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. बिटकोइनमा संलग्न गरिएको सन्देश: तपाईंको मध्यस्थको लागि कारोबारको साथमा भण्डारण गरिने URI । नोट: यो सन्देश बिटकोइन नेटवर्क मार्फत पठाइने छैन । diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index 748da9b800..508b2b487d 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -66,12 +66,12 @@ Ontvangstadressen - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Dit zijn uw Bitcoinadressen om betalingen mee te verzenden. Controleer altijd het bedrag en het ontvangstadres voordat u uw bitcoins verzendt. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Dit zijn uw Veriumadressen om betalingen mee te verzenden. Controleer altijd het bedrag en het ontvangstadres voordat u uw bitcoins verzendt. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Dit zijn jouw Bitcoin adressen voor het ontvangen van betalingen. Gebruik de 'Nieuwe ontvangst adres maken' knop in de ontvangst tab om een nieuwe adres te maken. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Dit zijn jouw Verium adressen voor het ontvangen van betalingen. Gebruik de 'Nieuwe ontvangst adres maken' knop in de ontvangst tab om een nieuwe adres te maken. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... &Onderteken bericht... @@ -362,8 +362,8 @@ Proxy is <b>ingeschakeld</b>: %1 - Send coins to a Bitcoin address - Verstuur munten naar een Bitcoinadres + Send coins to a Verium address + Verstuur munten naar een Veriumadres Backup wallet to another location @@ -406,12 +406,12 @@ Versleutel de geheime sleutels die bij uw portemonnee horen - Sign messages with your Bitcoin addresses to prove you own them - Onderteken berichten met uw Bitcoinadressen om te bewijzen dat u deze adressen bezit + Sign messages with your Verium addresses to prove you own them + Onderteken berichten met uw Veriumadressen om te bewijzen dat u deze adressen bezit - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifiëer handtekeningen om zeker te zijn dat de berichten zijn ondertekend met de gespecificeerde Bitcoinadressen + Verify messages to ensure they were signed with specified Verium addresses + Verifiëer handtekeningen om zeker te zijn dat de berichten zijn ondertekend met de gespecificeerde Veriumadressen &File @@ -450,8 +450,8 @@ &Opdrachtregelopties - %n active connection(s) to Bitcoin network - %n actieve verbinding met Bitcoinnetwerk%n actieve verbindingen met Bitcoinnetwerk + %n active connection(s) to Verium network + %n actieve verbinding met Veriumnetwerk%n actieve verbindingen met Veriumnetwerk Indexing blocks on disk... @@ -518,8 +518,8 @@ Portemonnee Sluiten - Show the %1 help message to get a list with possible Bitcoin command-line options - Toon het %1 hulpbericht om een lijst te krijgen met mogelijke Bitcoin commandoregelopties + Show the %1 help message to get a list with possible Verium command-line options + Toon het %1 hulpbericht om een lijst te krijgen met mogelijke Verium commandoregelopties default wallet @@ -630,8 +630,8 @@ Portemonnee is <b>versleuteld</b> en momenteel <b>gesloten</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Een fatale fout heeft zich voorgedaan. Bitcoin kan niet veilig worden verdergezet en wordt afgesloten. + A fatal error occurred. Verium can no longer continue safely and will quit. + Een fatale fout heeft zich voorgedaan. Verium kan niet veilig worden verdergezet en wordt afgesloten. @@ -875,8 +875,8 @@ Dit is ideaal voor alleen-lezen portommonees. Bewerk verzendadres - The entered address "%1" is not a valid Bitcoin address. - Het opgegeven adres "%1" is een ongeldig Bitcoinadres. + The entered address "%1" is not a valid Verium address. + Het opgegeven adres "%1" is een ongeldig Veriumadres. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -976,8 +976,8 @@ Dit is ideaal voor alleen-lezen portommonees. Gebruik een aangepaste gegevensmap: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -992,8 +992,8 @@ Dit is ideaal voor alleen-lezen portommonees. Gemiddeld %1 GB aan data zal worden opgeslagen in deze map. - %1 will download and store a copy of the Bitcoin block chain. - %1 zal een kopie van de blokketen van Bitcoin downloaden en opslaan. + %1 will download and store a copy of the Verium block chain. + %1 zal een kopie van de blokketen van Verium downloaden en opslaan. The wallet will also be stored in this directory. @@ -1028,7 +1028,7 @@ Dit is ideaal voor alleen-lezen portommonees. Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Recente transacties zijn mogelijk nog niet zichtbaar. De balans van de portemonnee is daarom mogelijk niet correct. Deze informatie is correct zodra de synchronisatie met het Bitcoin-netwerk is voltooid, zoals onderaan beschreven. + Recente transacties zijn mogelijk nog niet zichtbaar. De balans van de portemonnee is daarom mogelijk niet correct. Deze informatie is correct zodra de synchronisatie met het Verium-netwerk is voltooid, zoals onderaan beschreven. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -1232,8 +1232,8 @@ Dit is ideaal voor alleen-lezen portommonees. &Spendeer onbevestigd wisselgeld - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Open de Bitcoinpoort automatisch op de router. Dit werkt alleen als de router UPnP ondersteunt en het aanstaat. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Open de Veriumpoort automatisch op de router. Dit werkt alleen als de router UPnP ondersteunt en het aanstaat. Map port using &UPnP @@ -1248,8 +1248,8 @@ Dit is ideaal voor alleen-lezen portommonees. Sta inkomende verbindingen toe - Connect to the Bitcoin network through a SOCKS5 proxy. - Verbind met het Bitcoinnetwerk via een SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. + Verbind met het Veriumnetwerk via een SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1284,8 +1284,8 @@ Dit is ideaal voor alleen-lezen portommonees. Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Maak verbinding met Bitcoinnetwerk door een aparte SOCKS5-proxy voor verborgen diensten van Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Maak verbinding met Veriumnetwerk door een aparte SOCKS5-proxy voor verborgen diensten van Tor. &Window @@ -1395,8 +1395,8 @@ Dit is ideaal voor alleen-lezen portommonees. Vorm - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - De weergegeven informatie kan verouderd zijn. Uw portemonnee synchroniseert automatisch met het Bitcoinnetwerk nadat een verbinding is gelegd, maar dit proces is nog niet voltooid. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + De weergegeven informatie kan verouderd zijn. Uw portemonnee synchroniseert automatisch met het Veriumnetwerk nadat een verbinding is gelegd, maar dit proces is nog niet voltooid. Watch-only: @@ -1506,8 +1506,8 @@ Dit is ideaal voor alleen-lezen portommonees. Ongeldig betalingsadres %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI kan niet verwerkt worden! Dit kan het gevolg zijn van een ongeldig Bitcoin adres of misvormde URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI kan niet verwerkt worden! Dit kan het gevolg zijn van een ongeldig Verium adres of misvormde URI parameters. Payment request file handling @@ -1608,8 +1608,8 @@ Dit is ideaal voor alleen-lezen portommonees. Bedrag - Enter a Bitcoin address (e.g. %1) - Voer een Bitcoinadres in (bijv. %1) + Enter a Verium address (e.g. %1) + Voer een Veriumadres in (bijv. %1) %1 d @@ -2069,8 +2069,8 @@ Dit is ideaal voor alleen-lezen portommonees. &Bericht - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Een optioneel bericht om bij te voegen aan het betalingsverzoek, welke zal getoond worden wanneer het verzoek is geopend. Opmerking: Het bericht zal niet worden verzonden met de betaling over het Bitcoinnetwerk. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Een optioneel bericht om bij te voegen aan het betalingsverzoek, welke zal getoond worden wanneer het verzoek is geopend. Opmerking: Het bericht zal niet worden verzonden met de betaling over het Veriumnetwerk. An optional label to associate with the new receiving address. @@ -2498,8 +2498,8 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Schatting is dat bevestiging begint over %n blok.Schatting is dat bevestiging begint over %n blokken. - Warning: Invalid Bitcoin address - Waarschuwing: Ongeldig Bitcoinadres + Warning: Invalid Verium address + Waarschuwing: Ongeldig Veriumadres Warning: Unknown change address @@ -2541,8 +2541,8 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Dit is een normale betaling. - The Bitcoin address to send the payment to - Het Bitcoinadres om betaling aan te versturen + The Verium address to send the payment to + Het Veriumadres om betaling aan te versturen Alt+A @@ -2589,8 +2589,8 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Vul een label voor dit adres in om het aan de lijst met gebruikte adressen toe te voegen - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Een bericht dat werd toegevoegd aan de bitcoin: URI welke wordt opgeslagen met de transactie ter referentie. Opmerking: Dit bericht zal niet worden verzonden over het Bitcoinnetwerk. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Een bericht dat werd toegevoegd aan de bitcoin: URI welke wordt opgeslagen met de transactie ter referentie. Opmerking: Dit bericht zal niet worden verzonden over het Veriumnetwerk. Pay To: @@ -2635,11 +2635,11 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - U kunt berichten/overeenkomsten ondertekenen met uw adres om te bewijzen dat u Bitcoins kunt versturen. Wees voorzichtig met het ondertekenen van iets vaags of willekeurigs, omdat phishingaanvallen u kunnen proberen te misleiden tot het ondertekenen van overeenkomsten om uw identiteit aan hen toe te vertrouwen. Onderteken alleen volledig gedetailleerde verklaringen voordat u akkoord gaat. + U kunt berichten/overeenkomsten ondertekenen met uw adres om te bewijzen dat u Veriums kunt versturen. Wees voorzichtig met het ondertekenen van iets vaags of willekeurigs, omdat phishingaanvallen u kunnen proberen te misleiden tot het ondertekenen van overeenkomsten om uw identiteit aan hen toe te vertrouwen. Onderteken alleen volledig gedetailleerde verklaringen voordat u akkoord gaat. - The Bitcoin address to sign the message with - Het Bitcoinadres om bericht mee te ondertekenen + The Verium address to sign the message with + Het Veriumadres om bericht mee te ondertekenen Choose previously used address @@ -2670,8 +2670,8 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Kopieer de huidige handtekening naar het systeemklembord - Sign the message to prove you own this Bitcoin address - Onderteken een bericht om te bewijzen dat u een bepaald Bitcoinadres bezit + Sign the message to prove you own this Verium address + Onderteken een bericht om te bewijzen dat u een bepaald Veriumadres bezit Sign &Message @@ -2694,12 +2694,12 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Voer het adres van de ontvanger in, bericht (zorg ervoor dat de regeleinden, spaties, tabs etc. precies kloppen) en onderteken onderaan om het bericht te verifiëren. Wees voorzicht om niet meer in de ondertekening te lezen dan in het getekende bericht zelf, om te voorkomen dat je wordt aangevallen met een man-in-the-middle attack. Houd er mee rekening dat dit alleen de ondertekende partij bewijst met het ontvangen adres, er kan niet bewezen worden dat er een transactie heeft plaatsgevonden! - The Bitcoin address the message was signed with - Het Bitcoinadres waarmee het bericht ondertekend is + The Verium address the message was signed with + Het Veriumadres waarmee het bericht ondertekend is - Verify the message to ensure it was signed with the specified Bitcoin address - Controleer een bericht om te verifiëren dat het gespecificeerde Bitcoinadres het bericht heeft ondertekend. + Verify the message to ensure it was signed with the specified Verium address + Controleer een bericht om te verifiëren dat het gespecificeerde Veriumadres het bericht heeft ondertekend. Verify &Message diff --git a/src/qt/locale/bitcoin_pam.ts b/src/qt/locale/bitcoin_pam.ts index 198dcf7b52..6f53044577 100644 --- a/src/qt/locale/bitcoin_pam.ts +++ b/src/qt/locale/bitcoin_pam.ts @@ -64,7 +64,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Sign &message... I-sign ing &mensayi @@ -122,8 +122,8 @@ &Alilan ing Passphrase... - Send coins to a Bitcoin address - Magpadalang barya king Bitcoin address + Send coins to a Verium address + Magpadalang barya king Verium address Backup wallet to another location @@ -283,8 +283,8 @@ Malaus ka - Bitcoin - Bitcoin + Verium + Verium Error @@ -323,8 +323,8 @@ &Network - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Ibuklat yang antimanu ing Bitcoin client port king router. Gagana yamu ini istung ing router mu susuporta yang UPnP at magsilbi ya. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Ibuklat yang antimanu ing Verium client port king router. Gagana yamu ini istung ing router mu susuporta yang UPnP at magsilbi ya. Map port using &UPnP @@ -402,8 +402,8 @@ Form - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Ing makaltong impormasion mapalyaring luma ne. Ing kekang wallet otomatiku yang mag-synchronize keng Bitcoin network istung mekakonekta ne king network, oneng ing prosesung ini ali ya pa kumpletu. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Ing makaltong impormasion mapalyaring luma ne. Ing kekang wallet otomatiku yang mag-synchronize keng Verium network istung mekakonekta ne king network, oneng ing prosesung ini ali ya pa kumpletu. Your current spendable balance @@ -669,8 +669,8 @@ Kopyan ing kasalungsungan pirma king system clipboard - Sign the message to prove you own this Bitcoin address - Pirman ing mensayi ban patune na keka ya ining Bitcoin address + Sign the message to prove you own this Verium address + Pirman ing mensayi ban patune na keka ya ining Verium address Sign &Message @@ -689,8 +689,8 @@ &Beripikan ing Mensayi - Verify the message to ensure it was signed with the specified Bitcoin address - Beripikan ing mensayi ban asiguradu a me pirma ya ini gamit ing mepiling Bitcoin address + Verify the message to ensure it was signed with the specified Verium address + Beripikan ing mensayi ban asiguradu a me pirma ya ini gamit ing mepiling Verium address Verify &Message diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts index 75f94e02e1..36b71f5cfc 100644 --- a/src/qt/locale/bitcoin_pl.ts +++ b/src/qt/locale/bitcoin_pl.ts @@ -66,12 +66,12 @@ Adresy odbioru - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Tutaj znajdują się adresy Bitcoin na które wysyłasz płatności. Zawsze sprawdzaj ilość i adres odbiorcy przed wysyłką monet. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Tutaj znajdują się adresy Verium na które wysyłasz płatności. Zawsze sprawdzaj ilość i adres odbiorcy przed wysyłką monet. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - To są Twoje adresy Bitcoin do otrzymywania płatności. Użyj przycisku "Stwórz nowy adres odbiorczy" w zakładce odbioru żeby stworzyć nowy adres. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + To są Twoje adresy Verium do otrzymywania płatności. Użyj przycisku "Stwórz nowy adres odbiorczy" w zakładce odbioru żeby stworzyć nowy adres. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Podpisz wiado&mość... @@ -362,7 +362,7 @@ Proxy jest <b>włączone</b>: %1 - Send coins to a Bitcoin address + Send coins to a Verium address Wyślij monety na adres bitcoinowy @@ -406,11 +406,11 @@ Szyfruj klucze prywatne, które są w twoim portfelu - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them Podpisz wiadomości swoim adresem aby udowodnić jego posiadanie - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses Zweryfikuj wiadomość, aby upewnić się, że została podpisana podanym adresem bitcoinowym. @@ -450,8 +450,8 @@ &Opcje linii komend - %n active connection(s) to Bitcoin network - %n aktywnych połączeń do sieci Bitcoin%n aktywnych połączeń do sieci Bitcoin%n aktywnych połączeń do sieci Bitcoin%n aktywnych połączeń do sieci Bitcoin + %n active connection(s) to Verium network + %n aktywnych połączeń do sieci Verium%n aktywnych połączeń do sieci Verium%n aktywnych połączeń do sieci Verium%n aktywnych połączeń do sieci Verium Indexing blocks on disk... @@ -518,7 +518,7 @@ Zamknij portfel - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options Pokaż pomoc %1 aby zobaczyć listę wszystkich opcji lnii poleceń. @@ -630,8 +630,8 @@ Portfel jest <b>zaszyfrowany</b> i obecnie <b>zablokowany</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Wystąpił krytyczny błąd. Bitcoin nie jest w stanie kontynuować bezpiecznie i zostanie zamknięty. + A fatal error occurred. Verium can no longer continue safely and will quit. + Wystąpił krytyczny błąd. Verium nie jest w stanie kontynuować bezpiecznie i zostanie zamknięty. @@ -874,8 +874,8 @@ Zmień adres wysyłania - The entered address "%1" is not a valid Bitcoin address. - Wprowadzony adres "%1" nie jest prawidłowym adresem Bitcoin. + The entered address "%1" is not a valid Verium address. + Wprowadzony adres "%1" nie jest prawidłowym adresem Verium. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -975,8 +975,8 @@ Użyj wybranego folderu dla danych - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ Około %1 GB danych zostanie zapisane w tym katalogu. - %1 will download and store a copy of the Bitcoin block chain. - %1 pobierze i zapisze lokalnie kopię łańcucha bloków Bitcoin. + %1 will download and store a copy of the Verium block chain. + %1 pobierze i zapisze lokalnie kopię łańcucha bloków Verium. The wallet will also be stored in this directory. @@ -1231,8 +1231,8 @@ Wydaj niepotwierdzoną re&sztę - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Automatycznie otwiera port klienta Bitcoin na routerze. Ta opcja dzieła tylko jeśli twój router wspiera UPnP i jest ono włączone. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Automatycznie otwiera port klienta Verium na routerze. Ta opcja dzieła tylko jeśli twój router wspiera UPnP i jest ono włączone. Map port using &UPnP @@ -1247,8 +1247,8 @@ Zezwól na &połączenia przychodzące - Connect to the Bitcoin network through a SOCKS5 proxy. - Połącz się z siecią Bitcoin poprzez proxy SOCKS5. + Connect to the Verium network through a SOCKS5 proxy. + Połącz się z siecią Verium poprzez proxy SOCKS5. &Connect through SOCKS5 proxy (default proxy): @@ -1283,8 +1283,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Połącz się z siecią Bitcoin przy pomocy oddzielnego SOCKS5 proxy dla sieci TOR + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Połącz się z siecią Verium przy pomocy oddzielnego SOCKS5 proxy dla sieci TOR &Window @@ -1394,7 +1394,7 @@ Formularz - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. Wyświetlana informacja może być nieaktualna. Twój portfel synchronizuje się automatycznie z siecią bitcoin, zaraz po tym jak uzyskano połączenie, ale proces ten nie został jeszcze ukończony. @@ -1505,8 +1505,8 @@ błędny adres płatności %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - Nie można przeanalizować identyfikatora URI! Może to być spowodowane nieważnym adresem Bitcoin lub nieprawidłowymi parametrami URI. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + Nie można przeanalizować identyfikatora URI! Może to być spowodowane nieważnym adresem Verium lub nieprawidłowymi parametrami URI. Payment request file handling @@ -1607,7 +1607,7 @@ Kwota - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) Wprowadź adres bitcoinowy (np. %1) @@ -2068,8 +2068,8 @@ &Wiadomość: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Opcjonalna wiadomość do dołączenia do żądania płatności, która będzie wyświetlana, gdy żądanie zostanie otwarte. Uwaga: wiadomość ta nie zostanie wysłana wraz z płatnością w sieci Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Opcjonalna wiadomość do dołączenia do żądania płatności, która będzie wyświetlana, gdy żądanie zostanie otwarte. Uwaga: wiadomość ta nie zostanie wysłana wraz z płatnością w sieci Verium. An optional label to associate with the new receiving address. @@ -2498,8 +2498,8 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za Przybliżony czas rozpoczęcia zatwierdzenia: %n blok.Przybliżony czas rozpoczęcia zatwierdzenia: %n bloki.Przybliżony czas rozpoczęcia zatwierdzenia: %n bloków.Przybliżony czas rozpoczęcia zatwierdzenia: %n bloków. - Warning: Invalid Bitcoin address - Ostrzeżenie: nieprawidłowy adres Bitcoin + Warning: Invalid Verium address + Ostrzeżenie: nieprawidłowy adres Verium Warning: Unknown change address @@ -2541,8 +2541,8 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za To jest standardowa płatność - The Bitcoin address to send the payment to - Adres Bitcoin gdzie wysłać płatność + The Verium address to send the payment to + Adres Verium gdzie wysłać płatność Alt+A @@ -2589,8 +2589,8 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za Wprowadź etykietę dla tego adresu by dodać go do listy użytych adresów - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Wiadomość, która została dołączona do URI bitcoin:, która będzie przechowywana wraz z transakcją w celach informacyjnych. Uwaga: Ta wiadomość nie będzie rozsyłana w sieci Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Wiadomość, która została dołączona do URI bitcoin:, która będzie przechowywana wraz z transakcją w celach informacyjnych. Uwaga: Ta wiadomość nie będzie rozsyłana w sieci Verium. Pay To: @@ -2638,8 +2638,8 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za Możesz podpisywać wiadomości swoimi adresami aby udowodnić, że jesteś ich właścicielem. Uważaj, aby nie podpisywać niczego co wzbudza Twoje podejrzenia, ponieważ ktoś może stosować phishing próbując nakłonić Cię do ich podpisania. Akceptuj i podpisuj tylko w pełni zrozumiałe komunikaty i wiadomości. - The Bitcoin address to sign the message with - Adres Bitcoin, za pomocą którego podpisać wiadomość + The Verium address to sign the message with + Adres Verium, za pomocą którego podpisać wiadomość Choose previously used address @@ -2670,7 +2670,7 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za Kopiuje aktualny podpis do schowka systemowego - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Podpisz wiadomość aby dowieść, że ten adres jest twój @@ -2695,12 +2695,12 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadawca posiada klucz do adresu, natomiast nie potwierdza to, że poprawne wysłanie jakiejkolwiek transakcji! - The Bitcoin address the message was signed with - Adres Bitcoin, którym została podpisana wiadomość + The Verium address the message was signed with + Adres Verium, którym została podpisana wiadomość - Verify the message to ensure it was signed with the specified Bitcoin address - Zweryfikuj wiadomość, aby upewnić się, że została podpisana odpowiednim adresem Bitcoin. + Verify the message to ensure it was signed with the specified Verium address + Zweryfikuj wiadomość, aby upewnić się, że została podpisana odpowiednim adresem Verium. Verify &Message diff --git a/src/qt/locale/bitcoin_pt.ts b/src/qt/locale/bitcoin_pt.ts index c4a85f6503..2ee7ef434b 100644 --- a/src/qt/locale/bitcoin_pt.ts +++ b/src/qt/locale/bitcoin_pt.ts @@ -66,12 +66,12 @@ Endereços de receção - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estes são os seus endereços Bitcoin para enviar pagamentos. Verifique sempre o valor e o endereço de receção antes de enviar moedas. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Estes são os seus endereços Verium para enviar pagamentos. Verifique sempre o valor e o endereço de receção antes de enviar moedas. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Estes são os endereços Bitcoin para receiver pagamentos. Use o botão "Criar novo endereço para receiver" para crier novo endereço. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Estes são os endereços Verium para receiver pagamentos. Use o botão "Criar novo endereço para receiver" para crier novo endereço. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Assinar &mensagem... @@ -362,8 +362,8 @@ Proxy está <b>ativado</b>: %1 - Send coins to a Bitcoin address - Enviar moedas para um endereço Bitcoin + Send coins to a Verium address + Enviar moedas para um endereço Verium Backup wallet to another location @@ -406,12 +406,12 @@ Encriptar as chaves privadas que pertencem à sua carteira - Sign messages with your Bitcoin addresses to prove you own them - Assine as mensagens com os seus endereços Bitcoin para provar que é o proprietário dos mesmos + Sign messages with your Verium addresses to prove you own them + Assine as mensagens com os seus endereços Verium para provar que é o proprietário dos mesmos - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifique mensagens para assegurar que foram assinadas com o endereço Bitcoin especificado + Verify messages to ensure they were signed with specified Verium addresses + Verifique mensagens para assegurar que foram assinadas com o endereço Verium especificado &File @@ -450,8 +450,8 @@ &Opções da linha de &comando - %n active connection(s) to Bitcoin network - %n ligação ativa à rede Bitcoin%n ligações ativas à rede Bitcoin + %n active connection(s) to Verium network + %n ligação ativa à rede Verium%n ligações ativas à rede Verium Indexing blocks on disk... @@ -518,7 +518,7 @@ Fechar a carteira - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options Mostrar a mensagem de ajuda %1 para obter uma lista com possíveis opções a usar na linha de comandos. @@ -630,8 +630,8 @@ A carteira está <b>encriptada</b> e atualmente <b>bloqueada</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Ocorreu um erro fatal. O Bitcoin não pode continuar com segurança e irá fechar. + A fatal error occurred. Verium can no longer continue safely and will quit. + Ocorreu um erro fatal. O Verium não pode continuar com segurança e irá fechar. @@ -874,7 +874,7 @@ Editar o endereço de envio - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. O endereço introduzido "%1" não é um endereço bitcoin válido. @@ -975,8 +975,8 @@ Utilizar uma pasta de dados personalizada: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ Aproximadamente %1 GB de dados irão ser guardados nesta pasta. - %1 will download and store a copy of the Bitcoin block chain. - %1 irá descarregar e armazenar uma cópia da cadeia de blocos da Bitcoin. + %1 will download and store a copy of the Verium block chain. + %1 irá descarregar e armazenar uma cópia da cadeia de blocos da Verium. The wallet will also be stored in this directory. @@ -1232,7 +1232,7 @@ &Gastar troco não confirmado - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. Abrir a porta do cliente bitcoin automaticamente no seu router. Isto apenas funciona se o seu router suportar UPnP e este se encontrar ligado. @@ -1248,8 +1248,8 @@ Permitir ligações de "a receber" - Connect to the Bitcoin network through a SOCKS5 proxy. - Conectar à rede da Bitcoin através dum proxy SOCLS5. + Connect to the Verium network through a SOCKS5 proxy. + Conectar à rede da Verium através dum proxy SOCLS5. &Connect through SOCKS5 proxy (default proxy): @@ -1284,8 +1284,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Ligar à rede Bitcoin através de um proxy SOCKS5 separado para utilizar os serviços ocultos do Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Ligar à rede Verium através de um proxy SOCKS5 separado para utilizar os serviços ocultos do Tor. &Window @@ -1395,8 +1395,8 @@ Formulário - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - A informação mostrada poderá estar desatualizada. A sua carteira sincroniza automaticamente com a rede Bitcoin depois de estabelecer ligação, mas este processo ainda não está completo. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + A informação mostrada poderá estar desatualizada. A sua carteira sincroniza automaticamente com a rede Verium depois de estabelecer ligação, mas este processo ainda não está completo. Watch-only: @@ -1506,8 +1506,8 @@ Endereço de pagamento inválido %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI não foi lido corretamente! Isto pode ser causado por um endereço Bitcoin inválido ou por parâmetros URI malformados. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI não foi lido corretamente! Isto pode ser causado por um endereço Verium inválido ou por parâmetros URI malformados. Payment request file handling @@ -1608,8 +1608,8 @@ Quantia - Enter a Bitcoin address (e.g. %1) - Introduza um endereço Bitcoin (ex. %1) + Enter a Verium address (e.g. %1) + Introduza um endereço Verium (ex. %1) %1 d @@ -2069,8 +2069,8 @@ &Mensagem: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Uma mensagem opcional para anexar ao pedido de pagamento, que será exibida quando o pedido for aberto. Nota: A mensagem não será enviada com o pagamento através da rede Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Uma mensagem opcional para anexar ao pedido de pagamento, que será exibida quando o pedido for aberto. Nota: A mensagem não será enviada com o pagamento através da rede Verium. An optional label to associate with the new receiving address. @@ -2499,8 +2499,8 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Estimado para iniciar a confirmação dentro de %n bloco.Estimado para iniciar a confirmação dentro de %n blocos. - Warning: Invalid Bitcoin address - Aviso: endereço Bitcoin inválido + Warning: Invalid Verium address + Aviso: endereço Verium inválido Warning: Unknown change address @@ -2542,8 +2542,8 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Este é um pagamento normal. - The Bitcoin address to send the payment to - O endereço Bitcoin para enviar o pagamento + The Verium address to send the payment to + O endereço Verium para enviar o pagamento Alt+A @@ -2590,8 +2590,8 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Introduza uma etiqueta para este endereço para o adicionar à sua lista de endereços usados - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Uma mensagem que estava anexada ao URI bitcoin: que será armazenada com a transação para sua referência. Nota: Esta mensagem não será enviada através da rede Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Uma mensagem que estava anexada ao URI bitcoin: que será armazenada com a transação para sua referência. Nota: Esta mensagem não será enviada através da rede Verium. Pay To: @@ -2639,8 +2639,8 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Pode assinar mensagens com os seus endereços para provar que são seus. Tenha atenção ao assinar mensagens ambíguas, pois ataques de phishing podem tentar enganá-lo de modo a assinar a sua identidade para os atacantes. Apenas assine declarações detalhadas com as quais concorde. - The Bitcoin address to sign the message with - O endereço Bitcoin para designar a mensagem + The Verium address to sign the message with + O endereço Verium para designar a mensagem Choose previously used address @@ -2671,8 +2671,8 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Copiar a assinatura atual para a área de transferência - Sign the message to prove you own this Bitcoin address - Assine uma mensagem para provar que é dono deste endereço Bitcoin + Sign the message to prove you own this Verium address + Assine uma mensagem para provar que é dono deste endereço Verium Sign &Message @@ -2695,12 +2695,12 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Introduza o endereço de assinatura, mensagem (assegure-se que copia quebras de linha, espaços, tabulações, etc. exatamente) e assinatura abaixo para verificar a mensagem. Tenha atenção para não ler mais na assinatura do que o que estiver na mensagem assinada, para evitar ser enganado por um atacante que se encontre entre si e quem assinou a mensagem. - The Bitcoin address the message was signed with - O endereço Bitcoin com que a mensagem foi designada + The Verium address the message was signed with + O endereço Verium com que a mensagem foi designada - Verify the message to ensure it was signed with the specified Bitcoin address - Verifique a mensagem para assegurar que foi assinada com o endereço Bitcoin especificado + Verify the message to ensure it was signed with the specified Verium address + Verifique a mensagem para assegurar que foi assinada com o endereço Verium especificado Verify &Message diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index 4ceb834b60..ef25c205d4 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -66,12 +66,12 @@ Endereço de recebimento - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. Estes são os seus endereços para enviar pagamentos. Sempre cheque a quantia e o endereço do destinatário antes de enviar moedas. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Esses são seus endereços de Bitcoin para receber pagamentos. Utilize o botão Criar novo endereço de recebimento na aba receber para criar um novo endereço + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Esses são seus endereços de Verium para receber pagamentos. Utilize o botão Criar novo endereço de recebimento na aba receber para criar um novo endereço &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Assinar &mensagem... @@ -362,7 +362,7 @@ Proxy <b>ativado</b>: %1 - Send coins to a Bitcoin address + Send coins to a Verium address Enviar moedas para um endereço bitcoin @@ -406,12 +406,12 @@ Criptografar as chaves privadas que pertencem à sua carteira - Sign messages with your Bitcoin addresses to prove you own them - Assine mensagens com seus endereços Bitcoin para provar que você é dono delas + Sign messages with your Verium addresses to prove you own them + Assine mensagens com seus endereços Verium para provar que você é dono delas - Verify messages to ensure they were signed with specified Bitcoin addresses - Verificar mensagens para se assegurar que elas foram assinadas pelo dono de Endereços Bitcoin específicos + Verify messages to ensure they were signed with specified Verium addresses + Verificar mensagens para se assegurar que elas foram assinadas pelo dono de Endereços Verium específicos &File @@ -450,8 +450,8 @@ Opções de linha de &comando - %n active connection(s) to Bitcoin network - %n conexão ativa na rede Bitcoin%n conexões ativas na rede Bitcoin + %n active connection(s) to Verium network + %n conexão ativa na rede Verium%n conexões ativas na rede Verium Indexing blocks on disk... @@ -518,8 +518,8 @@ Fechar carteira - Show the %1 help message to get a list with possible Bitcoin command-line options - Mostrar a mensagem de ajuda do %1 para obter uma lista com possíveis opções de linha de comando Bitcoin + Show the %1 help message to get a list with possible Verium command-line options + Mostrar a mensagem de ajuda do %1 para obter uma lista com possíveis opções de linha de comando Verium default wallet @@ -630,8 +630,8 @@ Carteira está <b>criptografada</b> e atualmente <b>bloqueada</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Um erro fatal ocorreu. Bitcoin não pode continuar em segurança e irá fechar. + A fatal error occurred. Verium can no longer continue safely and will quit. + Um erro fatal ocorreu. Verium não pode continuar em segurança e irá fechar. @@ -874,7 +874,7 @@ Editar endereço de envio - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. O endereço digitado "%1" não é um endereço válido. @@ -975,8 +975,8 @@ Use um diretório de dados personalizado: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ Aproximadamente %1 GB de dados serão armazenados neste diretório. - %1 will download and store a copy of the Bitcoin block chain. - %1 irá baixar e armazenar uma cópia da block chain do Bitcoin. + %1 will download and store a copy of the Verium block chain. + %1 irá baixar e armazenar uma cópia da block chain do Verium. The wallet will also be stored in this directory. @@ -1231,8 +1231,8 @@ Ga&star troco não confirmado - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir automaticamente no roteador as portas do cliente Bitcoin. Isto só funcionará se seu roteador suportar UPnP e esta função estiver habilitada. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Abrir automaticamente no roteador as portas do cliente Verium. Isto só funcionará se seu roteador suportar UPnP e esta função estiver habilitada. Map port using &UPnP @@ -1247,8 +1247,8 @@ Permitir conexões de entrada - Connect to the Bitcoin network through a SOCKS5 proxy. - Conectar na rede Bitcoin através de um proxy SOCKS5. + Connect to the Verium network through a SOCKS5 proxy. + Conectar na rede Verium através de um proxy SOCKS5. &Connect through SOCKS5 proxy (default proxy): @@ -1283,8 +1283,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Conecte-se à rede Bitcoin através de um proxy SOCKS5 separado para utilizar serviços ocultos Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Conecte-se à rede Verium através de um proxy SOCKS5 separado para utilizar serviços ocultos Tor. &Window @@ -1394,8 +1394,8 @@ Formulário - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - A informação mostrada pode estar desatualizada. Sua carteira sincroniza automaticamente com a rede Bitcoin depois que a conexão é estabelecida, mas este processo ainda não está completo. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + A informação mostrada pode estar desatualizada. Sua carteira sincroniza automaticamente com a rede Verium depois que a conexão é estabelecida, mas este processo ainda não está completo. Watch-only: @@ -1505,7 +1505,7 @@ Endereço de pagamento %1 inválido - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. A URI não pode ser analisada! Isto pode ser causado por um endereço inválido ou um parâmetro URI malformado. @@ -1607,8 +1607,8 @@ Quantidade - Enter a Bitcoin address (e.g. %1) - Informe um endereço Bitcoin (ex: %1) + Enter a Verium address (e.g. %1) + Informe um endereço Verium (ex: %1) %1 d @@ -2068,8 +2068,8 @@ &Mensagem: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Uma mensagem opcional que será anexada na cobrança e será mostrada quando ela for aberta. Nota: A mensagem não será enviada com o pagamento pela rede Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Uma mensagem opcional que será anexada na cobrança e será mostrada quando ela for aberta. Nota: A mensagem não será enviada com o pagamento pela rede Verium. An optional label to associate with the new receiving address. @@ -2497,8 +2497,8 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Confirmação em %n bloco.Início estimado para confirmação em %n blocos. - Warning: Invalid Bitcoin address - Aviso: Endereço Bitcoin inválido + Warning: Invalid Verium address + Aviso: Endereço Verium inválido Warning: Unknown change address @@ -2540,8 +2540,8 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Este é um pagamento normal. - The Bitcoin address to send the payment to - O endereço Bitcoin para enviar o pagamento + The Verium address to send the payment to + O endereço Verium para enviar o pagamento Alt+A @@ -2588,8 +2588,8 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Digite um rótulo para este endereço para adicioná-lo no catálogo - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - A mensagem que foi anexada ao bitcoin: URI na qual será gravada na transação para sua referência. Nota: Essa mensagem não será gravada publicamente na rede Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A mensagem que foi anexada ao bitcoin: URI na qual será gravada na transação para sua referência. Nota: Essa mensagem não será gravada publicamente na rede Verium. Pay To: @@ -2637,8 +2637,8 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Você pode assinar mensagens com seus endereços para provar que você pode receber bitcoins enviados por alguém. Cuidado para não assinar nada vago ou aleatório, pois ataques phishing podem tentar te enganar para assinar coisas para eles como se fosse você. Somente assine termos bem detalhados que você concorde. - The Bitcoin address to sign the message with - O endereço Bitcoin que assinará a mensagem + The Verium address to sign the message with + O endereço Verium que assinará a mensagem Choose previously used address @@ -2669,8 +2669,8 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Copiar a assinatura para a área de transferência do sistema - Sign the message to prove you own this Bitcoin address - Assinar mensagem para provar que você é dono deste endereço Bitcoin + Sign the message to prove you own this Verium address + Assinar mensagem para provar que você é dono deste endereço Verium Sign &Message @@ -2693,12 +2693,12 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Coloque o endereço do autor, a mensagem (certifique-se de copiar toda a mensagem, incluindo quebras de linha, espaços, tabulações, etc.) e a assinatura abaixo para verificar a mensagem. Cuidado para não compreender mais da assinatura do que está na mensagem assinada de fato, para evitar ser enganado por um ataque man-in-the-middle. Note que isso somente prova que o signatário recebe com este endereço, não pode provar que é o remetente de nenhuma transação! - The Bitcoin address the message was signed with - O endereço Bitcoin que foi usado para assinar a mensagem + The Verium address the message was signed with + O endereço Verium que foi usado para assinar a mensagem - Verify the message to ensure it was signed with the specified Bitcoin address - Verificar mensagem para se assegurar que ela foi assinada pelo dono de um endereço Bitcoin específico + Verify the message to ensure it was signed with the specified Verium address + Verificar mensagem para se assegurar que ela foi assinada pelo dono de um endereço Verium específico Verify &Message diff --git a/src/qt/locale/bitcoin_ro.ts b/src/qt/locale/bitcoin_ro.ts index c1e27e0d9e..cb8f9f26e8 100644 --- a/src/qt/locale/bitcoin_ro.ts +++ b/src/qt/locale/bitcoin_ro.ts @@ -66,8 +66,8 @@ Adresa de primire - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Acestea sunt adresele tale Bitcoin pentru efectuarea platilor. Intotdeauna verifica atent suma de plata si adresa beneficiarului inainte de a trimite monede. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Acestea sunt adresele tale Verium pentru efectuarea platilor. Intotdeauna verifica atent suma de plata si adresa beneficiarului inainte de a trimite monede. &Copy Address @@ -220,7 +220,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Semnează &mesaj... @@ -322,8 +322,8 @@ Proxy este<b>activat</b>:%1 - Send coins to a Bitcoin address - Trimite monede către o adresă Bitcoin + Send coins to a Verium address + Trimite monede către o adresă Verium Backup wallet to another location @@ -366,12 +366,12 @@ Criptează cheile private ale portofelului dvs. - Sign messages with your Bitcoin addresses to prove you own them - Semnaţi mesaje cu adresa dvs. Bitcoin pentru a dovedi că vă aparţin + Sign messages with your Verium addresses to prove you own them + Semnaţi mesaje cu adresa dvs. Verium pentru a dovedi că vă aparţin - Verify messages to ensure they were signed with specified Bitcoin addresses - Verificaţi mesaje pentru a vă asigura că au fost semnate cu adresa Bitcoin specificată + Verify messages to ensure they were signed with specified Verium addresses + Verificaţi mesaje pentru a vă asigura că au fost semnate cu adresa Verium specificată &File @@ -410,8 +410,8 @@ Opţiuni linie de &comandă - %n active connection(s) to Bitcoin network - %n conexiune activă către reţeaua Bitcoin%n conexiuni active către reţeaua Bitcoin%n de conexiuni active către reţeaua Bitcoin + %n active connection(s) to Verium network + %n conexiune activă către reţeaua Verium%n conexiuni active către reţeaua Verium%n de conexiuni active către reţeaua Verium Indexing blocks on disk... @@ -454,8 +454,8 @@ Actualizat - Show the %1 help message to get a list with possible Bitcoin command-line options - Arată mesajul de ajutor %1 pentru a obţine o listă cu opţiunile posibile de linii de comandă Bitcoin + Show the %1 help message to get a list with possible Verium command-line options + Arată mesajul de ajutor %1 pentru a obţine o listă cu opţiunile posibile de linii de comandă Verium default wallet @@ -546,8 +546,8 @@ Portofelul este <b>criptat</b> iar în momentul de faţă este <b>blocat</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - A survenit o eroare fatală. Bitcoin nu mai poate continua în siguranţă şi se va opri. + A fatal error occurred. Verium can no longer continue safely and will quit. + A survenit o eroare fatală. Verium nu mai poate continua în siguranţă şi se va opri. @@ -742,8 +742,8 @@ Editează adresa de trimitere - The entered address "%1" is not a valid Bitcoin address. - Adresa introdusă "%1" nu este o adresă Bitcoin validă. + The entered address "%1" is not a valid Verium address. + Adresa introdusă "%1" nu este o adresă Verium validă. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -839,8 +839,8 @@ Foloseşte un dosar de date personalizat: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -851,8 +851,8 @@ Aproximativ %1 GB de date vor fi stocate in acest director. - %1 will download and store a copy of the Bitcoin block chain. - %1 va descarca si stoca o copie a blockchainului Bitcoin + %1 will download and store a copy of the Verium block chain. + %1 va descarca si stoca o copie a blockchainului Verium The wallet will also be stored in this directory. @@ -883,7 +883,7 @@ Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Tranzactiile recente pot sa nu fie inca vizibile, de aceea balanta portofelului poate fi incorecta. Aceasta informatie va fi corecta de indata ce portofelul va fi complet sincronizat cu reteaua Bitcoin, asa cum este detaliat mai jos. + Tranzactiile recente pot sa nu fie inca vizibile, de aceea balanta portofelului poate fi incorecta. Aceasta informatie va fi corecta de indata ce portofelul va fi complet sincronizat cu reteaua Verium, asa cum este detaliat mai jos. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -1067,8 +1067,8 @@ Cheltuire rest neconfirmat - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Deschide automat în router portul aferent clientului Bitcoin. Funcţionează doar dacă routerul duportă UPnP şi e activat. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Deschide automat în router portul aferent clientului Verium. Funcţionează doar dacă routerul duportă UPnP şi e activat. Map port using &UPnP @@ -1083,8 +1083,8 @@ Permite conexiuni de intrar&e - Connect to the Bitcoin network through a SOCKS5 proxy. - Conectare la reţeaua Bitcoin printr-un proxy SOCKS. + Connect to the Verium network through a SOCKS5 proxy. + Conectare la reţeaua Verium printr-un proxy SOCKS. &Connect through SOCKS5 proxy (default proxy): @@ -1119,8 +1119,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Conectare la reteaua Bitcoin printr-un proxy SOCKS5 separat pentru serviciile TOR ascunse. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Conectare la reteaua Verium printr-un proxy SOCKS5 separat pentru serviciile TOR ascunse. &Window @@ -1226,8 +1226,8 @@ Form - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Informaţiile afişate pot fi neactualizate. Portofelul dvs. se sincronizează automat cu reţeaua Bitcoin după ce o conexiune este stabilită, dar acest proces nu a fost finalizat încă. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Informaţiile afişate pot fi neactualizate. Portofelul dvs. se sincronizează automat cu reţeaua Verium după ce o conexiune este stabilită, dar acest proces nu a fost finalizat încă. Watch-only: @@ -1302,7 +1302,7 @@ Cannot start bitcoin: click-to-pay handler - Bitcoin nu poate porni: click-to-pay handler + Verium nu poate porni: click-to-pay handler URI handling @@ -1321,8 +1321,8 @@ Adresă pentru plată invalidă %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI nu poate fi analizat! Acest lucru poate fi cauzat de o adresă Bitcoin invalidă sau parametri URI deformaţi. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI nu poate fi analizat! Acest lucru poate fi cauzat de o adresă Verium invalidă sau parametri URI deformaţi. Payment request file handling @@ -1423,8 +1423,8 @@ Cantitate - Enter a Bitcoin address (e.g. %1) - Introduceţi o adresă Bitcoin (de exemplu %1) + Enter a Verium address (e.g. %1) + Introduceţi o adresă Verium (de exemplu %1) %1 d @@ -1868,8 +1868,8 @@ &Mesaj: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Un mesaj opţional de ataşat la cererea de plată, care va fi afişat cînd cererea este deschisă. Notă: Acest mesaj nu va fi trimis cu plata către reţeaua Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Un mesaj opţional de ataşat la cererea de plată, care va fi afişat cînd cererea este deschisă. Notă: Acest mesaj nu va fi trimis cu plata către reţeaua Verium. An optional label to associate with the new receiving address. @@ -2273,7 +2273,7 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o Se estimeaza inceperea confirmarii in %n bloc.Se estimeaza inceperea confirmarii in %n blocuri.Se estimeaza inceperea confirmarii in %n blocuri. - Warning: Invalid Bitcoin address + Warning: Invalid Verium address Atenţie: Adresa bitcoin nevalidă! @@ -2316,7 +2316,7 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o Aceasta este o tranzacţie normală. - The Bitcoin address to send the payment to + The Verium address to send the payment to Adresa bitcoin către care se face plata @@ -2364,7 +2364,7 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o Introduceţi eticheta pentru ca această adresa să fie introdusă în lista de adrese folosite - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. un mesaj a fost ataşat la bitcoin: URI care va fi stocat cu tranzacţia pentru referinţa dvs. Notă: Acest mesaj nu va fi trimis către reţeaua bitcoin. @@ -2413,7 +2413,7 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o Puteţi semna mesaje/contracte cu adresele dvs. pentru a demostra ca puteti primi bitcoini trimisi la ele. Aveţi grijă să nu semnaţi nimic vag sau aleator, deoarece atacurile de tip phishing vă pot păcăli să le transferaţi identitatea. Semnaţi numai declaraţiile detaliate cu care sînteti de acord. - The Bitcoin address to sign the message with + The Verium address to sign the message with Adresa cu care semnaţi mesajul @@ -2445,8 +2445,8 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o Copiază semnatura curentă în clipboard-ul sistemului - Sign the message to prove you own this Bitcoin address - Semnează mesajul pentru a dovedi ca deţineţi acestă adresă Bitcoin + Sign the message to prove you own this Verium address + Semnează mesajul pentru a dovedi ca deţineţi acestă adresă Verium Sign &Message @@ -2469,12 +2469,12 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o Introduceţi adresa de semnatură, mesajul (asiguraţi-vă că aţi copiat spaţiile, taburile etc. exact) şi semnatura dedesubt pentru a verifica mesajul. Aveţi grijă să nu citiţi mai mult în semnatură decît mesajul în sine, pentru a evita să fiţi păcăliţi de un atac de tip man-in-the-middle. De notat ca aceasta dovedeste doar ca semnatarul primeste odata cu adresa, nu dovedesta insa trimiterea vreunei tranzactii. - The Bitcoin address the message was signed with - Introduceţi o adresă Bitcoin + The Verium address the message was signed with + Introduceţi o adresă Verium - Verify the message to ensure it was signed with the specified Bitcoin address - Verificaţi mesajul pentru a vă asigura că a fost semnat cu adresa Bitcoin specificată + Verify the message to ensure it was signed with the specified Verium address + Verificaţi mesajul pentru a vă asigura că a fost semnat cu adresa Verium specificată Verify &Message diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index e3f4cfc58c..e4ffa7ff86 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -66,11 +66,11 @@ Адреса получения - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. Это ваши Биткойн-адреса для отправки платежей. Всегда проверяйте количество и адрес получателя перед отправкой перевода. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. Это ваши Биткойн-адреса для приёма платежей. Используйте кнопку «Создать новый адрес для получения» на вкладке Получить, чтобы создать новые адреса. @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Подписать &сообщение... @@ -362,7 +362,7 @@ Прокси <b>включен</b>: %1 - Send coins to a Bitcoin address + Send coins to a Verium address Послать средства на Биткойн-адрес @@ -406,11 +406,11 @@ Зашифровать приватные ключи, принадлежащие вашему кошельку - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them Подписывайте сообщения Биткойн-адресами чтобы подтвердить что это написали именно Вы - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses Проверяйте сообщения чтобы убедиться что они подписаны конкретными Биткойн-адресами @@ -450,8 +450,8 @@ Опции командной строки - %n active connection(s) to Bitcoin network - %n активное подключение к сети Bitcoin%n активных подключения к сети Bitcoin%n активных подключений к сети Bitcoin%n активных подключений к сети Биткойн + %n active connection(s) to Verium network + %n активное подключение к сети Verium%n активных подключения к сети Verium%n активных подключений к сети Verium%n активных подключений к сети Биткойн Indexing blocks on disk... @@ -518,7 +518,7 @@ Закрыть кошелёк - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options Показать помощь по %1, чтобы получить список доступных параметров командной строки @@ -630,7 +630,7 @@ Кошелёк <b>зашифрован</b> и сейчас <b>заблокирован</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. Произошла критическая ошибка. Биткойн больше не может продолжать безопасную работу и будет закрыт. @@ -874,7 +874,7 @@ Изменить адрес отправки - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. Введенный адрес "%1" не является действительным Биткойн-адресом. @@ -975,8 +975,8 @@ Использовать пользовательскую директорию данных - Bitcoin - Bitcoin Core + Verium + Verium Core Discard blocks after verification, except most recent %1 GB (prune) @@ -991,7 +991,7 @@ Приблизительно %1 ГБ данных будет сохранено в эту директорию. - %1 will download and store a copy of the Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. %1 скачает и сохранит копию цепи блоков. @@ -1227,7 +1227,7 @@ &Тратить неподтвержденную сдачу - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. Автоматически открыть порт для Биткойн-клиента на маршрутизаторе. Работает только если Ваш маршрутизатор поддерживает UPnP, и данная функция включена. @@ -1243,7 +1243,7 @@ Разрешить входящие подключения - Connect to the Bitcoin network through a SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. Подключится к сети Биткойн через прокси SOCKS5. @@ -1279,7 +1279,7 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. Подключатся к Биткойн-сети через отдельный прокси SOCKS5 для скрытых сервисов Tor. @@ -1390,7 +1390,7 @@ Форма - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. Отображаемая информация может быть устаревшей. Ваш кошелёк автоматически синхронизируется с сетью Биткойн после подключения, но этот процесс пока не завершён. @@ -1501,7 +1501,7 @@ Неверный адрес %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. Не удалось обработать идентификатор! Это может быть связано с неверным Биткойн-адресом или неправильными параметрами идентификатора. @@ -1603,7 +1603,7 @@ Количество - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) Введите биткойн-адрес (напр. %1) @@ -2064,7 +2064,7 @@ &Сообщение: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. Необязательное сообщение для запроса платежа, которое будет показано при открытии запроса. Заметьте: сообщение не будет отправлено вместе с платежом через сеть Биткойн. @@ -2493,7 +2493,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Предполагаемое подтверждение в течение %n блока.Предполагаемое подтверждение в течение %n блоков.Предполагаемое подтверждение в течение %n блоков.Предполагаемое подтверждение в течение %n блоков. - Warning: Invalid Bitcoin address + Warning: Invalid Verium address Предупреждение: Неверный Биткойн-адрес @@ -2536,7 +2536,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Это нормальный платёж. - The Bitcoin address to send the payment to + The Verium address to send the payment to Биткойн-адрес, на который отправить платёж @@ -2584,7 +2584,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Введите метку для этого адреса, чтобы добавить его в список используемых адресов - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. Сообщение прикрепленное к биткойн идентификатору будет сохранено вместе с транзакцией для вашего сведения. Заметьте: Сообщение не будет отправлено через сеть Биткойн. @@ -2633,7 +2633,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Вы можете подписывать сообщения/соглашения своими адресами, чтобы доказать свою возможность получать биткойны на них. Будьте осторожны, не подписывайте что-то неопределённое или случайное, так как фишинговые атаки могут обманным путём заставить вас подписать нежелательные сообщения. Подписывайте только те сообщения, с которыми вы согласны вплоть до мелочей. - The Bitcoin address to sign the message with + The Verium address to sign the message with Биткойн-адрес, которым подписать сообщение @@ -2665,7 +2665,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Скопировать текущую подпись в буфер обмена системы - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Подписать сообщение, чтобы доказать владение Биткойн-адресом @@ -2689,11 +2689,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Введите ниже адрес получателя, сообщение (убедитесь, что переводы строк, пробелы, табы и т.п. в точности скопированы) и подпись, чтобы проверить сообщение. Убедитесь, что не скопировали лишнего в подпись, по сравнению с самим подписываемым сообщением, чтобы не стать жертвой атаки "man-in-the-middle". Заметьте, что эта операция удостоверяет лишь авторство подписавшего, но не может удостоверить отправителя транзакции. - The Bitcoin address the message was signed with + The Verium address the message was signed with Биткойн-адрес, которым было подписано сообщение - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address Проверить сообщение, чтобы убедиться, что оно было подписано указанным Биткойн-адресом diff --git a/src/qt/locale/bitcoin_si.ts b/src/qt/locale/bitcoin_si.ts index 4fa59aa06a..95a6b50a00 100644 --- a/src/qt/locale/bitcoin_si.ts +++ b/src/qt/locale/bitcoin_si.ts @@ -44,7 +44,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Warning අවවාදය diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts index 9f84850cab..ddc918da95 100644 --- a/src/qt/locale/bitcoin_sk.ts +++ b/src/qt/locale/bitcoin_sk.ts @@ -66,12 +66,12 @@ Prijímajúce adresy - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Toto sú Vaše Bitcoin adresy pre posielanie platieb. Vždy skontrolujte sumu a prijímaciu adresu pred poslaním mincí. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Toto sú Vaše Verium adresy pre posielanie platieb. Vždy skontrolujte sumu a prijímaciu adresu pred poslaním mincí. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Toto sú vaše Bitcoin adresy pre prijímanie platieb. Pre vytvorenie nových adries použite tlačidlo 'Vytvoriť novú prijímajúcu adresu' na karte Prijať. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Toto sú vaše Verium adresy pre prijímanie platieb. Pre vytvorenie nových adries použite tlačidlo 'Vytvoriť novú prijímajúcu adresu' na karte Prijať. &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Podpísať &správu... @@ -362,7 +362,7 @@ Proxy je <b>zapnuté</b>: %1 - Send coins to a Bitcoin address + Send coins to a Verium address Poslať bitcoins na adresu @@ -406,12 +406,12 @@ Zašifruj súkromné kľúče ktoré patria do vašej peňaženky - Sign messages with your Bitcoin addresses to prove you own them - Podpísať správu s vašou adresou Bitcoin aby ste preukázali že ju vlastníte + Sign messages with your Verium addresses to prove you own them + Podpísať správu s vašou adresou Verium aby ste preukázali že ju vlastníte - Verify messages to ensure they were signed with specified Bitcoin addresses - Overiť či správa bola podpísaná uvedenou Bitcoin adresou + Verify messages to ensure they were signed with specified Verium addresses + Overiť či správa bola podpísaná uvedenou Verium adresou &File @@ -450,8 +450,8 @@ &Možnosti príkazového riadku - %n active connection(s) to Bitcoin network - %n aktívne pripojenie do siete Bitcoin%n aktívne pripojenia do siete Bitcoin%n aktívnych pripojení do siete Bitcoin%n aktívnych pripojení do siete Bitcoin + %n active connection(s) to Verium network + %n aktívne pripojenie do siete Verium%n aktívne pripojenia do siete Verium%n aktívnych pripojení do siete Verium%n aktívnych pripojení do siete Verium Indexing blocks on disk... @@ -518,8 +518,8 @@ Zatvoriť peňaženku - Show the %1 help message to get a list with possible Bitcoin command-line options - Ukáž %1 zoznam možných nastavení Bitcoinu pomocou príkazového riadku + Show the %1 help message to get a list with possible Verium command-line options + Ukáž %1 zoznam možných nastavení Veriumu pomocou príkazového riadku default wallet @@ -630,8 +630,8 @@ Peňaženka je <b>zašifrovaná</b> a momentálne <b>zamknutá</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Vyskytla sa kritická chyba. Bitcoin nemôže ďalej bezpečne pokračovať a ukončí sa. + A fatal error occurred. Verium can no longer continue safely and will quit. + Vyskytla sa kritická chyba. Verium nemôže ďalej bezpečne pokračovať a ukončí sa. @@ -874,8 +874,8 @@ Upraviť odosielaciu adresu - The entered address "%1" is not a valid Bitcoin address. - Vložená adresa "%1" nieje platnou adresou Bitcoin. + The entered address "%1" is not a valid Verium address. + Vložená adresa "%1" nieje platnou adresou Verium. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -975,8 +975,8 @@ Použiť vlastný dátový adresár: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,7 +991,7 @@ Približne %1 GB dát bude uložených v tejto zložke. - %1 will download and store a copy of the Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. %1 bude sťahovať kopiu reťazca blokov. @@ -1231,8 +1231,8 @@ &Minúť nepotvrdený výdavok - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Automaticky otvorit port pre Bitcoin na routeri. Toto funguje len ak router podporuje UPnP a je táto podpora aktivovaná. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Automaticky otvorit port pre Verium na routeri. Toto funguje len ak router podporuje UPnP a je táto podpora aktivovaná. Map port using &UPnP @@ -1247,8 +1247,8 @@ Povoliť prichá&dzajúce spojenia - Connect to the Bitcoin network through a SOCKS5 proxy. - Pripojiť do siete Bitcoin cez proxy server SOCKS5. + Connect to the Verium network through a SOCKS5 proxy. + Pripojiť do siete Verium cez proxy server SOCKS5. &Connect through SOCKS5 proxy (default proxy): @@ -1283,8 +1283,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Pripojiť k Bitcoinovej sieti cez separované SOCKS5 proxy pre skrytú službu Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Pripojiť k Veriumovej sieti cez separované SOCKS5 proxy pre skrytú službu Tor. &Window @@ -1394,8 +1394,8 @@ Formulár - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Zobrazené informácie môžu byť neaktuálne. Vaša peňaženka sa automaticky synchronizuje so sieťou Bitcoin po nadviazaní spojenia, ale tento proces ešte nie je ukončený. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Zobrazené informácie môžu byť neaktuálne. Vaša peňaženka sa automaticky synchronizuje so sieťou Verium po nadviazaní spojenia, ale tento proces ešte nie je ukončený. Watch-only: @@ -1470,7 +1470,7 @@ Cannot start bitcoin: click-to-pay handler - Nemôžeme spustiť Bitcoin: obsluha click-to-pay + Nemôžeme spustiť Verium: obsluha click-to-pay URI handling @@ -1505,8 +1505,8 @@ Neplatná adresa platby %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI sa nedá analyzovať! To môže byť spôsobené neplatnou Bitcoin adresou alebo zle nastavenými vlastnosťami URI. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI sa nedá analyzovať! To môže byť spôsobené neplatnou Verium adresou alebo zle nastavenými vlastnosťami URI. Payment request file handling @@ -1607,7 +1607,7 @@ Suma - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) Zadajte bitcoin adresu (napr. %1) @@ -2069,8 +2069,8 @@ &Správa: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Pridať voliteľnú správu k výzve na zaplatenie, ktorá sa zobrazí keď bude výzva otvorená. Poznámka: Správa nebude poslaná s platbou cez sieť Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Pridať voliteľnú správu k výzve na zaplatenie, ktorá sa zobrazí keď bude výzva otvorená. Poznámka: Správa nebude poslaná s platbou cez sieť Verium. An optional label to associate with the new receiving address. @@ -2227,7 +2227,7 @@ SendCoinsDialog Send Coins - Poslať Bitcoins + Poslať Veriums Coin Control Features @@ -2498,8 +2498,8 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Odhadovaný začiatok potvrdzovania po %n bloku.Odhadovaný začiatok potvrdzovania po %n blokoch.Odhadovaný začiatok potvrdzovania po %n blokoch.Odhadovaný začiatok potvrdzovania po %n blokoch. - Warning: Invalid Bitcoin address - Varovanie: Neplatná Bitcoin adresa + Warning: Invalid Verium address + Varovanie: Neplatná Verium adresa Warning: Unknown change address @@ -2541,7 +2541,7 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Toto je normálna platba. - The Bitcoin address to send the payment to + The Verium address to send the payment to Zvoľte adresu kam poslať platbu @@ -2589,8 +2589,8 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Vložte popis pre túto adresu aby sa uložila do zoznamu použitých adries - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Správa ktorá bola pripojená k bitcoin: URI a ktorá bude uložená s transakcou pre Vaše potreby. Poznámka: Táto správa nebude poslaná cez sieť Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Správa ktorá bola pripojená k bitcoin: URI a ktorá bude uložená s transakcou pre Vaše potreby. Poznámka: Táto správa nebude poslaná cez sieť Verium. Pay To: @@ -2638,8 +2638,8 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Môžete podpísať správy svojou adresou a dokázať, že viete prijímať mince zaslané na túto adresu. Buďte však opatrní a podpíšte len podrobné prehlásenia, s ktorými plne súhlasíte, nakoľko útoky typu "phishing" Vás môžu lákať k podpísaniu nejasných alebo príliš všeobecných tvrdení čím prevezmú vašu identitu. - The Bitcoin address to sign the message with - Bitcoin adresa pre podpísanie správy s + The Verium address to sign the message with + Verium adresa pre podpísanie správy s Choose previously used address @@ -2670,7 +2670,7 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Kopírovať tento podpis do systémovej schránky - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Podpíšte správu aby ste dokázali že vlastníte túto adresu @@ -2694,12 +2694,12 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Vložte adresu príjemcu, správu (uistite sa, že presne kopírujete ukončenia riadkov, medzery, odrážky, atď.) a podpis pre potvrdenie správy. Buďte opatrní a nedomýšľajte si viac než je uvedené v samotnej podpísanej správe a môžete sa tak vyhnúť podvodu MITM útokom. Toto len potvrdzuje, že podpisujúca strana môže prijímať na tejto adrese, nepotvrdzuje to vlastníctvo žiadnej transakcie! - The Bitcoin address the message was signed with - Adresa Bitcoin, ktorou bola podpísaná správa + The Verium address the message was signed with + Adresa Verium, ktorou bola podpísaná správa - Verify the message to ensure it was signed with the specified Bitcoin address - Overím správy sa uistiť že bola podpísaná označenou Bitcoin adresou + Verify the message to ensure it was signed with the specified Verium address + Overím správy sa uistiť že bola podpísaná označenou Verium adresou Verify &Message diff --git a/src/qt/locale/bitcoin_sl.ts b/src/qt/locale/bitcoin_sl.ts index 4d7744a443..60ead617c4 100644 --- a/src/qt/locale/bitcoin_sl.ts +++ b/src/qt/locale/bitcoin_sl.ts @@ -66,12 +66,12 @@ Imenik naslovov za prejemanje - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - To so vaši Bitcoin naslovi za pošiljanje. Pred pošiljanjem vedno preverite količino in prejemnikov naslov. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + To so vaši Verium naslovi za pošiljanje. Pred pošiljanjem vedno preverite količino in prejemnikov naslov. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - To so vaši naslovi za prejemanje Bitcoinov. Če želite ustvariti nov naslov za prejemanje, uporabite gumb za ustvarjanje novih naslovov v zavihku "prejemanje". + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + To so vaši naslovi za prejemanje Veriumov. Če želite ustvariti nov naslov za prejemanje, uporabite gumb za ustvarjanje novih naslovov v zavihku "prejemanje". &Copy Address @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Podpiši &sporočilo ... @@ -362,8 +362,8 @@ Namestniški strežnik je <b>omogočen</b>: %1 - Send coins to a Bitcoin address - Izvedite plačilo na naslov Bitcoin + Send coins to a Verium address + Izvedite plačilo na naslov Verium Backup wallet to another location @@ -406,12 +406,12 @@ Šifrirajte zasebne ključe, ki se nahajajo v denarnici - Sign messages with your Bitcoin addresses to prove you own them - Podpišite poljubno sporočilo z enim svojih naslovov Bitcoin, da prejemniku sporočila dokažete, da je ta naslov v vaši lasti. + Sign messages with your Verium addresses to prove you own them + Podpišite poljubno sporočilo z enim svojih naslovov Verium, da prejemniku sporočila dokažete, da je ta naslov v vaši lasti. - Verify messages to ensure they were signed with specified Bitcoin addresses - Preverite, če je bilo prejeto sporočilo podpisano z določenim naslovom Bitcoin + Verify messages to ensure they were signed with specified Verium addresses + Preverite, če je bilo prejeto sporočilo podpisano z določenim naslovom Verium &File @@ -450,8 +450,8 @@ Možnosti &ukazne vrstice - %n active connection(s) to Bitcoin network - %n aktivna povezava v omrežje Bitcoin%n aktivni povezavi v omrežje Bitcoin%n aktivne povezave v omrežje Bitcoin%n aktivnih povezav v omrežje Bitcoin + %n active connection(s) to Verium network + %n aktivna povezava v omrežje Verium%n aktivni povezavi v omrežje Verium%n aktivne povezave v omrežje Verium%n aktivnih povezav v omrežje Verium Indexing blocks on disk... @@ -518,7 +518,7 @@ Zapri denarnico - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options Pokaži %1 sporočilo za pomoč s seznamom vseh možnosti v ukazni vrstici @@ -630,8 +630,8 @@ Denarnica je <b>šifrirana</b> in trenutno <b>zaklenjena</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Napaka. Bitcoin ne more več varno nadaljevati in se bo zaprl. + A fatal error occurred. Verium can no longer continue safely and will quit. + Napaka. Verium ne more več varno nadaljevati in se bo zaprl. @@ -874,8 +874,8 @@ Uredi naslov za pošiljanje - The entered address "%1" is not a valid Bitcoin address. - Vnešeni naslov "%1" ni veljaven Bitcoin naslov. + The entered address "%1" is not a valid Verium address. + Vnešeni naslov "%1" ni veljaven Verium naslov. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -975,8 +975,8 @@ Uporabi to podatkovno mapo: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ Približno %1 GB podatkov bo shranjenih v tem direktoriju. - %1 will download and store a copy of the Bitcoin block chain. - %1 bo prenesel in shranil kopijo Bitcoin baze podatkovnih blokov. + %1 will download and store a copy of the Verium block chain. + %1 bo prenesel in shranil kopijo Verium baze podatkovnih blokov. The wallet will also be stored in this directory. @@ -1231,7 +1231,7 @@ Omogoči &trošenje drobiža iz še nepotrjenih plačil - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. Program samodejno odpre ustrezna vrata na usmerjevalniku. To deluje samo, če vaš usmerjevalnik podpira in ima omogočen UPnP. @@ -1247,8 +1247,8 @@ Dovoli &dohodne povezave - Connect to the Bitcoin network through a SOCKS5 proxy. - Poveži se v omrežje Bitcoin preko posredniškega strežnika SOCKS5. + Connect to the Verium network through a SOCKS5 proxy. + Poveži se v omrežje Verium preko posredniškega strežnika SOCKS5. &Connect through SOCKS5 proxy (default proxy): @@ -1283,8 +1283,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Poveži se v omrežje Bitcoin preko posredniškega strežnika SOCKS5 za skrite storitve Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Poveži se v omrežje Verium preko posredniškega strežnika SOCKS5 za skrite storitve Tor. &Window @@ -1394,8 +1394,8 @@ Oblika - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Prikazani podatki so morda zastareli. Program ob vzpostavitvi povezave samodejno sinhronizira denarnico z omrežjem Bitcoin, a trenutno ta proces še ni zaključen. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Prikazani podatki so morda zastareli. Program ob vzpostavitvi povezave samodejno sinhronizira denarnico z omrežjem Verium, a trenutno ta proces še ni zaključen. Watch-only: @@ -1490,7 +1490,7 @@ Cannot process payment request because BIP70 support was not compiled in. - Zahteve za plačilo ni mogoče obdelati, ker podpora za BIP70 ni bila sestavljena v Bitcoin Core. + Zahteve za plačilo ni mogoče obdelati, ker podpora za BIP70 ni bila sestavljena v Verium Core. Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. @@ -1505,8 +1505,8 @@ Neveljaven naslov za plačilo %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI je neprepoznaven! Možno je, da je naslov Bitcoin neveljaven, ali da so parametri v URI napačno oblikovani. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI je neprepoznaven! Možno je, da je naslov Verium neveljaven, ali da so parametri v URI napačno oblikovani. Payment request file handling @@ -1607,8 +1607,8 @@ Znesek - Enter a Bitcoin address (e.g. %1) - Vnesite naslov Bitcoin (npr. %1) + Enter a Verium address (e.g. %1) + Vnesite naslov Verium (npr. %1) %1 d @@ -2068,8 +2068,8 @@ &Sporočilo: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Neobvezno sporočilo kot priponka zahtevku za plačilo, ki bo prikazano, ko bo zahtevek odprt. Opomba: Opravljeno plačilo.prek omrežja Bitcoin tega sporočila ne bo vsebovalo. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Neobvezno sporočilo kot priponka zahtevku za plačilo, ki bo prikazano, ko bo zahtevek odprt. Opomba: Opravljeno plačilo.prek omrežja Verium tega sporočila ne bo vsebovalo. An optional label to associate with the new receiving address. @@ -2496,8 +2496,8 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Predviden začetek potrditev po %n najdenemu bloku.Predviden začetek potrditev po %n najdenih blokih.Predviden začetek potrditev po %n najdenih blokih.Predviden začetek potrditev po %n najdenih blokih. - Warning: Invalid Bitcoin address - Opozorilo: Neveljaven Bitcoin naslov + Warning: Invalid Verium address + Opozorilo: Neveljaven Verium naslov Warning: Unknown change address @@ -2539,8 +2539,8 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Plačilo je navadne vrste. - The Bitcoin address to send the payment to - Naslov Bitcoin, na katerega bo plačilo poslano + The Verium address to send the payment to + Naslov Verium, na katerega bo plačilo poslano Alt+A @@ -2587,8 +2587,8 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Če vnesete oznako za zgornji naslov, se bo skupaj z naslovom shranila v imenk že uporabljenih naslovov - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Sporočilo, ki ste ga pripeli na URI tipa bitcoin:. Shranjeno bo skupaj s podatki o transakciji. Opomba: Sporočilo ne bo poslano preko omrežja Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Sporočilo, ki ste ga pripeli na URI tipa bitcoin:. Shranjeno bo skupaj s podatki o transakciji. Opomba: Sporočilo ne bo poslano preko omrežja Verium. Pay To: @@ -2636,8 +2636,8 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" S svojimi naslovi lahko podpisujete sporočila ali pogodbe in s tem dokazujete, da na teh naslovih lahko prejemate kovance. Bodite previdni in ne podpisujte ničesar nejasnega ali naključnega, ker vas zlikovci preko ribarjenja (phishing) lahko prelisičijo, da na njih prepišete svojo identiteto. Podpisujte samo podrobno opisane izjave, s katerimi se strinjate. - The Bitcoin address to sign the message with - Naslov Bitcoin, s katerim podpisujete sporočilo + The Verium address to sign the message with + Naslov Verium, s katerim podpisujete sporočilo Choose previously used address @@ -2668,7 +2668,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Kopiranje trenutnega podpisa na sistemsko odložišče. - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Podpišite sporočilo, da dokažete lastništvo nad zgornjim naslovom. @@ -2692,12 +2692,12 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Da preverite verodostojnost sporočila, spodaj vnesite: prejemnikov naslov, prejeto sporočilo (pazljivo skopirajte vse prelome vrstic, presledke, tabulatorje ipd.,) in prejeti podpis. Da se izognete napadom tipa man-in-the-middle, vedite, da iz veljavnega podpisa ne sledi nič drugega, kot tisto, kar je navedeno v sporočilu. Podpis samo potrjuje dejstvo, da ima podpisnik v lasti prejemni naslov, ne more pa dokazati vira nobene transakcije! - The Bitcoin address the message was signed with - Naslov Bitcoin, s katerim je bilo sporočilo podpisano + The Verium address the message was signed with + Naslov Verium, s katerim je bilo sporočilo podpisano - Verify the message to ensure it was signed with the specified Bitcoin address - Preverite, ali je bilo sporočilo v resnici podpisano z navedenim naslovom Bitcoin. + Verify the message to ensure it was signed with the specified Verium address + Preverite, ali je bilo sporočilo v resnici podpisano z navedenim naslovom Verium. Verify &Message diff --git a/src/qt/locale/bitcoin_sn.ts b/src/qt/locale/bitcoin_sn.ts index 0e3c61805a..26ec2a993c 100644 --- a/src/qt/locale/bitcoin_sn.ts +++ b/src/qt/locale/bitcoin_sn.ts @@ -64,7 +64,7 @@ - BitcoinGUI + VeriumGUI E&xit Buda @@ -155,8 +155,8 @@ Intro - Bitcoin - Bitcoin + Verium + Verium @@ -187,8 +187,8 @@ Marii - Enter a Bitcoin address (e.g. %1) - Nyora kero ye Bitcoin (sekuti %1) + Enter a Verium address (e.g. %1) + Nyora kero ye Verium (sekuti %1) %1 d diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/bitcoin_sr.ts index cb395fdd0d..fc9c6ad482 100644 --- a/src/qt/locale/bitcoin_sr.ts +++ b/src/qt/locale/bitcoin_sr.ts @@ -66,7 +66,7 @@ Адресе за примање - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. Ово су ваше Биткоин адресе за слање уплата. Увек добро проверите износ и адресу на коју шаљете пре него што пошаљете уплату. @@ -220,7 +220,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Потпиши &поруку... @@ -322,7 +322,7 @@ Прокси је <b>омогућен</b>: %1 - Send coins to a Bitcoin address + Send coins to a Verium address Пошаљите новац на Биткоин адресу @@ -366,11 +366,11 @@ Шифрирај приватни клуљ који припада новчанику. - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them Потписуј поруку са своје Биткоин адресе као доказ да си њихов власник - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses Верификуј поруке и утврди да ли су потписане од стране спецификованих Биткоин адреса @@ -410,7 +410,7 @@ &Опције командне линије - %n active connection(s) to Bitcoin network + %n active connection(s) to Verium network %n aктивна веза са Биткоин мрежом%n aктивних веза са Биткоин мрежом%n aктивних веза са Биткоин мрежом @@ -454,7 +454,7 @@ Ажурно - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options Прикажи поруку помоћи %1 за листу са могућим опцијама Биткоин командне линије @@ -530,7 +530,7 @@ Новчаник јс <b>шифрован</b> и тренутно <b>закључан</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. Дошло је до критичне грешке. Биткоин не може безбедно да настави са радом и искључиће се. @@ -707,7 +707,7 @@ Измени адресу за слање - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. Унета адреса "%1" није важећа Биткоин адреса. @@ -796,7 +796,7 @@ Користите прилагођени директоријум података: - Bitcoin + Verium Биткоин diff --git a/src/qt/locale/bitcoin_sr@latin.ts b/src/qt/locale/bitcoin_sr@latin.ts index 80cde0d3fc..240c913cc1 100644 --- a/src/qt/locale/bitcoin_sr@latin.ts +++ b/src/qt/locale/bitcoin_sr@latin.ts @@ -62,8 +62,8 @@ Adresa na koju se prima - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Ovo su Vaše Bitcoin adrese na koju se vrše uplate. Uvek proverite iznos i prijemnu adresu pre slanja novčića. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Ovo su Vaše Verium adrese na koju se vrše uplate. Uvek proverite iznos i prijemnu adresu pre slanja novčića. &Copy Address @@ -216,7 +216,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Potpišite &poruka... @@ -310,8 +310,8 @@ Ponovo obeležavam blokove na disku... - Send coins to a Bitcoin address - Pošalji novčiće na Bitcoin adresu + Send coins to a Verium address + Pošalji novčiće na Verium adresu Backup wallet to another location @@ -354,12 +354,12 @@ Enkriptuj privatne ključeve novčanika - Sign messages with your Bitcoin addresses to prove you own them - Potpišite poruke sa svojim Bitcoin adresama da biste dokazali njihovo vlasništvo + Sign messages with your Verium addresses to prove you own them + Potpišite poruke sa svojim Verium adresama da biste dokazali njihovo vlasništvo - Verify messages to ensure they were signed with specified Bitcoin addresses - Proverite poruke da biste utvrdili sa kojim Bitcoin adresama su potpisane + Verify messages to ensure they were signed with specified Verium addresses + Proverite poruke da biste utvrdili sa kojim Verium adresama su potpisane &File @@ -489,8 +489,8 @@ Intro - Bitcoin - Bitcoin + Verium + Verium Error diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts index 7856d3fc69..131d539132 100644 --- a/src/qt/locale/bitcoin_sv.ts +++ b/src/qt/locale/bitcoin_sv.ts @@ -66,12 +66,12 @@ Mottagaradresser - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Detta är dina Bitcoin-adresser för att skicka betalningar. Kontrollera alltid belopp och mottagaradress innan du skickar bitcoin. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Detta är dina Verium-adresser för att skicka betalningar. Kontrollera alltid belopp och mottagaradress innan du skickar bitcoin. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Detta är dina Bitcoinadresser för att ta emot betalningar. Använd knappen 'Skapa ny mottagaradress' på fliken ta emot för att skapa nya adresser . + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Detta är dina Veriumadresser för att ta emot betalningar. Använd knappen 'Skapa ny mottagaradress' på fliken ta emot för att skapa nya adresser . &Copy Address @@ -253,7 +253,7 @@ Försök igen. - BitcoinGUI + VeriumGUI Sign &message... Signera &meddelande... @@ -363,8 +363,8 @@ Försök igen. Proxy är <b> aktiverad </b>: %1 - Send coins to a Bitcoin address - Skicka bitcoin till en Bitcoin-adress + Send coins to a Verium address + Skicka bitcoin till en Verium-adress Backup wallet to another location @@ -407,12 +407,12 @@ Försök igen. Kryptera de privata nycklar som tillhör din plånbok - Sign messages with your Bitcoin addresses to prove you own them - Signera meddelanden med dina Bitcoin-adresser för att bevisa att du äger dem + Sign messages with your Verium addresses to prove you own them + Signera meddelanden med dina Verium-adresser för att bevisa att du äger dem - Verify messages to ensure they were signed with specified Bitcoin addresses - Verifiera meddelanden för att vara säker på att de signerades med angivna Bitcoin-adresser + Verify messages to ensure they were signed with specified Verium addresses + Verifiera meddelanden för att vara säker på att de signerades med angivna Verium-adresser &File @@ -451,8 +451,8 @@ Försök igen. &Kommandoradsalternativ - %n active connection(s) to Bitcoin network - %n aktiva anslutningar till Bitcoin-nätverket.%n aktiva anslutningar till Bitcoin-nätverket. + %n active connection(s) to Verium network + %n aktiva anslutningar till Verium-nätverket.%n aktiva anslutningar till Verium-nätverket. Indexing blocks on disk... @@ -519,8 +519,8 @@ Försök igen. Stäng plånboken - Show the %1 help message to get a list with possible Bitcoin command-line options - Visa %1 hjälpmeddelande för att få en lista med möjliga Bitcoin kommandoradsalternativ. + Show the %1 help message to get a list with possible Verium command-line options + Visa %1 hjälpmeddelande för att få en lista med möjliga Verium kommandoradsalternativ. default wallet @@ -631,8 +631,8 @@ Försök igen. Denna plånbok är <b>krypterad</b> och för närvarande <b>låst</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Ett kritiskt fel uppstod. Bitcoin kan inte fortsätta att köra säkert och kommer att avslutas. + A fatal error occurred. Verium can no longer continue safely and will quit. + Ett kritiskt fel uppstod. Verium kan inte fortsätta att köra säkert och kommer att avslutas. @@ -855,8 +855,8 @@ Försök igen. Redigera avsändaradress - The entered address "%1" is not a valid Bitcoin address. - Den angivna adressen "%1" är inte en giltig Bitcoin-adress. + The entered address "%1" is not a valid Verium address. + Den angivna adressen "%1" är inte en giltig Verium-adress. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -952,8 +952,8 @@ Försök igen. Använd en anpassad datakatalog: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -964,8 +964,8 @@ Försök igen. Ungefär %1 GB data kommer att lagras i den här katalogen. - %1 will download and store a copy of the Bitcoin block chain. - %1 kommer att ladda ner och lagra en kopia av Bitcoins blockkedja. + %1 will download and store a copy of the Verium block chain. + %1 kommer att ladda ner och lagra en kopia av Veriums blockkedja. The wallet will also be stored in this directory. @@ -1000,7 +1000,7 @@ Försök igen. Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Nyligen gjorda transaktioner visas inte korrekt och därför kan din plånboks saldo visas felaktigt. Denna information kommer att visas korrekt så snart din plånbok har synkroniserats med Bitcoin-nätverket enligt informationen nedan. + Nyligen gjorda transaktioner visas inte korrekt och därför kan din plånboks saldo visas felaktigt. Denna information kommer att visas korrekt så snart din plånbok har synkroniserats med Verium-nätverket enligt informationen nedan. Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -1200,8 +1200,8 @@ Försök igen. &Spendera obekräftad växel - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Öppna automatiskt Bitcoin-klientens port på routern. Detta fungerar endast om din router stödjer UPnP och det är är aktiverat. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Öppna automatiskt Verium-klientens port på routern. Detta fungerar endast om din router stödjer UPnP och det är är aktiverat. Map port using &UPnP @@ -1216,8 +1216,8 @@ Försök igen. Tillåt inkommande anslutningar - Connect to the Bitcoin network through a SOCKS5 proxy. - Anslut till Bitcoin-nätverket genom en SOCKS5-proxy. + Connect to the Verium network through a SOCKS5 proxy. + Anslut till Verium-nätverket genom en SOCKS5-proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1252,8 +1252,8 @@ Försök igen. Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Anslut till Bitcoin-nätverket genom en separat SOCKS5-proxy för dolda tjänster i Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Anslut till Verium-nätverket genom en separat SOCKS5-proxy för dolda tjänster i Tor. &Window @@ -1363,8 +1363,8 @@ Försök igen. Formulär - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Den visade informationen kan vara inaktuell. Plånboken synkroniseras automatiskt med Bitcoin-nätverket efter att anslutningen är upprättad, men denna process har inte slutförts ännu. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Den visade informationen kan vara inaktuell. Plånboken synkroniseras automatiskt med Verium-nätverket efter att anslutningen är upprättad, men denna process har inte slutförts ännu. Watch-only: @@ -1466,8 +1466,8 @@ Försök igen. Ogiltig betalningsadress %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI kan inte parsas! Detta kan orsakas av en ogiltig Bitcoin-adress eller felaktiga URI-parametrar. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI kan inte parsas! Detta kan orsakas av en ogiltig Verium-adress eller felaktiga URI-parametrar. Payment request file handling @@ -1568,8 +1568,8 @@ Försök igen. Belopp - Enter a Bitcoin address (e.g. %1) - Ange en Bitcoin-adress (t.ex. %1) + Enter a Verium address (e.g. %1) + Ange en Verium-adress (t.ex. %1) %1 d @@ -2025,8 +2025,8 @@ Försök igen. &Meddelande: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Ett valfritt meddelande att bifoga betalningsbegäran, vilket visas när begäran öppnas. Obs: Meddelandet kommer inte att sändas med betalningen över Bitcoin-nätverket. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Ett valfritt meddelande att bifoga betalningsbegäran, vilket visas när begäran öppnas. Obs: Meddelandet kommer inte att sändas med betalningen över Verium-nätverket. An optional label to associate with the new receiving address. @@ -2446,8 +2446,8 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Uppskattas till att påbörja bekräftelse inom %n block.Uppskattas till att påbörja bekräftelse inom %n block. - Warning: Invalid Bitcoin address - Varning: Ogiltig Bitcoin-adress + Warning: Invalid Verium address + Varning: Ogiltig Verium-adress Warning: Unknown change address @@ -2489,8 +2489,8 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Detta är en normal betalning. - The Bitcoin address to send the payment to - Bitcoin-adress att sända betalning till + The Verium address to send the payment to + Verium-adress att sända betalning till Alt+A @@ -2537,8 +2537,8 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Ange en etikett för denna adress för att lägga till den i listan med använda adresser - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Ett meddelande som bifogades bitcoin: -URIn och som sparas med transaktionen som referens. Obs: Meddelandet sänds inte över Bitcoin-nätverket. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Ett meddelande som bifogades bitcoin: -URIn och som sparas med transaktionen som referens. Obs: Meddelandet sänds inte över Verium-nätverket. Pay To: @@ -2586,8 +2586,8 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Du kan signera meddelanden/avtal med dina adresser för att bevisa att du kan ta emot bitcoin som skickats till dem. Var försiktig så du inte signerar något oklart eller konstigt, eftersom phishing-angrepp kan försöka få dig att signera över din identitet till dem. Signera endast väldetaljerade meddelanden som du godkänner. - The Bitcoin address to sign the message with - Bitcoin-adress att signera meddelandet med + The Verium address to sign the message with + Verium-adress att signera meddelandet med Choose previously used address @@ -2618,8 +2618,8 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Kopiera signaturen till systemets Urklipp - Sign the message to prove you own this Bitcoin address - Signera meddelandet för att bevisa att du äger denna Bitcoin-adress + Sign the message to prove you own this Verium address + Signera meddelandet för att bevisa att du äger denna Verium-adress Sign &Message @@ -2642,12 +2642,12 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Ange mottagarens adress, meddelande (kopiera radbrytningar, mellanslag, TAB-tecken, osv. exakt) och signatur nedan, för att verifiera meddelandet. Undvik att läsa in mera information i signaturen än vad som stod i själva det signerade meddelandet, för att undvika ett man-in-the-middle-angrepp. Notera att detta endast bevisar att den signerande parten tar emot med adressen, det bevisar inte vem som skickat transaktionen! - The Bitcoin address the message was signed with - Bitcoin-adress som meddelandet signerades med + The Verium address the message was signed with + Verium-adress som meddelandet signerades med - Verify the message to ensure it was signed with the specified Bitcoin address - Verifiera meddelandet för att vara säker på att det signerades med angiven Bitcoin-adress + Verify the message to ensure it was signed with the specified Verium address + Verifiera meddelandet för att vara säker på att det signerades med angiven Verium-adress Verify &Message @@ -3190,7 +3190,7 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f WalletModel Send Coins - Skicka Bitcoins + Skicka Veriums Fee bump error diff --git a/src/qt/locale/bitcoin_szl.ts b/src/qt/locale/bitcoin_szl.ts index 8f42ef290f..2b8f2635fd 100644 --- a/src/qt/locale/bitcoin_szl.ts +++ b/src/qt/locale/bitcoin_szl.ts @@ -66,8 +66,8 @@ Adresy ôdbiyraniŏ - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Tukej sōm adresy Bitcoin na kere posyłŏsz płaty. Dycki wybaduj wielość i adresã ôdbiyrŏcza przed posłaniym mōnet. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Tukej sōm adresy Verium na kere posyłŏsz płaty. Dycki wybaduj wielość i adresã ôdbiyrŏcza przed posłaniym mōnet. &Copy Address @@ -220,7 +220,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Szkryftnij &wiadōmość @@ -322,8 +322,8 @@ Proxy je <b>zapuszczone</b>: %1 - Send coins to a Bitcoin address - Poślij mōnety na adresã Bitcoin + Send coins to a Verium address + Poślij mōnety na adresã Verium Backup wallet to another location @@ -366,12 +366,12 @@ Szyfruj klucze prywatne, kere sōm we twojim portmanyju - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them Podpisz wiadōmości swojōm adresōm coby dowiyść jejich posiadanie - Verify messages to ensure they were signed with specified Bitcoin addresses - Zweryfikuj wiadōmość, coby wejzdrzeć sie, iże ôstała podpisanŏ podanōm adresōm Bitcoin. + Verify messages to ensure they were signed with specified Verium addresses + Zweryfikuj wiadōmość, coby wejzdrzeć sie, iże ôstała podpisanŏ podanōm adresōm Verium. &File @@ -410,8 +410,8 @@ Ôp&cyje piski nakŏzań - %n active connection(s) to Bitcoin network - %n aktywne połōnczynie do necu Bitcoin%n aktywnych połōnczyń do necu Bitcoin%n aktywnych skuplowań do necu Bitcoin + %n active connection(s) to Verium network + %n aktywne połōnczynie do necu Verium%n aktywnych połōnczyń do necu Verium%n aktywnych skuplowań do necu Verium Indexing blocks on disk... @@ -458,7 +458,7 @@ &Adresy posyłaniŏ - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options Pokŏż pōmoc %1 coby zobŏczyć wykŏz wszyjskich ôpcyji piski nakŏzań. @@ -542,8 +542,8 @@ Portmanyj je <b>zaszyfrowany</b> i terŏźnie <b>zaszperowany</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Przitrefiōł sie krytyczny feler. Bitcoin niy poradzi kōntynuować bezpiycznie i ôstanie zawrzity. + A fatal error occurred. Verium can no longer continue safely and will quit. + Przitrefiōł sie krytyczny feler. Verium niy poradzi kōntynuować bezpiycznie i ôstanie zawrzity. @@ -738,8 +738,8 @@ Edytuj adresã posyłaniŏ - The entered address "%1" is not a valid Bitcoin address. - Wkludzōnŏ adresa "%1" niyma nŏleżnōm adresōm Bitcoin. + The entered address "%1" is not a valid Verium address. + Wkludzōnŏ adresa "%1" niyma nŏleżnōm adresōm Verium. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -831,8 +831,8 @@ Użyj ôbranego folderu datōw - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -843,8 +843,8 @@ Kole %1 GB datōw ôstanie spamiyntane w tym katalogu. - %1 will download and store a copy of the Bitcoin block chain. - %1 sebiere i spamiyntŏ kopijõ kety blokōw Bitcoin. + %1 will download and store a copy of the Verium block chain. + %1 sebiere i spamiyntŏ kopijõ kety blokōw Verium. The wallet will also be stored in this directory. @@ -1039,8 +1039,8 @@ &Wydej niyprzituplowanõ wydŏwkã - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Autōmatycznie ôdewrzij port klijynta Bitcoin na routerze. Ta ôpcyjŏ funguje ino jeźli twōj router podpiyrŏ UPnP i je ôno zapuszczone. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Autōmatycznie ôdewrzij port klijynta Verium na routerze. Ta ôpcyjŏ funguje ino jeźli twōj router podpiyrŏ UPnP i je ôno zapuszczone. Map port using &UPnP @@ -1055,8 +1055,8 @@ Zwōl na skuplowania przichodzōnce - Connect to the Bitcoin network through a SOCKS5 proxy. - Skupluj sie z necym Bitcoin bez SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. + Skupluj sie z necym Verium bez SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1087,8 +1087,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Skupluj sie z necym Bitcoin ze pōmocōm ôsobnego proxy SOCKS5 dlŏ necu TOR + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Skupluj sie z necym Verium ze pōmocōm ôsobnego proxy SOCKS5 dlŏ necu TOR &Window @@ -1134,7 +1134,7 @@ Formular - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. Wyświytlanŏ informacyjŏ może być niyterŏźnŏ. Twōj portmanyj synchrōnizuje sie autōmatycznie z necym bitcoin zarŏz po tym, jak zrychtowane je skuplowanie, ale proces tyn niy ôstoł jeszcze skōńczōny. @@ -1215,8 +1215,8 @@ Kwota - Enter a Bitcoin address (e.g. %1) - Wkludź adresã Bitcoin (bp. %1) + Enter a Verium address (e.g. %1) + Wkludź adresã Verium (bp. %1) %1 d @@ -1432,8 +1432,8 @@ &Etyketa: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Ôpcyjōnalnŏ wiadōmość do prziwstōniŏ do żōndaniŏ płatu, kerŏ bydzie wyświytlanŏ, kej żōndanie ôstanie ôdewrzōne. Napōmniynie: wiadōmość ta niy ôstanie wysłanŏ z płatym w nec Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Ôpcyjōnalnŏ wiadōmość do prziwstōniŏ do żōndaniŏ płatu, kerŏ bydzie wyświytlanŏ, kej żōndanie ôstanie ôdewrzōne. Napōmniynie: wiadōmość ta niy ôstanie wysłanŏ z płatym w nec Verium. Clear @@ -1637,8 +1637,8 @@ Utworzynie transakcyje niy podarziło sie! - Warning: Invalid Bitcoin address - Pozōr: niynŏleżnŏ adresa Bitcoin + Warning: Invalid Verium address + Pozōr: niynŏleżnŏ adresa Verium Warning: Unknown change address @@ -1660,8 +1660,8 @@ To je normalny płat. - The Bitcoin address to send the payment to - Adresa Bitcoin, na kerõ chcesz posłać płat + The Verium address to send the payment to + Adresa Verium, na kerõ chcesz posłać płat Alt+A @@ -1680,8 +1680,8 @@ Wiadōmość: - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Wiadōmość, kerŏ ôstała prziwstōnŏ do URI bitcoin:, kerŏ bydzie przechowowanŏ z transakcyjōm w cylach informacyjnych. Napōmniynie: Ta wiadōmość niy bydzie rozszyrzowanŏ w necu Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Wiadōmość, kerŏ ôstała prziwstōnŏ do URI bitcoin:, kerŏ bydzie przechowowanŏ z transakcyjōm w cylach informacyjnych. Napōmniynie: Ta wiadōmość niy bydzie rozszyrzowanŏ w necu Verium. diff --git a/src/qt/locale/bitcoin_ta.ts b/src/qt/locale/bitcoin_ta.ts index de3e3dc962..35afe5f074 100644 --- a/src/qt/locale/bitcoin_ta.ts +++ b/src/qt/locale/bitcoin_ta.ts @@ -66,11 +66,11 @@ முகவரிகள் பெறப்படுகின்றன - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. இவை பணம் அனுப்புவதற்கு உங்களின் பிட்காயின் முகவரிகள். பிட்காயின்களை அனுப்புவதற்கு முன் எப்பொழுதும் தொகையும் பெறுதலையும் சரிபார்க்கவும். - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. பிட்காயின் பெறுவதற்காக உங்கள் முகவரி இவை. புதிய முகவரிகளை உருவாக்க 'புதிய முகவரியை உருவாக்கு' என்ற பட்டனை கிளிக் செய்யவும். @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... கையொப்பம் & செய்தி ... @@ -362,7 +362,7 @@ ப்ராக்ஸி இயக்கப்பட்டது: %1 - Send coins to a Bitcoin address + Send coins to a Verium address ஒரு விக்கிபீடியா முகவரிக்கு நாணயங்களை அனுப்பவும் @@ -406,11 +406,11 @@ உங்கள் பணப்பைச் சேர்ந்த தனிப்பட்ட விசைகளை குறியாக்குக - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them உங்கள் பிட்டினின் முகவரியுடன் செய்திகளை உங்களிடம் வைத்திருப்பதை நிரூபிக்க - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses குறிப்பிடப்பட்ட விக்கிபீடியா முகவர்களுடன் கையொப்பமிடப்பட்டதை உறுதிப்படுத்த, செய்திகளை சரிபார்க்கவும் @@ -443,14 +443,14 @@ Open a bitcoin: URI or payment request - ஒரு Bitcoin திறக்க: URI அல்லது பணம் கோரிக்கை + ஒரு Verium திறக்க: URI அல்லது பணம் கோரிக்கை &Command-line options & கட்டளை வரி விருப்பங்கள் - %n active connection(s) to Bitcoin network + %n active connection(s) to Verium network பிட்காயின் வலையமைப்புடன் %n செயலில் உள்ள இணைப்புகள்பிட்காயின் வலையமைப்புடன் %n செயலில் உள்ள இணைப்புகள் @@ -518,8 +518,8 @@ வாலட்டை மூடு - Show the %1 help message to get a list with possible Bitcoin command-line options - சாத்தியமான Bitcoin கட்டளை-வரி விருப்பங்களைக் கொண்ட பட்டியலைப் பெற %1 உதவிச் செய்தியைக் காட்டு + Show the %1 help message to get a list with possible Verium command-line options + சாத்தியமான Verium கட்டளை-வரி விருப்பங்களைக் கொண்ட பட்டியலைப் பெற %1 உதவிச் செய்தியைக் காட்டு default wallet @@ -630,7 +630,7 @@ Wallet குறியாக்கப்பட்டு தற்போது பூட்டப்பட்டுள்ளது - A fatal error occurred. Bitcoin can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. Wallet குறியாக்கப்பட்டு தற்போது பூட்டப்பட்டுள்ளது @@ -874,7 +874,7 @@ முகவரியை அனுப்புவதைத் திருத்து - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. உள்ளிட்ட முகவரி "%1" என்பது செல்லுபடியாகும் விக்கிபீடியா முகவரி அல்ல. @@ -975,8 +975,8 @@ தனிப்பயன் தரவு கோப்பகத்தைப் பயன்படுத்தவும்: - Bitcoin - Bitcoin + Verium + Verium Discard blocks after verification, except most recent %1 GB (prune) @@ -991,8 +991,8 @@ இந்த அடைவில் %1 ஜிபி தரவு சேமிக்கப்படும். - %1 will download and store a copy of the Bitcoin block chain. - Bitcoin தொகுதி சங்கிலியின் நகலை %1 பதிவிறக்கம் செய்து சேமித்து வைக்கும். + %1 will download and store a copy of the Verium block chain. + Verium தொகுதி சங்கிலியின் நகலை %1 பதிவிறக்கம் செய்து சேமித்து வைக்கும். The wallet will also be stored in this directory. @@ -1227,8 +1227,8 @@ & உறுதிப்படுத்தப்படாத மாற்றத்தை செலவழிக்கவும் - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - ரூட்டரில் Bitcoin கிளையன்ட் போர்ட் தானாக திறக்க. இது உங்கள் திசைவி UPnP ஐ ஆதரிக்கும் போது மட்டுமே இயங்குகிறது. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + ரூட்டரில் Verium கிளையன்ட் போர்ட் தானாக திறக்க. இது உங்கள் திசைவி UPnP ஐ ஆதரிக்கும் போது மட்டுமே இயங்குகிறது. Map port using &UPnP @@ -1243,8 +1243,8 @@ Incomin & g இணைப்புகளை அனுமதிக்கவும் - Connect to the Bitcoin network through a SOCKS5 proxy. - Bitcoin பிணையத்துடன் SOCKS5 ப்ராக்ஸி மூலம் இணைக்கவும். + Connect to the Verium network through a SOCKS5 proxy. + Verium பிணையத்துடன் SOCKS5 ப்ராக்ஸி மூலம் இணைக்கவும். &Connect through SOCKS5 proxy (default proxy): @@ -1279,7 +1279,7 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. டார் மறைக்கப்பட்ட சேவைகளை தனித்த SOCKS5 ப்ராக்ஸி மூலம் பிட்கோடு நெட்வொர்க்குடன் இணைக்கவும். @@ -1390,7 +1390,7 @@ படிவம் - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. காட்டப்படும் தகவல் காலாவதியானதாக இருக்கலாம். ஒரு இணைப்பு நிறுவப்பட்ட பிறகு, உங்கள் பணப்பை தானாக பிட்கோடு நெட்வொர்க்குடன் ஒத்திசைக்கிறது, ஆனால் இந்த செயல்முறை இன்னும் முடிவடையவில்லை. @@ -1466,7 +1466,7 @@ Cannot start bitcoin: click-to-pay handler - Bitcoin தொடங்க முடியாது: கிளிக் க்கு ஊதியம் கையாளுதல் + Verium தொடங்க முடியாது: கிளிக் க்கு ஊதியம் கையாளுதல் URI handling @@ -1501,7 +1501,7 @@ தவறான கட்டண முகவரி %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. URI அலச முடியாது! தவறான பிட்கின் முகவரி அல்லது தவறான URI அளவுருக்கள் காரணமாக இது ஏற்படலாம். @@ -1603,7 +1603,7 @@ விலை - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) ஒரு விக்கிபீடியா முகவரியை உள்ளிடவும் (எ.கா. %1) @@ -2040,8 +2040,8 @@ &செய்தி: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - கோரிக்கையை திறக்கும் போது காட்டப்படும் இது பணம் கோரிக்கை இணைக்க ஒரு விருப்ப செய்தி. குறிப்பு: Bitcoin நெட்வொர்க்கில் பணம் செலுத்தியவுடன் செய்தி அனுப்பப்படாது. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + கோரிக்கையை திறக்கும் போது காட்டப்படும் இது பணம் கோரிக்கை இணைக்க ஒரு விருப்ப செய்தி. குறிப்பு: Verium நெட்வொர்க்கில் பணம் செலுத்தியவுடன் செய்தி அனுப்பப்படாது. An optional label to associate with the new receiving address. @@ -2461,7 +2461,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p %n பிளாக் உறுதிப்படுத்தலைத் தொடங்க மதிப்பிடப்பட்டுள்ளது.%n பிளாக்குள் உறுதிப்படுத்தலைத் தொடங்க மதிப்பிடப்பட்டுள்ளது. - Warning: Invalid Bitcoin address + Warning: Invalid Verium address எச்சரிக்கை: தவறான பிட்காயின் முகவரி @@ -2504,7 +2504,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p இது சாதாரண கட்டணம். - The Bitcoin address to send the payment to + The Verium address to send the payment to கட்டணத்தை அனுப்ப பிட்காயின் முகவரி @@ -2552,7 +2552,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p இந்த முகவரியை பயன்படுத்தப்பட்ட முகவரிகளின் பட்டியலில் சேர்க்க ஒரு லேபிளை உள்ளிடவும். - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. பிட்காயினுடன் இணைக்கப்பட்ட செய்தி: உங்கள் எதிர்கால குறிப்புக்காக பரிவர்த்தனையுடன் யூஆர்ஐ சேமிக்கப்படும். குறிப்பு: இந்த செய்தி பிட்காயின் வலையமைப்பிற்கு அனுப்பப்படாது. @@ -2601,7 +2601,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p மற்றவர்களுக்கு அனுப்பப்பட்ட பிட்காயின்களைப் நீங்கள் பெறலாம் என்பதை நிரூபிக்க உங்கள் முகவரிகளுடன் செய்திகள் / ஒப்பந்தங்களில் கையொப்பமிடலாம். தெளிவற்ற அல்லது சீரற்ற எதையும் கையொப்பமிடாமல் கவனமாக இருங்கள், ஏனெனில் ஃபிஷிங் தாக்குதல்கள் உங்கள் அடையாளத்தை அவர்களிடம் கையொப்பமிட்டு ஏமாற்ற முயற்சிக்கும். நீங்கள் ஒப்புக்கொள்ளும் முழுமையான மற்றும் விரிவான அறிக்கைகளில் மட்டுமே கையொப்பமிடுங்கள். - The Bitcoin address to sign the message with + The Verium address to sign the message with செய்தியை கையொப்பமிட பிட்காயின் முகவரி @@ -2633,7 +2633,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p தற்போதைய கையொப்பத்தை கிளிப்போர்டுக்கு காபி செய் - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address இந்த பிட்காயின் முகவரி உங்களுக்கு சொந்தமானது என்பதை நிரூபிக்க செய்தியை கையொப்பமிடுங்கள் @@ -2653,11 +2653,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p &செய்தியைச் சரிபார்க்கவும் - The Bitcoin address the message was signed with + The Verium address the message was signed with செய்தி கையொப்பமிடப்பட்ட பிட்காயின் முகவரி - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address குறிப்பிட்ட பிட்காயின் முகவரியுடன் கையொப்பமிடப்பட்டதா என்பதை உறுதிப்படுத்த இந்த செய்தியைச் சரிபார்க்கவும் diff --git a/src/qt/locale/bitcoin_te.ts b/src/qt/locale/bitcoin_te.ts index 3ba1f4c173..095415f228 100644 --- a/src/qt/locale/bitcoin_te.ts +++ b/src/qt/locale/bitcoin_te.ts @@ -66,7 +66,7 @@ అందుకునే చిరునామాలు - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. ఇవి మీరు పంపే చెల్లింపుల బిట్‌కాయిన్ చిరునామాలు. నాణేలు పంపే ముందు ప్రతిసారి అందుకునే చిరునామా మరియు చెల్లింపు మొత్తం సరిచూసుకోండి. @@ -156,7 +156,7 @@ BanTableModel - BitcoinGUI + VeriumGUI E&xit నిష్క్రమించు @@ -223,7 +223,7 @@ Intro - Bitcoin + Verium బిట్కోయిన్ diff --git a/src/qt/locale/bitcoin_th.ts b/src/qt/locale/bitcoin_th.ts index b9418b61a8..cf71ff28b3 100644 --- a/src/qt/locale/bitcoin_th.ts +++ b/src/qt/locale/bitcoin_th.ts @@ -66,8 +66,8 @@ ที่อยู่ในการรับ - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - ที่อยู่ Bitcoin ของคุณสำหรับการส่งการชำระเงิน โปรดตรวจสอบจำนวนเงินและที่อยู่รับก่อนที่จะส่งเหรียญ + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + ที่อยู่ Verium ของคุณสำหรับการส่งการชำระเงิน โปรดตรวจสอบจำนวนเงินและที่อยู่รับก่อนที่จะส่งเหรียญ &Copy Address @@ -180,7 +180,7 @@ - BitcoinGUI + VeriumGUI Sign &message... เซ็นต์ชื่อด้วย &ข้อความ... @@ -262,8 +262,8 @@ กำลังทำดัชนี ที่เก็บบล็อก ใหม่ ในดิสก์... - Send coins to a Bitcoin address - ส่ง coins ไปยัง ที่เก็บ Bitcoin + Send coins to a Verium address + ส่ง coins ไปยัง ที่เก็บ Verium Backup wallet to another location @@ -306,12 +306,12 @@ เข้ารหัส private keys/ รหัสส่วนตัว สำหรับกระเป๋าเงินของท่าน - Sign messages with your Bitcoin addresses to prove you own them - เซ็นชื่อด้วยข้อความ ที่เก็บ Bitcoin เพื่อแสดงว่าท่านเป็นเจ้าของ bitcoin นี้จริง + Sign messages with your Verium addresses to prove you own them + เซ็นชื่อด้วยข้อความ ที่เก็บ Verium เพื่อแสดงว่าท่านเป็นเจ้าของ bitcoin นี้จริง - Verify messages to ensure they were signed with specified Bitcoin addresses - ตรวจสอบ ข้อความ เพื่อให้แน่ใจว่า การเซ็นต์ชื่อ ด้วยที่เก็บ Bitcoin แล้ว + Verify messages to ensure they were signed with specified Verium addresses + ตรวจสอบ ข้อความ เพื่อให้แน่ใจว่า การเซ็นต์ชื่อ ด้วยที่เก็บ Verium แล้ว &File @@ -350,8 +350,8 @@ &ตัวเลือก Command-line - %n active connection(s) to Bitcoin network - %n ช่องการเชื่อมต่อที่ใช้งานได้ เพื่อเชื่อมกับเครือข่าย Bitcoin + %n active connection(s) to Verium network + %n ช่องการเชื่อมต่อที่ใช้งานได้ เพื่อเชื่อมกับเครือข่าย Verium Indexing blocks on disk... @@ -394,8 +394,8 @@ ทันสมัย - Show the %1 help message to get a list with possible Bitcoin command-line options - แสดง %1 ข้อความช่วยเหลือ เพื่อแสดงรายการ ตัวเลือกที่เป็นไปได้สำหรับ Bitcoin command-line + Show the %1 help message to get a list with possible Verium command-line options + แสดง %1 ข้อความช่วยเหลือ เพื่อแสดงรายการ ตัวเลือกที่เป็นไปได้สำหรับ Verium command-line &Window @@ -456,8 +456,8 @@ กระเป๋าเงินถูก <b>เข้ารหัส</b> และในปัจจุบัน <b>ล็อค </b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - เกิดข้อผิดพลาดร้ายแรง Bitcoin ไม่สามารถดำเนินการต่อได้อย่างปลอดภัยอีกต่อไปและจะยกเลิก + A fatal error occurred. Verium can no longer continue safely and will quit. + เกิดข้อผิดพลาดร้ายแรง Verium ไม่สามารถดำเนินการต่อได้อย่างปลอดภัยอีกต่อไปและจะยกเลิก @@ -657,8 +657,8 @@ ใช้ไดเร็กทอรี่ข้อมูลที่ตั้งค่าเอง: - Bitcoin - Bitcoin + Verium + Verium Approximately %1 GB of data will be stored in this directory. @@ -789,16 +789,16 @@ &ใช้เงินทอนที่ยังไม่ยืนยัน - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - เปิด Bitcoin ไคล์เอ็นท์พอร์ต/client port บน router โดยอัตโนมัติ วิธีนี้ใช้ได้เมื่อ router สนับสนุน UPnP และสถานะเปิดใช้งาน + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + เปิด Verium ไคล์เอ็นท์พอร์ต/client port บน router โดยอัตโนมัติ วิธีนี้ใช้ได้เมื่อ router สนับสนุน UPnP และสถานะเปิดใช้งาน Map port using &UPnP จองพอร์ต โดยใช้ &UPnP - Connect to the Bitcoin network through a SOCKS5 proxy. - เชื่อมต่อกับ Bitcoin เน็ตเวิร์ก ผ่านพร็อกซี่แบบ SOCKS5 + Connect to the Verium network through a SOCKS5 proxy. + เชื่อมต่อกับ Verium เน็ตเวิร์ก ผ่านพร็อกซี่แบบ SOCKS5 &Connect through SOCKS5 proxy (default proxy): @@ -833,8 +833,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - เชื่อมต่อกับ เครือข่าย Bitcoin ผ่านทาง พร้อกซี่ SOCKS5 แยกต่างหาก สำหรับ Tor เซอร์วิส + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + เชื่อมต่อกับ เครือข่าย Verium ผ่านทาง พร้อกซี่ SOCKS5 แยกต่างหาก สำหรับ Tor เซอร์วิส &Window diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts index 061deee020..02eb20c62c 100644 --- a/src/qt/locale/bitcoin_tr.ts +++ b/src/qt/locale/bitcoin_tr.ts @@ -66,8 +66,8 @@ Alınan Adresler - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Bunlar ödeme göndermek için gereken Bitcoin adreslerinizdir. Para göndermeden önce her zaman miktarı ve alıcı adresi kontrol edin. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Bunlar ödeme göndermek için gereken Verium adreslerinizdir. Para göndermeden önce her zaman miktarı ve alıcı adresi kontrol edin. &Copy Address @@ -224,7 +224,7 @@ - BitcoinGUI + VeriumGUI Sign &message... İmza &mesaj @@ -326,8 +326,8 @@ Tünelleme <b>etkin</b>: %1 - Send coins to a Bitcoin address - Bitcoin adresine madeni para gönderin + Send coins to a Verium address + Verium adresine madeni para gönderin Backup wallet to another location @@ -370,12 +370,12 @@ Cüzdanınıza ait özel anahtarları şifreleyin - Sign messages with your Bitcoin addresses to prove you own them - İletileri adreslerin size ait olduğunu ispatlamak için Bitcoin adresleri ile imzala + Sign messages with your Verium addresses to prove you own them + İletileri adreslerin size ait olduğunu ispatlamak için Verium adresleri ile imzala - Verify messages to ensure they were signed with specified Bitcoin addresses - Belirtilen Bitcoin adresleri ile imzalandıklarından emin olmak için iletileri kontrol et + Verify messages to ensure they were signed with specified Verium addresses + Belirtilen Verium adresleri ile imzalandıklarından emin olmak için iletileri kontrol et &File @@ -414,8 +414,8 @@ Komut satırı ayarları - %n active connection(s) to Bitcoin network - Bitcoin şebekesine %n faal bağlantıBitcoin ağına %n etkin bağlantı var + %n active connection(s) to Verium network + Verium şebekesine %n faal bağlantıVerium ağına %n etkin bağlantı var Indexing blocks on disk... @@ -474,8 +474,8 @@ Cüzdanı Kapat - Show the %1 help message to get a list with possible Bitcoin command-line options - Olası Bitcoin komut satırı seçeneklerinin listesini görmek için %1 yardım mesajını göster + Show the %1 help message to get a list with possible Verium command-line options + Olası Verium komut satırı seçeneklerinin listesini görmek için %1 yardım mesajını göster default wallet @@ -565,15 +565,15 @@ Cüzdan <b>şifrelenmiştir</b> ve şu anda <b>kilitlidir</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Ölümcül bir hata oluştu. Bitcoin yazılımı artık güvenli bir şekilde çalışmaya devam edemediği için kapatılacaktır. + A fatal error occurred. Verium can no longer continue safely and will quit. + Ölümcül bir hata oluştu. Verium yazılımı artık güvenli bir şekilde çalışmaya devam edemediği için kapatılacaktır. CoinControlDialog Coin Selection - Bitcoin Seçimi + Verium Seçimi Quantity: @@ -761,8 +761,8 @@ Gönderim adresini düzenleyin - The entered address "%1" is not a valid Bitcoin address. - Girilen adres "%1" Bitcoin adresiyle eşleşmiyor. + The entered address "%1" is not a valid Verium address. + Girilen adres "%1" Verium adresiyle eşleşmiyor. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -854,8 +854,8 @@ Özel bir veri klasörü kullan: - Bitcoin - Bitcoin + Verium + Verium @@ -867,8 +867,8 @@ Yaklaşık %1 GB veri bu dizinde depolanacak. - %1 will download and store a copy of the Bitcoin block chain. - %1 lik Bitcoin blok zinciri nin bir kopyasını indirecek ve depolayacak. + %1 will download and store a copy of the Verium block chain. + %1 lik Verium blok zinciri nin bir kopyasını indirecek ve depolayacak. The wallet will also be stored in this directory. @@ -1083,8 +1083,8 @@ Doğrulanmamış para üstünü &harca - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Yönlendiricide Bitcoin istemci portlarını otomatik olarak açar. Bu, sadece yönlendiricinizin UPnP desteği bulunuyorsa ve etkinse çalışabilir. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Yönlendiricide Verium istemci portlarını otomatik olarak açar. Bu, sadece yönlendiricinizin UPnP desteği bulunuyorsa ve etkinse çalışabilir. Map port using &UPnP @@ -1099,8 +1099,8 @@ Gelen bağlantılara izin ver - Connect to the Bitcoin network through a SOCKS5 proxy. - Bitcoin ağına bir SOCKS5 vekil sunucusu aracılığıyla bağlan. + Connect to the Verium network through a SOCKS5 proxy. + Verium ağına bir SOCKS5 vekil sunucusu aracılığıyla bağlan. &Connect through SOCKS5 proxy (default proxy): @@ -1135,8 +1135,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Bitcoin ağına gizli Tor servisleri için ayrı bir SOCKS5 vekil sunucusu aracılığıyla bağlan. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Verium ağına gizli Tor servisleri için ayrı bir SOCKS5 vekil sunucusu aracılığıyla bağlan. &Window @@ -1172,7 +1172,7 @@ Choose the default subdivision unit to show in the interface and when sending coins. - Bitcoin gönderildiğinde arayüzde gösterilecek varsayılan alt birimi seçiniz. + Verium gönderildiğinde arayüzde gösterilecek varsayılan alt birimi seçiniz. Whether to show coin control features or not. @@ -1242,7 +1242,7 @@ Form - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. Gösterilen bilgi geçerli olmayabilir. Bağlantı tekrar sağlandıktan sonra cüzdanınız otomatik olarak senkronize olacaktır. Henüz senkronize olma işlemi tamamlanmadı. @@ -1318,7 +1318,7 @@ Cannot start bitcoin: click-to-pay handler - Bitcoin başlatılamadı: tıkla-ve-öde yöneticisi + Verium başlatılamadı: tıkla-ve-öde yöneticisi URI handling @@ -1337,8 +1337,8 @@ Hatalı ödeme adresi %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI ayrıştırılamıyor! Bunun nedeni geçersiz bir Bitcoin adresi veya hatalı biçimlendirilmiş URI değişkenleri olabilir. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI ayrıştırılamıyor! Bunun nedeni geçersiz bir Verium adresi veya hatalı biçimlendirilmiş URI değişkenleri olabilir. Payment request file handling @@ -1439,8 +1439,8 @@ Tutar - Enter a Bitcoin address (e.g. %1) - Bitcoin adresinizi girin (örneğin %1) + Enter a Verium address (e.g. %1) + Verium adresinizi girin (örneğin %1) %1 d @@ -1822,7 +1822,7 @@ WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - UYARI: Bitcoin dolandırıcılarının çok fazla etkin olduğu zamanlarda, dolandırıcılar bazı kullanıcılara buraya komutlar yazmalarını söylerek onların cüzdanlarındaki bitcoinleri çalmışlardır. Bir komutun sonuçlarını tam olarak anlamadan bu konsolu kullanmayın. + UYARI: Verium dolandırıcılarının çok fazla etkin olduğu zamanlarda, dolandırıcılar bazı kullanıcılara buraya komutlar yazmalarını söylerek onların cüzdanlarındaki bitcoinleri çalmışlardır. Bir komutun sonuçlarını tam olarak anlamadan bu konsolu kullanmayın. Network activity disabled @@ -1884,8 +1884,8 @@ &Mesaj - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Talep açıldığında gösterilecek, isteğinize dayalı, ödeme talebi ile ilişkilendirilecek bir ileti. Not: Bu ileti ödeme ile birlikte Bitcoin ağı üzerinden gönderilmeyecektir. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Talep açıldığında gösterilecek, isteğinize dayalı, ödeme talebi ile ilişkilendirilecek bir ileti. Not: Bu ileti ödeme ile birlikte Verium ağı üzerinden gönderilmeyecektir. An optional label to associate with the new receiving address. @@ -2257,8 +2257,8 @@ Tahmini %n blok içinde doğrulamaya başlanacaktır.Tahmini %n blok içinde doğrulamaya başlanacaktır. - Warning: Invalid Bitcoin address - Uyarı: Hatalı Bitcoin adresi + Warning: Invalid Verium address + Uyarı: Hatalı Verium adresi Warning: Unknown change address @@ -2300,8 +2300,8 @@ Bu, normal bir ödemedir. - The Bitcoin address to send the payment to - Ödemenin yollanacağı Bitcoin adresi + The Verium address to send the payment to + Ödemenin yollanacağı Verium adresi Alt+A @@ -2348,8 +2348,8 @@ Kullanılmış adres listesine eklemek için bu adrese bir etiket girin - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Referans için bitcoin: URI'siyle iliştirilmiş işlemle birlikte depolanacak bir ileti. Not: Bu mesaj Bitcoin ağı üzerinden gönderilmeyecektir. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Referans için bitcoin: URI'siyle iliştirilmiş işlemle birlikte depolanacak bir ileti. Not: Bu mesaj Verium ağı üzerinden gönderilmeyecektir. Pay To: @@ -2397,8 +2397,8 @@ Adreslerinize yollanan bitcoinleri alabileceğiniz ispatlamak için adreslerinizle iletiler/anlaşmalar imzalayabilirsiniz. Oltalama saldırılarının kimliğinizi imzanızla elde etmeyi deneyebilecekleri için belirsiz ya da rastgele hiçbir şey imzalamamaya dikkat ediniz. Sadece ayrıntılı açıklaması olan ve tümüne katıldığınız ifadeleri imzalayınız. - The Bitcoin address to sign the message with - İletinin imzalanmasında kullanılacak Bitcoin adresi + The Verium address to sign the message with + İletinin imzalanmasında kullanılacak Verium adresi Choose previously used address @@ -2429,8 +2429,8 @@ Güncel imzayı sistem panosuna kopyala - Sign the message to prove you own this Bitcoin address - Bu Bitcoin adresinin sizin olduğunu ispatlamak için iletiyi imzalayın + Sign the message to prove you own this Verium address + Bu Verium adresinin sizin olduğunu ispatlamak için iletiyi imzalayın Sign &Message @@ -2453,12 +2453,12 @@ Alıcının adresini, iletiyi (satır sonları, boşluklar, sekmeler vs. karakterleri tam olarak kopyaladığınızdan emin olunuz) ve imzayı aşağıya giriniz. Bir ortadaki adam saldırısı tarafından kandırılmaya engel olmak için imzadan, imzalı iletinin içeriğini aşan bir anlam çıkarmamaya dikkat ediniz. Bunun sadece imzalayan tarafın adres ile alım yapabildiğini ispatladığını ve herhangi bir işlemin gönderi tarafını kanıtlayamayacağını unutmayınız! - The Bitcoin address the message was signed with - İletinin imzalanmasında kullanılan Bitcoin adresi + The Verium address the message was signed with + İletinin imzalanmasında kullanılan Verium adresi - Verify the message to ensure it was signed with the specified Bitcoin address - Belirtilen Bitcoin adresi ile imzalandığını doğrulamak için iletiyi kontrol et + Verify the message to ensure it was signed with the specified Verium address + Belirtilen Verium adresi ile imzalandığını doğrulamak için iletiyi kontrol et Verify &Message diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index 88e8c3d3c4..4d88f9811d 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -66,11 +66,11 @@ Адреса получения - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - Это ваши адреса Bitcoin для отправки платежей. Всегда проверяйте количество и адрес получателя перед отправкой перевода. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Это ваши адреса Verium для отправки платежей. Всегда проверяйте количество и адрес получателя перед отправкой перевода. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. Це ваші біткойн-адреси для отримання платежів. Використовуйте кнопку "Створити нову адресу прийому" на вкладці отримання, для створення нових адрес. @@ -248,7 +248,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Подписать &сообщение... @@ -358,7 +358,7 @@ Проксі <b>увімкнено</b>: %1 - Send coins to a Bitcoin address + Send coins to a Verium address Відправити монети на вказану адресу @@ -402,12 +402,12 @@ Зашифрувати закриті ключі, що знаходяться у вашому гаманці - Sign messages with your Bitcoin addresses to prove you own them - Підтвердіть, що Ви є власником повідомлення підписавши його Вашою Bitcoin-адресою + Sign messages with your Verium addresses to prove you own them + Підтвердіть, що Ви є власником повідомлення підписавши його Вашою Verium-адресою - Verify messages to ensure they were signed with specified Bitcoin addresses - Перевірте повідомлення для впевненості, що воно підписано вказаною Bitcoin-адресою + Verify messages to ensure they were signed with specified Verium addresses + Перевірте повідомлення для впевненості, що воно підписано вказаною Verium-адресою &File @@ -446,8 +446,8 @@ П&араметри командного рядка - %n active connection(s) to Bitcoin network - %n активне з'єднання з мережею Bitcoin%n активні з'єднання з мережею Bitcoin%n активних з'єднань з мережею Bitcoin%n активних з'єднань з мережею Bitcoin + %n active connection(s) to Verium network + %n активне з'єднання з мережею Verium%n активні з'єднання з мережею Verium%n активних з'єднань з мережею Verium%n активних з'єднань з мережею Verium Indexing blocks on disk... @@ -514,7 +514,7 @@ закрити Гаманець - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options Показати довідку %1 для отримання переліку можливих параметрів командного рядка. @@ -626,7 +626,7 @@ <b>Зашифрований</b> гаманець <b>заблоковано</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. Сталася фатальна помилка. Гаманець буде закрито. @@ -854,8 +854,8 @@ Редагувати адресу для відправлення - The entered address "%1" is not a valid Bitcoin address. - Введена адреса "%1" не є адресою в мережі Bitcoin. + The entered address "%1" is not a valid Verium address. + Введена адреса "%1" не є адресою в мережі Verium. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -951,8 +951,8 @@ Використовувати свій каталог даних: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -963,7 +963,7 @@ Близько %1 Гб даних буде збережено в цьому каталозі. - %1 will download and store a copy of the Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. %1 буде завантажувати та зберігати копію ланцюжка блоків біткінів. @@ -1199,7 +1199,7 @@ &Витрачати непідтверджену решту - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. Автоматично відкривати порт для клієнту біткоін на роутері. Працює лише якщо ваш роутер підтримує UPnP і ця функція увімкнена. @@ -1215,8 +1215,8 @@ Разрешить входящие подключения - Connect to the Bitcoin network through a SOCKS5 proxy. - Підключення до мережі Bitcoin через SOCKS5 проксі. + Connect to the Verium network through a SOCKS5 proxy. + Підключення до мережі Verium через SOCKS5 проксі. &Connect through SOCKS5 proxy (default proxy): @@ -1251,8 +1251,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Підключатися до мережі Bitcoin через окремий SOCKS5 проксі для прихованих сервісів Tor. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Підключатися до мережі Verium через окремий SOCKS5 проксі для прихованих сервісів Tor. &Window @@ -1362,8 +1362,8 @@ Форма - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Показана інформація вже може бути застарілою. Ваш гаманець буде автоматично синхронізовано з мережею Bitcoin після встановлення підключення, але цей процес ще не завершено. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Показана інформація вже може бути застарілою. Ваш гаманець буде автоматично синхронізовано з мережею Verium після встановлення підключення, але цей процес ще не завершено. Watch-only: @@ -1465,7 +1465,7 @@ Помилка в адресі платежу %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. Неможливо обробити URI! Причиною цього може бути некоректна Біткойн-адреса або неправильні параметри URI. @@ -1569,8 +1569,8 @@ Кількість - Enter a Bitcoin address (e.g. %1) - Введіть адресу Bitcoin (наприклад %1) + Enter a Verium address (e.g. %1) + Введіть адресу Verium (наприклад %1) %1 d @@ -2026,8 +2026,8 @@ &Повідомлення: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Необов'язкове повідомлення на додаток до запиту платежу, котре буде показане під час відкриття запиту. Примітка: Це повідомлення не буде відправлено з платежем через мережу Bitcoin. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Необов'язкове повідомлення на додаток до запиту платежу, котре буде показане під час відкриття запиту. Примітка: Це повідомлення не буде відправлено з платежем через мережу Verium. An optional label to associate with the new receiving address. @@ -2439,7 +2439,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Очікуваний початок підтвердження через %n блок.Очікуваний початок підтвердження протягом %n блоків.Очікуваний початок підтвердження протягом %n блоків.Очікуваний початок підтвердження протягом %n блоків. - Warning: Invalid Bitcoin address + Warning: Invalid Verium address Увага: Неприпустима Біткойн-адреса. @@ -2482,8 +2482,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Це звичайний платіж. - The Bitcoin address to send the payment to - Адреса Bitcoin для відправлення платежу + The Verium address to send the payment to + Адреса Verium для відправлення платежу Alt+A @@ -2530,8 +2530,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Введіть мітку для цієї адреси для додавання її в список використаних адрес - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Повідомлення, що було додане до bitcoin:URI та буде збережено разом з транзакцією для довідки. Примітка: Це повідомлення не буде відправлено в мережу Bitcoin. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Повідомлення, що було додане до bitcoin:URI та буде збережено разом з транзакцією для довідки. Примітка: Це повідомлення не буде відправлено в мережу Verium. Pay To: @@ -2579,8 +2579,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Ви можете підписувати повідомлення/угоди своїми адресами, щоб довести можливість отримання біткоінів, що будуть надіслані на них. Остерігайтеся підписувати будь-що нечітке чи неочікуване, так як за допомогою фішинг-атаки вас можуть спробувати ввести в оману для отримання вашого підпису під чужими словами. Підписуйте лише чіткі твердження, з якими ви повністю згодні. - The Bitcoin address to sign the message with - Адреса Bitcoin для підпису цього повідомлення + The Verium address to sign the message with + Адреса Verium для підпису цього повідомлення Choose previously used address @@ -2611,7 +2611,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Копіювати поточну сигнатуру до системного буферу обміну - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address Підпишіть повідомлення щоб довести, що ви є власником цієї адреси @@ -2635,12 +2635,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Введіть нижче адресу отримувача, повідомлення (впевніться, що ви точно скопіювали символи завершення рядка, табуляцію, пробіли тощо) та підпис для перевірки повідомлення. Впевніться, що в підпис не було додано зайвих символів: це допоможе уникнути атак типу «людина посередині». Зауважте, що це лише засвідчує можливість отримання транзакцій підписувачем, але не в стані підтвердити джерело жодної транзакції! - The Bitcoin address the message was signed with - Адреса Bitcoin, якою було підписано це повідомлення + The Verium address the message was signed with + Адреса Verium, якою було підписано це повідомлення - Verify the message to ensure it was signed with the specified Bitcoin address - Перевірте повідомлення для впевненості, що воно підписано вказаною Bitcoin-адресою + Verify the message to ensure it was signed with the specified Verium address + Перевірте повідомлення для впевненості, що воно підписано вказаною Verium-адресою Verify &Message diff --git a/src/qt/locale/bitcoin_ur.ts b/src/qt/locale/bitcoin_ur.ts index efb8956c5d..71fd93e994 100644 --- a/src/qt/locale/bitcoin_ur.ts +++ b/src/qt/locale/bitcoin_ur.ts @@ -120,7 +120,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Error نقص diff --git a/src/qt/locale/bitcoin_uz@Cyrl.ts b/src/qt/locale/bitcoin_uz@Cyrl.ts index d264fd5f62..7db285aad7 100644 --- a/src/qt/locale/bitcoin_uz@Cyrl.ts +++ b/src/qt/locale/bitcoin_uz@Cyrl.ts @@ -72,7 +72,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Sign &message... &Хабар ёзиш... @@ -138,8 +138,8 @@ Дискдаги блоклар қайта индексланмоқда... - Send coins to a Bitcoin address - Тангаларни Bitcoin манзилига жўнатиш + Send coins to a Verium address + Тангаларни Verium манзилига жўнатиш Backup wallet to another location @@ -182,12 +182,12 @@ Ҳамёнингизга тегишли махфий калитларни кодлаш - Sign messages with your Bitcoin addresses to prove you own them - Bitcoin манзилидан унинг эгаси эканлигингизни исботлаш учун хабарлар ёзинг + Sign messages with your Verium addresses to prove you own them + Verium манзилидан унинг эгаси эканлигингизни исботлаш учун хабарлар ёзинг - Verify messages to ensure they were signed with specified Bitcoin addresses - Хабарларни махсус Bitcoin манзилларингиз билан ёзилганлигига ишонч ҳосил қилиш учун уларни тасдиқланг + Verify messages to ensure they were signed with specified Verium addresses + Хабарларни махсус Verium манзилларингиз билан ёзилганлигига ишонч ҳосил қилиш учун уларни тасдиқланг &File @@ -219,15 +219,15 @@ Open a bitcoin: URI or payment request - Bitcoin’ни очиш: URI ёки тўлов сўрови + Verium’ни очиш: URI ёки тўлов сўрови &Command-line options &Буйруқлар сатри мосламалари - %n active connection(s) to Bitcoin network - %n та Bitcoin тармоғига фаол уланиш мавжуд + %n active connection(s) to Verium network + %n та Verium тармоғига фаол уланиш мавжуд %1 behind @@ -427,8 +427,8 @@ Бошқа маълумотлар директориясида фойдаланинг: - Bitcoin - Bitcoin + Verium + Verium Error: Specified data directory "%1" cannot be created. @@ -586,8 +586,8 @@ Шакл - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Кўрсатилган маълумот эскирган бўлиши мумкин. Ҳамёнингиз алоқа ўрнатилгандан сўнг Bitcoin тармоқ билан автоматик тарзда синхронланади, аммо жараён ҳалигача тугалланмади. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Кўрсатилган маълумот эскирган бўлиши мумкин. Ҳамёнингиз алоқа ўрнатилгандан сўнг Verium тармоқ билан автоматик тарзда синхронланади, аммо жараён ҳалигача тугалланмади. Watch-only: @@ -667,8 +667,8 @@ Миқдори - Enter a Bitcoin address (e.g. %1) - Bitcoin манзилини киритинг (масалан. %1) + Enter a Verium address (e.g. %1) + Verium манзилини киритинг (масалан. %1) %1 m diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/bitcoin_vi.ts index c356567a19..27759c7c1e 100644 --- a/src/qt/locale/bitcoin_vi.ts +++ b/src/qt/locale/bitcoin_vi.ts @@ -66,12 +66,12 @@ Địa chỉ đang nhận - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. Đây là những địa chỉ đang thực hiện thanh toán. Luôn kiểm tra số lượng và địa chỉ nhận trước khi gửi coins. - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. - Những địa chỉ Bitcoin này để bạn nhận thanh toán. Sử dụng 'Tạo địa chỉ nhận mới' + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + Những địa chỉ Verium này để bạn nhận thanh toán. Sử dụng 'Tạo địa chỉ nhận mới' &Copy Address @@ -224,7 +224,7 @@ - BitcoinGUI + VeriumGUI Sign &message... Chữ ký &lời nhắn... @@ -326,8 +326,8 @@ Proxy là <b> cho phép </b>: %1 - Send coins to a Bitcoin address - Gửi coin đến một địa chỉ Bitcoin + Send coins to a Verium address + Gửi coin đến một địa chỉ Verium Backup wallet to another location @@ -370,12 +370,12 @@ Mã hóa private key thuộc về ví của bạn - Sign messages with your Bitcoin addresses to prove you own them - Đăng ký lời nhắn với địa chỉ Bitcoin của bạn để chứng minh quyền sở hữu chúng + Sign messages with your Verium addresses to prove you own them + Đăng ký lời nhắn với địa chỉ Verium của bạn để chứng minh quyền sở hữu chúng - Verify messages to ensure they were signed with specified Bitcoin addresses - Xác minh lời nhắn để chắc chắn đã được đăng ký với địa chỉ Bitcoin xác định + Verify messages to ensure they were signed with specified Verium addresses + Xác minh lời nhắn để chắc chắn đã được đăng ký với địa chỉ Verium xác định &File @@ -414,8 +414,8 @@ &Tùy chỉnh Command-line - %n active connection(s) to Bitcoin network - %n kết nối đến Bitcoin network + %n active connection(s) to Verium network + %n kết nối đến Verium network Indexing blocks on disk... @@ -482,8 +482,8 @@ Đông ví - Show the %1 help message to get a list with possible Bitcoin command-line options - Hiển thị %1 tin nhắn hỗ trợ để nhận được danh sách Bitcoin command-line khả dụng + Show the %1 help message to get a list with possible Verium command-line options + Hiển thị %1 tin nhắn hỗ trợ để nhận được danh sách Verium command-line khả dụng default wallet @@ -594,8 +594,8 @@ Ví thì <b>encrypted</b> và hiện tại <b>locked</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - Một lỗi nghiêm trọng vừa xảy ra. Bitcoin có thể không còn tiếp tục an toàn và sẽ bị bỏ. + A fatal error occurred. Verium can no longer continue safely and will quit. + Một lỗi nghiêm trọng vừa xảy ra. Verium có thể không còn tiếp tục an toàn và sẽ bị bỏ. @@ -790,8 +790,8 @@ Edit address đang gửi - The entered address "%1" is not a valid Bitcoin address. - Address đã nhập "%1" không valid Bitcoin address. + The entered address "%1" is not a valid Verium address. + Address đã nhập "%1" không valid Verium address. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -887,8 +887,8 @@ Sử dụng custom danh mục data: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -899,8 +899,8 @@ Gần đúng %1 GB of data sẽ được lưu giữ trong danh mục này. - %1 will download and store a copy of the Bitcoin block chain. - %1 sẽ download và lưu trữ một bản copy của Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. + %1 sẽ download và lưu trữ một bản copy của Verium block chain. The wallet will also be stored in this directory. @@ -1127,8 +1127,8 @@ &Spend unconfirmed change - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. Map port using &UPnP @@ -1143,8 +1143,8 @@ Chấp nhận kết nối đang tới - Connect to the Bitcoin network through a SOCKS5 proxy. - Kết nối đến Bitcoin network qua một SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. + Kết nối đến Verium network qua một SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1179,8 +1179,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - Kết nối đến Bitcoin network qua một nhánh rời SOCKS5 proxy của Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + Kết nối đến Verium network qua một nhánh rời SOCKS5 proxy của Tor hidden services. &Window @@ -1290,8 +1290,8 @@ Form - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - Thông tin được hiển thị có thể đã lỗi thời. Cái wallet tự động đồng bộ với Bitcoin network sau một connection được thiết lập, nhưng quá trình này vẫn chưa completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + Thông tin được hiển thị có thể đã lỗi thời. Cái wallet tự động đồng bộ với Verium network sau một connection được thiết lập, nhưng quá trình này vẫn chưa completed yet. Watch-only: @@ -1393,8 +1393,8 @@ Invalid payment address %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - URI không thể phân tích cú pháp! Đây có thể gây nên bởi invalid Bitcoin address hoặc URI không đúng định dạng tham số. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + URI không thể phân tích cú pháp! Đây có thể gây nên bởi invalid Verium address hoặc URI không đúng định dạng tham số. Payment request file handling @@ -1495,8 +1495,8 @@ Số lượng - Enter a Bitcoin address (e.g. %1) - Nhập một Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) + Nhập một Verium address (e.g. %1) %1 d @@ -1956,8 +1956,8 @@ &Message: - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - Một optional lời nhắn để đính kèm đến payment request, cái mà sẽ được hiển thị khi mà request đang mở. Lưu ý: Tin nhắn này sẽ không được gửi với payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + Một optional lời nhắn để đính kèm đến payment request, cái mà sẽ được hiển thị khi mà request đang mở. Lưu ý: Tin nhắn này sẽ không được gửi với payment over the Verium network. An optional label to associate with the new receiving address. @@ -2377,8 +2377,8 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Dự kiến bắt đầu xác nhận trong vòng %n blocks. - Warning: Invalid Bitcoin address - Warning: Invalid Bitcoin address + Warning: Invalid Verium address + Warning: Invalid Verium address Warning: Unknown change address @@ -2420,8 +2420,8 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Đây là một thông thường payment. - The Bitcoin address to send the payment to - The Bitcoin address để gửi the payment đến + The Verium address to send the payment to + The Verium address để gửi the payment đến Alt+A @@ -2468,8 +2468,8 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Nhập một label cho cái address này để thêm vào danh sách địa chỉ đã sử dụng - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - Một tin nhắn được đính kèm với số bitcoin: URI mà sẽ được lưu giữ với transaction dành cho tài liệu tham khảo. Lưu ý: Tin nhắn này sẽ không được gửi thông qua Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Một tin nhắn được đính kèm với số bitcoin: URI mà sẽ được lưu giữ với transaction dành cho tài liệu tham khảo. Lưu ý: Tin nhắn này sẽ không được gửi thông qua Verium network. Pay To: @@ -2517,8 +2517,8 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Bạn có thể ký/đồng ý với địa chỉ chứng minh bạn có thể receive bitcoins đã gửi đến chúng. Cẩn thận không ký bất cứ không rõ hay random, như các cuộc tấn công lừa đảo có thể cố lừa bạn ký tên vào danh tính của bạn.. Chỉ ký các bản tuyên bố hoàn chỉnh mà bạn đồng ý. - The Bitcoin address to sign the message with - The Bitcoin address để ký với tin nhắn + The Verium address to sign the message with + The Verium address để ký với tin nhắn Choose previously used address @@ -2549,8 +2549,8 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Copy hiện tại signature tới system clipboard - Sign the message to prove you own this Bitcoin address - Ký tin nhắn để chứng minh bạn sở hữu Bitcoin address này + Sign the message to prove you own this Verium address + Ký tin nhắn để chứng minh bạn sở hữu Verium address này Sign &Message @@ -2573,12 +2573,12 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Nhập vào address người nhận, tin nhắn (chắc rằng bạn copy line breaks, khoảng trống, tabs, etc. chính xác) và signature bên dưới verify tin nhắn. Cẩn thận không đọc nhiều hơn từ signature so với cái được ký trong bản thân tin nhắn, để tránh bị lừa bới man-in-the-middle tấn công. Lưu ý rằng điều này chỉ chứng nhận nhóm những người nhân với address, nó không thể chứng minh bên gửi có bất kỳ transaction! - The Bitcoin address the message was signed with - The Bitcoin address tin nhắn đã ký với + The Verium address the message was signed with + The Verium address tin nhắn đã ký với - Verify the message to ensure it was signed with the specified Bitcoin address - Verify tin nhắn để chắc rằng nó đã được ký với xác định Bitcoin address + Verify the message to ensure it was signed with the specified Verium address + Verify tin nhắn để chắc rằng nó đã được ký với xác định Verium address Verify &Message diff --git a/src/qt/locale/bitcoin_yo.ts b/src/qt/locale/bitcoin_yo.ts index 8904bd7f26..edd9d7f673 100644 --- a/src/qt/locale/bitcoin_yo.ts +++ b/src/qt/locale/bitcoin_yo.ts @@ -16,7 +16,7 @@ BanTableModel - BitcoinGUI + VeriumGUI Open Wallet sii apamowo diff --git a/src/qt/locale/bitcoin_zh-Hans.ts b/src/qt/locale/bitcoin_zh-Hans.ts index 20c948c432..78908115ca 100644 --- a/src/qt/locale/bitcoin_zh-Hans.ts +++ b/src/qt/locale/bitcoin_zh-Hans.ts @@ -62,7 +62,7 @@ 接收地址 - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. 这是你的比特币发币地址。发送前请确认发送数量和接收地址 @@ -120,7 +120,7 @@ BanTableModel - BitcoinGUI + VeriumGUI CoinControlDialog diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index 0e538786e0..ee7a9b9a33 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -66,11 +66,11 @@ 收款地址 - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. 您可以给这些比特币地址付款。在付款之前,务必要检查金额和收款地址是否正确。 - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. 您可以用这些比特币地址收款。使用“接收”标签页中的"创建新收款地址"按钮创建新地址。 @@ -252,7 +252,7 @@ - BitcoinGUI + VeriumGUI Sign &message... 消息签名(&M)... @@ -362,7 +362,7 @@ 代理服务器已<b>启用</b>: %1 - Send coins to a Bitcoin address + Send coins to a Verium address 向一个比特币地址发币 @@ -406,11 +406,11 @@ 把你钱包中的私钥加密 - Sign messages with your Bitcoin addresses to prove you own them + Sign messages with your Verium addresses to prove you own them 用比特币地址关联的私钥为消息签名,以证明您拥有这个比特币地址 - Verify messages to ensure they were signed with specified Bitcoin addresses + Verify messages to ensure they were signed with specified Verium addresses 校验消息,确保该消息是由指定的比特币地址所有者签名的 @@ -450,7 +450,7 @@ 命令行选项(&C) - %n active connection(s) to Bitcoin network + %n active connection(s) to Verium network %n 条到比特币网络的活动连接 @@ -518,7 +518,7 @@ 关闭钱包 - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options 显示 %1 帮助信息,获取可用命令行选项列表 @@ -630,7 +630,7 @@ 钱包已被<b>加密</b>,当前为<b>锁定</b>状态 - A fatal error occurred. Bitcoin can no longer continue safely and will quit. + A fatal error occurred. Verium can no longer continue safely and will quit. 发生严重错误。客户端无法安全地继续运行,即将退出。 @@ -874,7 +874,7 @@ 编辑付款地址 - The entered address "%1" is not a valid Bitcoin address. + The entered address "%1" is not a valid Verium address. 输入的地址 %1 并不是有效的比特币地址。 @@ -975,7 +975,7 @@ 使用自定义的数据目录: - Bitcoin + Verium 比特币 @@ -991,7 +991,7 @@ 会在此目录中存储约 %1 GB 的数据。 - %1 will download and store a copy of the Bitcoin block chain. + %1 will download and store a copy of the Verium block chain. %1 将会下载并存储比特币区块链。 @@ -1231,7 +1231,7 @@ 动用尚未确认的找零资金(&S) - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. 自动在路由器中为比特币客户端打开端口。只有当您的路由器开启了 UPnP 选项时此功能才会有用。 @@ -1247,7 +1247,7 @@ 允许传入连接(&G) - Connect to the Bitcoin network through a SOCKS5 proxy. + Connect to the Verium network through a SOCKS5 proxy. 通过 SOCKS5 代理连接比特币网络。 @@ -1283,7 +1283,7 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. 通过 Tor 隐藏服务连接比特币网络时使用另一个 SOCKS5 代理。 @@ -1394,7 +1394,7 @@ 窗体 - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. 现在显示的消息可能是过期的。在连接上比特币网络节点后,您的钱包将自动与网络同步,但是这个过程还没有完成。 @@ -1505,7 +1505,7 @@ 无效的付款地址 %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. 无法解析 URI 地址!可能是因为比特币地址无效,或是 URI 参数格式错误。 @@ -1607,7 +1607,7 @@ 金额 - Enter a Bitcoin address (e.g. %1) + Enter a Verium address (e.g. %1) 请输入一个比特币地址 (例如 %1) @@ -2068,7 +2068,7 @@ 消息(&M): - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. 可在支付请求上备注一条信息,在打开支付请求时可以看到。注意:该消息不是通过比特币网络传送。 @@ -2497,7 +2497,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 预计在等待 %n 个区块后会有第一个确认。 - Warning: Invalid Bitcoin address + Warning: Invalid Verium address 警告: 比特币地址无效 @@ -2540,7 +2540,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 这是笔正常的付款。 - The Bitcoin address to send the payment to + The Verium address to send the payment to 付款目的地址 @@ -2588,7 +2588,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 请为此地址输入一个标签以将它加入已用地址列表 - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. bitcoin: URI 附带的备注信息,将会和交易一起存储,备查。 注意:该消息不会通过比特币网络传输。 @@ -2637,7 +2637,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 您可以用你的地址对消息/协议进行签名,以证明您可以接收发送到该地址的比特币。注意不要对任何模棱两可或者随机的消息进行签名,以免遭受钓鱼式攻击。请确保消息内容准确的表达了您的真实意愿。 - The Bitcoin address to sign the message with + The Verium address to sign the message with 用来对消息签名的地址 @@ -2669,7 +2669,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 复制当前签名至剪贴板 - Sign the message to prove you own this Bitcoin address + Sign the message to prove you own this Verium address 签名消息,以证明这个地址属于您 @@ -2693,11 +2693,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 请在下面输入接收者地址、消息(确保换行符、空格符、制表符等完全相同)和签名以验证消息。请仔细核对签名信息,以提防中间人攻击。请注意,这只是证明接收方可以用这个地址签名,它不能证明任何交易! - The Bitcoin address the message was signed with + The Verium address the message was signed with 用来签名消息的地址 - Verify the message to ensure it was signed with the specified Bitcoin address + Verify the message to ensure it was signed with the specified Verium address 验证消息,确保消息是由指定的比特币地址签名过的。 diff --git a/src/qt/locale/bitcoin_zh_HK.ts b/src/qt/locale/bitcoin_zh_HK.ts index 5b714a0ed2..e13a84bd90 100644 --- a/src/qt/locale/bitcoin_zh_HK.ts +++ b/src/qt/locale/bitcoin_zh_HK.ts @@ -62,8 +62,8 @@ 收款地址 - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - 這些是你要付款過去的 Bitcoin 位址。在付款之前,務必要檢查金額和收款位址是否正確。 + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + 這些是你要付款過去的 Verium 位址。在付款之前,務必要檢查金額和收款位址是否正確。 &Copy Address @@ -157,7 +157,7 @@ Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - 警告: 如果你將錢包加密後又忘記密碼,你就會<b>失去所有 Bitcoin 了</b>! + 警告: 如果你將錢包加密後又忘記密碼,你就會<b>失去所有 Verium 了</b>! Are you sure you wish to encrypt your wallet? @@ -216,7 +216,7 @@ - BitcoinGUI + VeriumGUI Sign &message... 簽署訊息... &m @@ -294,8 +294,8 @@ 正在為磁碟區塊重建索引... - Send coins to a Bitcoin address - 付款至一個 Bitcoin 位址 + Send coins to a Verium address + 付款至一個 Verium 位址 Backup wallet to another location @@ -397,8 +397,8 @@ Intro - Bitcoin - Bitcoin + Verium + Verium Error @@ -441,8 +441,8 @@ QObject - Enter a Bitcoin address (e.g. %1) - 輸入一個 Bitcoin 位址 (例如 %1) + Enter a Verium address (e.g. %1) + 輸入一個 Verium 位址 (例如 %1) %1 d diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index 3ab92b56e3..040e071063 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -66,11 +66,11 @@ 收款位址 - These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins. - 這些是你要付款過去的 Bitcoin 位址。在付錢之前,務必要檢查金額和收款位址是否正確。 + These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. + 這些是你要付款過去的 Verium 位址。在付錢之前,務必要檢查金額和收款位址是否正確。 - These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. + These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. 這些是您用於接收付款的比特幣位址。 使用接收分頁中的"生成新接收位址"按鈕創建新的位置。 @@ -165,7 +165,7 @@ Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! - 警告: 如果把錢包加密後又忘記密碼,你就會從此<b>失去其中所有的 Bitcoin 了</b>! + 警告: 如果把錢包加密後又忘記密碼,你就會從此<b>失去其中所有的 Verium 了</b>! Are you sure you wish to encrypt your wallet? @@ -228,7 +228,7 @@ - BitcoinGUI + VeriumGUI Sign &message... 簽署訊息(&M)... @@ -330,8 +330,8 @@ 代理伺服器<b>已經啟用</b>: %1 - Send coins to a Bitcoin address - 付錢給一個 Bitcoin 位址 + Send coins to a Verium address + 付錢給一個 Verium 位址 Backup wallet to another location @@ -374,12 +374,12 @@ 把錢包中的密鑰加密 - Sign messages with your Bitcoin addresses to prove you own them - 用 Bitcoin 位址簽署訊息來證明位址是你的 + Sign messages with your Verium addresses to prove you own them + 用 Verium 位址簽署訊息來證明位址是你的 - Verify messages to ensure they were signed with specified Bitcoin addresses - 驗證訊息是用來確定訊息是用指定的 Bitcoin 位址簽署的 + Verify messages to ensure they were signed with specified Verium addresses + 驗證訊息是用來確定訊息是用指定的 Verium 位址簽署的 &File @@ -418,8 +418,8 @@ 命令列選項(&C) - %n active connection(s) to Bitcoin network - %n 個運作中的 Bitcoin 網路連線 + %n active connection(s) to Verium network + %n 個運作中的 Verium 網路連線 Indexing blocks on disk... @@ -486,7 +486,7 @@ 關上錢包 - Show the %1 help message to get a list with possible Bitcoin command-line options + Show the %1 help message to get a list with possible Verium command-line options 顯示 %1 的說明訊息,來取得可用命令列選項的列表 @@ -598,8 +598,8 @@ 錢包<b>已加密</b>並且<b>上鎖中</b> - A fatal error occurred. Bitcoin can no longer continue safely and will quit. - 發生了致命的錯誤。Bitcoin 軟體沒辦法再繼續安全執行,只好結束。 + A fatal error occurred. Verium can no longer continue safely and will quit. + 發生了致命的錯誤。Verium 軟體沒辦法再繼續安全執行,只好結束。 @@ -794,8 +794,8 @@ 編輯付款位址 - The entered address "%1" is not a valid Bitcoin address. - 輸入的位址 %1 並不是有效的 Bitcoin 位址。 + The entered address "%1" is not a valid Verium address. + 輸入的位址 %1 並不是有效的 Verium 位址。 Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -891,8 +891,8 @@ 使用自訂的資料目錄: - Bitcoin - Bitcoin + Verium + Verium At least %1 GB of data will be stored in this directory, and it will grow over time. @@ -903,8 +903,8 @@ 在這個目錄中大約會存放 %1 GB 的資料。 - %1 will download and store a copy of the Bitcoin block chain. - %1 會下載 Bitcoin 區塊鏈並且儲存一份副本。 + %1 will download and store a copy of the Verium block chain. + %1 會下載 Verium 區塊鏈並且儲存一份副本。 The wallet will also be stored in this directory. @@ -1048,7 +1048,7 @@ Use separate SOCKS&5 proxy to reach peers via Tor hidden services: - 透過另外的 SOCKS&5 代理伺服器來連線到 Bitcoin 網路中的 Tor 隱藏服務: + 透過另外的 SOCKS&5 代理伺服器來連線到 Verium 網路中的 Tor 隱藏服務: Hide the icon from the system tray. @@ -1131,8 +1131,8 @@ 可以花還沒確認的零錢(&S) - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - 自動在路由器上開放 Bitcoin 的客戶端通訊埠。只有在你的路由器支援且開啓「通用即插即用」協定(UPnP)時才有作用。 + Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. + 自動在路由器上開放 Verium 的客戶端通訊埠。只有在你的路由器支援且開啓「通用即插即用」協定(UPnP)時才有作用。 Map port using &UPnP @@ -1147,8 +1147,8 @@ 接受外來連線(&G) - Connect to the Bitcoin network through a SOCKS5 proxy. - 透過 SOCKS5 代理伺服器來連線到 Bitcoin 網路。 + Connect to the Verium network through a SOCKS5 proxy. + 透過 SOCKS5 代理伺服器來連線到 Verium 網路。 &Connect through SOCKS5 proxy (default proxy): @@ -1183,8 +1183,8 @@ Tor - Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services. - 透過另外的 SOCKS5 代理伺服器來連線到 Bitcoin 網路中的 Tor 隱藏服務。 + Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. + 透過另外的 SOCKS5 代理伺服器來連線到 Verium 網路中的 Tor 隱藏服務。 &Window @@ -1294,8 +1294,8 @@ 表單 - The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet. - 顯示的資訊可能是過期的。跟 Bitcoin 網路的連線建立後,你的錢包會自動和網路同步,但是這個步驟還沒完成。 + The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. + 顯示的資訊可能是過期的。跟 Verium 網路的連線建立後,你的錢包會自動和網路同步,但是這個步驟還沒完成。 Watch-only: @@ -1397,8 +1397,8 @@ 無效的付款位址 %1 - URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters. - 沒辦法解析 URI 位址!可能是因為 Bitcoin 位址無效,或是 URI 參數格式錯誤。 + URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. + 沒辦法解析 URI 位址!可能是因為 Verium 位址無效,或是 URI 參數格式錯誤。 Payment request file handling @@ -1499,8 +1499,8 @@ 金額 - Enter a Bitcoin address (e.g. %1) - 輸入 Bitcoin 位址 (比如說 %1) + Enter a Verium address (e.g. %1) + 輸入 Verium 位址 (比如說 %1) %1 d @@ -1960,8 +1960,8 @@ 訊息(&M): - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. - 附加在付款要求中的訊息,可以不填,打開要求內容時會顯示。注意: 這個訊息不會隨著付款送到 Bitcoin 網路上。 + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. + 附加在付款要求中的訊息,可以不填,打開要求內容時會顯示。注意: 這個訊息不會隨著付款送到 Verium 網路上。 An optional label to associate with the new receiving address. @@ -2389,8 +2389,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 预计在等待 %n 个区块后会有第一个确认。 - Warning: Invalid Bitcoin address - 警告: Bitcoin 位址無效 + Warning: Invalid Verium address + 警告: Verium 位址無效 Warning: Unknown change address @@ -2432,8 +2432,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 這是一筆正常的付款。 - The Bitcoin address to send the payment to - 接收付款的 Bitcoin 位址 + The Verium address to send the payment to + 接收付款的 Verium 位址 Alt+A @@ -2480,8 +2480,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 請輸入這個位址的標記,來把它加進去已使用過位址的清單。 - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network. - 附加在 Bitcoin 付款協議的資源識別碼(URI)中的訊息,會和交易內容一起存起來,給你自己做參考。注意: 這個訊息不會送到 Bitcoin 網路上。 + A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + 附加在 Verium 付款協議的資源識別碼(URI)中的訊息,會和交易內容一起存起來,給你自己做參考。注意: 這個訊息不會送到 Verium 網路上。 Pay To: @@ -2529,8 +2529,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 你可以用自己的位址簽署訊息或合約,來證明你可以從該位址收款。但是請小心,不要簽署語意含糊不清,或隨機產生的內容,因為釣魚式詐騙可能會用騙你簽署的手法來冒充是你。只有在語句中的細節你都同意時才簽署。 - The Bitcoin address to sign the message with - 用來簽署訊息的 Bitcoin 位址 + The Verium address to sign the message with + 用來簽署訊息的 Verium 位址 Choose previously used address @@ -2561,8 +2561,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 複製目前的簽章到系統剪貼簿 - Sign the message to prove you own this Bitcoin address - 簽署這個訊息來證明這個 Bitcoin 位址是你的 + Sign the message to prove you own this Verium address + 簽署這個訊息來證明這個 Verium 位址是你的 Sign &Message @@ -2585,12 +2585,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 請在下面輸入收款人的位址,訊息(請確定完整複製了所包含的換行,空格,跳位符號等等),以及簽章,來驗證這個訊息。請小心,除了訊息內容以外,不要對簽章本身過度解讀,以避免被用「中間人攻擊法」詐騙。請注意,通過驗證的簽章只能證明簽章人確實可以從該位址收款,不能證明任何交易中的付款人身份! - The Bitcoin address the message was signed with - 簽署這個訊息的 Bitcoin 位址 + The Verium address the message was signed with + 簽署這個訊息的 Verium 位址 - Verify the message to ensure it was signed with the specified Bitcoin address - 驗證這個訊息來確定是用指定的 Bitcoin 位址簽署的 + Verify the message to ensure it was signed with the specified Verium address + 驗證這個訊息來確定是用指定的 Verium 位址簽署的 Verify &Message diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index 806cc3c41e..3b6617e29d 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -66,7 +66,7 @@ const char* BIP71_MIMETYPE_PAYMENTREQUEST = "application/bitcoin-paymentrequest" // static QString ipcServerName() { - QString name("BitcoinQt"); + QString name("VeriumQt"); // Append a simple hash of the datadir // Note that GetDataDir(true) returns a different path @@ -344,7 +344,7 @@ void PaymentServer::handleURIOrFile(const QString& s) } else Q_EMIT message(tr("URI handling"), - tr("URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."), + tr("URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters."), CClientUIInterface::ICON_WARNING); return; diff --git a/src/qt/res/bitcoin-qt-res.rc b/src/qt/res/bitcoin-qt-res.rc index 94ae256477..d87f2811c2 100644 --- a/src/qt/res/bitcoin-qt-res.rc +++ b/src/qt/res/bitcoin-qt-res.rc @@ -19,8 +19,8 @@ BEGIN BEGIN BLOCK "040904E4" // U.S. English - multilingual (hex) BEGIN - VALUE "CompanyName", "Bitcoin" - VALUE "FileDescription", PACKAGE_NAME " (GUI node for Bitcoin)" + VALUE "CompanyName", "Verium" + VALUE "FileDescription", PACKAGE_NAME " (GUI node for Verium)" VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", "bitcoin-qt" VALUE "LegalCopyright", COPYRIGHT_STR diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index a88119d8c5..7674f1968f 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -810,7 +810,7 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text) } else if (!IsValidDestination(dest)) // Invalid address { - ui->labelCoinControlChangeLabel->setText(tr("Warning: Invalid Bitcoin address")); + ui->labelCoinControlChangeLabel->setText(tr("Warning: Invalid Verium address")); } else // Valid address { diff --git a/src/qt/test/test_main.cpp b/src/qt/test/test_main.cpp index c39266a397..46f4d58234 100644 --- a/src/qt/test/test_main.cpp +++ b/src/qt/test/test_main.cpp @@ -69,7 +69,7 @@ int main(int argc, char *argv[]) // Don't remove this, it's needed to access // QApplication:: and QCoreApplication:: in the tests BitcoinApplication app(*node); - app.setApplicationName("Bitcoin-Qt-test"); + app.setApplicationName("Verium-Qt-test"); AppTests app_tests(app); if (QTest::qExec(&app_tests) != 0) { diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index 3b202d6538..25baed1246 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -940,7 +940,7 @@ static std::string WriteHDKeypath(std::vector& keypath) UniValue decodepsbt(const JSONRPCRequest& request) { RPCHelpMan{"decodepsbt", - "\nReturn a JSON object representing the serialized, base64-encoded partially signed Bitcoin transaction.\n", + "\nReturn a JSON object representing the serialized, base64-encoded partially signed Verium transaction.\n", { {"psbt", RPCArg::Type::STR, RPCArg::Optional::NO, "The PSBT base64 string"}, }, @@ -964,7 +964,7 @@ UniValue decodepsbt(const JSONRPCRequest& request) " \"asm\" : \"asm\", (string) The asm\n" " \"hex\" : \"hex\", (string) The hex\n" " \"type\" : \"pubkeyhash\", (string) The type, eg 'pubkeyhash'\n" - " \"address\" : \"address\" (string) Bitcoin address if there is one\n" + " \"address\" : \"address\" (string) Verium address if there is one\n" " }\n" " },\n" " \"partial_signatures\" : { (json object, optional)\n" @@ -1229,7 +1229,7 @@ UniValue decodepsbt(const JSONRPCRequest& request) UniValue combinepsbt(const JSONRPCRequest& request) { RPCHelpMan{"combinepsbt", - "\nCombine multiple partially signed Bitcoin transactions into one transaction.\n" + "\nCombine multiple partially signed Verium transactions into one transaction.\n" "Implements the Combiner role.\n", { {"txs", RPCArg::Type::ARR, RPCArg::Optional::NO, "A json array of base64 strings of partially signed transactions", diff --git a/src/rpc/rawtransaction_util.cpp b/src/rpc/rawtransaction_util.cpp index fe98fff4bb..aabda85f99 100644 --- a/src/rpc/rawtransaction_util.cpp +++ b/src/rpc/rawtransaction_util.cpp @@ -108,7 +108,7 @@ CMutableTransaction ConstructTransaction(const UniValue& inputs_in, const UniVal } else { CTxDestination destination = DecodeDestination(name_); if (!IsValidDestination(destination)) { - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Bitcoin address: ") + name_); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Verium address: ") + name_); } if (!destinations.insert(destination).second) { diff --git a/src/rpc/server.h b/src/rpc/server.h index b060db5bf9..20f4000f3e 100644 --- a/src/rpc/server.h +++ b/src/rpc/server.h @@ -116,7 +116,7 @@ class CRPCCommand }; /** - * Bitcoin RPC command dispatcher. + * Verium RPC command dispatcher. */ class CRPCTable { diff --git a/src/script/script.h b/src/script/script.h index 6355b8a704..4ec81d0c48 100644 --- a/src/script/script.h +++ b/src/script/script.h @@ -524,7 +524,7 @@ class CScript : public CScriptBase } /** - * Pre-version-0.6, Bitcoin always counted CHECKMULTISIGs + * Pre-version-0.6, Verium always counted CHECKMULTISIGs * as 20 sigops. With pay-to-script-hash, that changed: * CHECKMULTISIGs serialized in scriptSigs are * counted more accurately, assuming they are of the form diff --git a/src/test/crypto_tests.cpp b/src/test/crypto_tests.cpp index 4ac12bf969..ba2f0fb5d0 100644 --- a/src/test/crypto_tests.cpp +++ b/src/test/crypto_tests.cpp @@ -247,7 +247,7 @@ BOOST_AUTO_TEST_CASE(sha256_testvectors) { "f08a78cbbaee082b052ae0708f32fa1e50c5c421aa772ba5dbb406a2ea6be342"); TestSHA256("This is exactly 64 bytes long, not counting the terminating byte", "ab64eff7e88e2e46165e29f2bce41826bd4c7b3552f6b382a9e7d3af47c245f8"); - TestSHA256("As Bitcoin relies on 80 byte header hashes, we want to have an example for that.", + TestSHA256("As Verium relies on 80 byte header hashes, we want to have an example for that.", "7406e8de7d6e4fffc573daef05aefb8806e7790f55eab5576f31349743cca743"); TestSHA256(std::string(1000000, 'a'), "cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0"); diff --git a/src/test/key_tests.cpp b/src/test/key_tests.cpp index 3e99dcaa40..13013b0adf 100644 --- a/src/test/key_tests.cpp +++ b/src/test/key_tests.cpp @@ -191,7 +191,7 @@ BOOST_AUTO_TEST_CASE(key_key_negation) { // create a dummy hash for signature comparison unsigned char rnd[8]; - std::string str = "Bitcoin key verification\n"; + std::string str = "Verium key verification\n"; GetRandBytes(rnd, sizeof(rnd)); uint256 hash; CHash256().Write((unsigned char*)str.data(), str.size()).Write(rnd, sizeof(rnd)).Finalize(hash.begin()); diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index dda6241a7b..e4804856aa 100644 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -1573,7 +1573,7 @@ BOOST_AUTO_TEST_CASE(test_ToUpper) BOOST_AUTO_TEST_CASE(test_Capitalize) { BOOST_CHECK_EQUAL(Capitalize(""), ""); - BOOST_CHECK_EQUAL(Capitalize("bitcoin"), "Bitcoin"); + BOOST_CHECK_EQUAL(Capitalize("bitcoin"), "Verium"); BOOST_CHECK_EQUAL(Capitalize("\x00\xfe\xff"), "\x00\xfe\xff"); } diff --git a/src/tinyformat.h b/src/tinyformat.h index 182f518a0b..b61023ce17 100644 --- a/src/tinyformat.h +++ b/src/tinyformat.h @@ -1052,7 +1052,7 @@ TINYFORMAT_FOREACH_ARGNUM(TINYFORMAT_MAKE_FORMAT_FUNCS) #endif -// Added for Bitcoin Core +// Added for Verium Core template std::string format(const std::string &fmt, const Args&... args) { diff --git a/src/util/system.cpp b/src/util/system.cpp index 5a3c68aa0c..30b6614a44 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -695,13 +695,13 @@ void PrintExceptionContinue(const std::exception* pex, const char* pszThread) fs::path GetDefaultDataDir() { - // Windows < Vista: C:\Documents and Settings\Username\Application Data\Bitcoin - // Windows >= Vista: C:\Users\Username\AppData\Roaming\Bitcoin - // Mac: ~/Library/Application Support/Bitcoin + // Windows < Vista: C:\Documents and Settings\Username\Application Data\Verium + // Windows >= Vista: C:\Users\Username\AppData\Roaming\Verium + // Mac: ~/Library/Application Support/Verium // Unix: ~/.bitcoin #ifdef WIN32 // Windows - return GetSpecialFolderPath(CSIDL_APPDATA) / "Bitcoin"; + return GetSpecialFolderPath(CSIDL_APPDATA) / "Verium"; #else fs::path pathRet; char* pszHome = getenv("HOME"); @@ -711,7 +711,7 @@ fs::path GetDefaultDataDir() pathRet = fs::path(pszHome); #ifdef MAC_OSX // Mac - return pathRet / "Library/Application Support/Bitcoin"; + return pathRet / "Library/Application Support/Verium"; #else // Unix return pathRet / ".bitcoin"; @@ -1211,9 +1211,9 @@ std::string CopyrightHolders(const std::string& strPrefix) const auto copyright_devs = strprintf(_(COPYRIGHT_HOLDERS).translated, COPYRIGHT_HOLDERS_SUBSTITUTION); std::string strCopyrightHolders = strPrefix + copyright_devs; - // Make sure Bitcoin Core copyright is not removed by accident - if (copyright_devs.find("Bitcoin Core") == std::string::npos) { - strCopyrightHolders += "\n" + strPrefix + "The Bitcoin Core developers"; + // Make sure Verium Core copyright is not removed by accident + if (copyright_devs.find("Verium Core") == std::string::npos) { + strCopyrightHolders += "\n" + strPrefix + "The Verium Core developers"; } return strCopyrightHolders; } diff --git a/src/util/validation.cpp b/src/util/validation.cpp index fe1f5a277e..14a9617b23 100644 --- a/src/util/validation.cpp +++ b/src/util/validation.cpp @@ -17,4 +17,4 @@ std::string FormatStateMessage(const CValidationState &state) state.GetRejectCode()); } -const std::string strMessageMagic = "Bitcoin Signed Message:\n"; +const std::string strMessageMagic = "Verium Signed Message:\n"; diff --git a/src/validation.cpp b/src/validation.cpp index ac98bd61c7..da4d97ade5 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -54,7 +54,7 @@ #include #if defined(NDEBUG) -# error "Bitcoin cannot be compiled without assertions." +# error "Verium cannot be compiled without assertions." #endif #define MICRO 0.000001 diff --git a/src/wallet/rpcdump.cpp b/src/wallet/rpcdump.cpp index f52e4318c8..336a4cb75e 100644 --- a/src/wallet/rpcdump.cpp +++ b/src/wallet/rpcdump.cpp @@ -249,7 +249,7 @@ UniValue importaddress(const JSONRPCRequest& request) "as change, and not show up in many RPCs.\n" "Note: Use \"getwalletinfo\" to query the scanning progress.\n", { - {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The Bitcoin address (or hex-encoded script)"}, + {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The Verium address (or hex-encoded script)"}, {"label", RPCArg::Type::STR, /* default */ "\"\"", "An optional label"}, {"rescan", RPCArg::Type::BOOL, /* default */ "true", "Rescan the wallet for transactions"}, {"p2sh", RPCArg::Type::BOOL, /* default */ "false", "Add the P2SH version of the script as well"}, @@ -318,7 +318,7 @@ UniValue importaddress(const JSONRPCRequest& request) pwallet->ImportScriptPubKeys(strLabel, scripts, false /* have_solving_data */, true /* apply_label */, 1 /* timestamp */); } else { - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address or script"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Verium address or script"); } } if (fRescan) @@ -715,7 +715,7 @@ UniValue dumpprivkey(const JSONRPCRequest& request) std::string strAddress = request.params[0].get_str(); CTxDestination dest = DecodeDestination(strAddress); if (!IsValidDestination(dest)) { - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Verium address"); } auto keyid = GetKeyForDestination(*pwallet, dest); if (keyid.IsNull()) { @@ -793,7 +793,7 @@ UniValue dumpwallet(const JSONRPCRequest& request) std::sort(vKeyBirth.begin(), vKeyBirth.end()); // produce output - file << strprintf("# Wallet dump created by Bitcoin %s\n", CLIENT_BUILD); + file << strprintf("# Wallet dump created by Verium %s\n", CLIENT_BUILD); file << strprintf("# * Created on %s\n", FormatISO8601DateTime(GetTime())); const Optional tip_height = locked_chain->getHeight(); file << strprintf("# * Best block at time of backup was %i (%s),\n", tip_height.get_value_or(-1), tip_height ? locked_chain->getBlockHash(*tip_height).ToString() : "(missing block hash)"); diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index fe004a862d..4ca23776a9 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -185,7 +185,7 @@ static UniValue getnewaddress(const JSONRPCRequest& request) } RPCHelpMan{"getnewaddress", - "\nReturns a new Bitcoin address for receiving payments.\n" + "\nReturns a new Verium address for receiving payments.\n" "If 'label' is specified, it is added to the address book \n" "so payments received with the address will be associated with 'label'.\n", { @@ -238,7 +238,7 @@ static UniValue getrawchangeaddress(const JSONRPCRequest& request) } RPCHelpMan{"getrawchangeaddress", - "\nReturns a new Bitcoin address, for receiving change.\n" + "\nReturns a new Verium address, for receiving change.\n" "This is for use with raw transactions, NOT normal use.\n", { {"address_type", RPCArg::Type::STR, /* default */ "set by -changetype", "The address type to use. Options are \"legacy\", \"p2sh-segwit\", and \"bech32\"."}, @@ -300,7 +300,7 @@ static UniValue setlabel(const JSONRPCRequest& request) CTxDestination dest = DecodeDestination(request.params[0].get_str()); if (!IsValidDestination(dest)) { - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Verium address"); } std::string label = LabelFromValue(request.params[1]); @@ -326,7 +326,7 @@ static CTransactionRef SendMoney(interfaces::Chain::Lock& locked_chain, CWallet if (nValue > curBalance) throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Insufficient funds"); - // Parse Bitcoin address + // Parse Verium address CScript scriptPubKey = GetScriptForDestination(address); // Create and send the transaction @@ -610,10 +610,10 @@ static UniValue getreceivedbyaddress(const JSONRPCRequest& request) auto locked_chain = pwallet->chain().lock(); LOCK(pwallet->cs_wallet); - // Bitcoin address + // Verium address CTxDestination dest = DecodeDestination(request.params[0].get_str()); if (!IsValidDestination(dest)) { - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Verium address"); } CScript scriptPubKey = GetScriptForDestination(dest); if (!IsMine(*pwallet, scriptPubKey)) { @@ -890,7 +890,7 @@ static UniValue sendmany(const JSONRPCRequest& request) for (const std::string& name_ : keys) { CTxDestination dest = DecodeDestination(name_); if (!IsValidDestination(dest)) { - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Bitcoin address: ") + name_); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Verium address: ") + name_); } if (destinations.count(dest)) { @@ -947,7 +947,7 @@ static UniValue addmultisigaddress(const JSONRPCRequest& request) RPCHelpMan{"addmultisigaddress", "\nAdd a nrequired-to-sign multisignature address to the wallet. Requires a new wallet backup.\n" - "Each key is a Bitcoin address or hex-encoded public key.\n" + "Each key is a Verium address or hex-encoded public key.\n" "This functionality is only intended for use with non-watchonly addresses.\n" "See `importaddress` for watchonly p2sh address support.\n" "If 'label' is specified, assign address to that label.\n", @@ -2865,7 +2865,7 @@ static UniValue listunspent(const JSONRPCRequest& request) const UniValue& input = inputs[idx]; CTxDestination dest = DecodeDestination(input.get_str()); if (!IsValidDestination(dest)) { - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Bitcoin address: ") + input.get_str()); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Verium address: ") + input.get_str()); } if (!destinations.insert(dest).second) { throw JSONRPCError(RPC_INVALID_PARAMETER, std::string("Invalid parameter, duplicated address: ") + input.get_str()); From 9cf54eff2b8d21bb2cd1bf3f2f2d48d9a5f31c19 Mon Sep 17 00:00:00 2001 From: Matthieu 'JP' DERASSE Date: Mon, 11 May 2020 22:33:19 +0200 Subject: [PATCH 080/388] Replace verium / VRM / vrm in SRC --- src/amount.h | 2 +- src/bench/.gitignore | 1 + src/bitcoin-cli-res.rc | 8 +- src/bitcoin-cli.cpp | 14 +- src/bitcoin-tx-res.rc | 8 +- src/bitcoin-tx.cpp | 6 +- src/bitcoin-wallet-res.rc | 8 +- src/bitcoin-wallet.cpp | 6 +- src/bitcoind-res.rc | 8 +- src/bitcoind.cpp | 6 +- src/chainparamsbase.h | 2 +- src/init.cpp | 6 +- src/policy/feerate.cpp | 2 +- src/policy/fees.cpp | 4 +- src/qt/README.md | 8 +- src/qt/askpassphrasedialog.cpp | 2 +- src/qt/bitcoin.cpp | 6 +- src/qt/bitcoin.qrc | 2 +- src/qt/bitcoingui.cpp | 4 +- src/qt/bitcoinstrings.cpp | 248 ++++++++++++------------ src/qt/bitcoinunits.cpp | 10 +- src/qt/forms/coincontroldialog.ui | 8 +- src/qt/forms/helpmessagedialog.ui | 2 +- src/qt/forms/modaloverlay.ui | 4 +- src/qt/forms/overviewpage.ui | 16 +- src/qt/forms/sendcoinsdialog.ui | 12 +- src/qt/forms/sendcoinsentry.ui | 4 +- src/qt/forms/signverifymessagedialog.ui | 2 +- src/qt/guiconstants.h | 2 +- src/qt/guiutil.cpp | 14 +- src/qt/guiutil.h | 2 +- src/qt/intro.cpp | 6 +- src/qt/locale/bitcoin_ar.ts | 2 +- src/qt/locale/bitcoin_ca.ts | 6 +- src/qt/locale/bitcoin_cs.ts | 72 +++---- src/qt/locale/bitcoin_cy.ts | 8 +- src/qt/locale/bitcoin_da.ts | 62 +++--- src/qt/locale/bitcoin_de.ts | 32 +-- src/qt/locale/bitcoin_el.ts | 16 +- src/qt/locale/bitcoin_en.ts | 36 ++-- src/qt/locale/bitcoin_en_GB.ts | 38 ++-- src/qt/locale/bitcoin_eo.ts | 10 +- src/qt/locale/bitcoin_es.ts | 40 ++-- src/qt/locale/bitcoin_es_CL.ts | 24 +-- src/qt/locale/bitcoin_es_CO.ts | 22 +-- src/qt/locale/bitcoin_es_DO.ts | 8 +- src/qt/locale/bitcoin_es_MX.ts | 6 +- src/qt/locale/bitcoin_es_VE.ts | 8 +- src/qt/locale/bitcoin_et.ts | 10 +- src/qt/locale/bitcoin_eu.ts | 6 +- src/qt/locale/bitcoin_fa.ts | 10 +- src/qt/locale/bitcoin_fi.ts | 48 ++--- src/qt/locale/bitcoin_fil.ts | 42 ++-- src/qt/locale/bitcoin_fr.ts | 44 ++--- src/qt/locale/bitcoin_he.ts | 28 +-- src/qt/locale/bitcoin_hi.ts | 2 +- src/qt/locale/bitcoin_hr.ts | 38 ++-- src/qt/locale/bitcoin_hu.ts | 24 +-- src/qt/locale/bitcoin_id.ts | 46 ++--- src/qt/locale/bitcoin_is.ts | 10 +- src/qt/locale/bitcoin_it.ts | 60 +++--- src/qt/locale/bitcoin_ja.ts | 32 +-- src/qt/locale/bitcoin_ka.ts | 12 +- src/qt/locale/bitcoin_kk.ts | 2 +- src/qt/locale/bitcoin_km.ts | 2 +- src/qt/locale/bitcoin_ko.ts | 32 +-- src/qt/locale/bitcoin_ku_IQ.ts | 2 +- src/qt/locale/bitcoin_ky.ts | 2 +- src/qt/locale/bitcoin_la.ts | 2 +- src/qt/locale/bitcoin_lt.ts | 38 ++-- src/qt/locale/bitcoin_lv.ts | 16 +- src/qt/locale/bitcoin_mk.ts | 2 +- src/qt/locale/bitcoin_ml.ts | 2 +- src/qt/locale/bitcoin_mn.ts | 2 +- src/qt/locale/bitcoin_mr_IN.ts | 2 +- src/qt/locale/bitcoin_ms.ts | 8 +- src/qt/locale/bitcoin_nb.ts | 46 ++--- src/qt/locale/bitcoin_ne.ts | 8 +- src/qt/locale/bitcoin_nl.ts | 44 ++--- src/qt/locale/bitcoin_pam.ts | 2 +- src/qt/locale/bitcoin_pl.ts | 48 ++--- src/qt/locale/bitcoin_pt.ts | 44 ++--- src/qt/locale/bitcoin_pt_BR.ts | 44 ++--- src/qt/locale/bitcoin_ro.ts | 42 ++-- src/qt/locale/bitcoin_ru.ts | 26 +-- src/qt/locale/bitcoin_si.ts | 2 +- src/qt/locale/bitcoin_sk.ts | 48 ++--- src/qt/locale/bitcoin_sl.ts | 42 ++-- src/qt/locale/bitcoin_sn.ts | 2 +- src/qt/locale/bitcoin_sr.ts | 6 +- src/qt/locale/bitcoin_sr@latin.ts | 6 +- src/qt/locale/bitcoin_sv.ts | 50 ++--- src/qt/locale/bitcoin_szl.ts | 28 +-- src/qt/locale/bitcoin_ta.ts | 30 +-- src/qt/locale/bitcoin_te.ts | 2 +- src/qt/locale/bitcoin_th.ts | 16 +- src/qt/locale/bitcoin_tr.ts | 48 ++--- src/qt/locale/bitcoin_uk.ts | 32 +-- src/qt/locale/bitcoin_ur.ts | 2 +- src/qt/locale/bitcoin_uz@Cyrl.ts | 8 +- src/qt/locale/bitcoin_vi.ts | 42 ++-- src/qt/locale/bitcoin_yo.ts | 2 +- src/qt/locale/bitcoin_zh-Hans.ts | 2 +- src/qt/locale/bitcoin_zh_CN.ts | 34 ++-- src/qt/locale/bitcoin_zh_HK.ts | 6 +- src/qt/locale/bitcoin_zh_TW.ts | 38 ++-- src/qt/macos_appnap.mm | 2 +- src/qt/main.cpp | 2 +- src/qt/networkstyle.cpp | 2 +- src/qt/openuridialog.cpp | 4 +- src/qt/overviewpage.cpp | 2 +- src/qt/paymentrequest.proto | 2 +- src/qt/paymentserver.cpp | 26 +-- src/qt/paymentserver.h | 2 +- src/qt/res/bitcoin-qt-res.rc | 8 +- src/qt/sendcoinsentry.cpp | 2 +- src/qt/test/addressbooktests.cpp | 2 +- src/qt/test/apptests.cpp | 2 +- src/qt/test/paymentrequestdata.h | 2 +- src/qt/test/paymentservertests.cpp | 2 +- src/qt/test/uritests.cpp | 22 +-- src/qt/test/wallettests.cpp | 10 +- src/qt/transactiondesc.cpp | 2 +- src/qt/utilitydialog.cpp | 2 +- src/qt/walletmodel.cpp | 2 +- src/rpc/blockchain.cpp | 6 +- src/rpc/mining.cpp | 6 +- src/rpc/misc.cpp | 10 +- src/rpc/net.cpp | 2 +- src/rpc/rawtransaction.cpp | 10 +- src/rpc/util.cpp | 2 +- src/test/README.md | 26 +-- src/test/amount_tests.cpp | 4 +- src/test/data/tx_valid.json | 2 +- src/test/fs_tests.cpp | 10 +- src/test/miner_tests.cpp | 2 +- src/test/rpc_tests.cpp | 2 +- src/test/util_tests.cpp | 6 +- src/util/system.cpp | 12 +- src/validation.cpp | 2 +- src/wallet/db.cpp | 2 +- src/wallet/rpcdump.cpp | 6 +- src/wallet/rpcwallet.cpp | 62 +++--- src/wallet/test/coinselector_tests.cpp | 4 +- src/wallet/test/wallet_tests.cpp | 2 +- 145 files changed, 1187 insertions(+), 1186 deletions(-) diff --git a/src/amount.h b/src/amount.h index 47968e80b1..08b11cc7e9 100644 --- a/src/amount.h +++ b/src/amount.h @@ -16,7 +16,7 @@ static const CAmount COIN = 100000000; /** No amount larger than this (in satoshi) is valid. * * Note that this constant is *not* the total money supply, which in Bitcoin - * currently happens to be less than 21,000,000 BTC for various reasons, but + * currently happens to be less than 21,000,000 VRM for various reasons, but * rather a sanity check. As this sanity check is used by consensus-critical * validation code, the exact value of the MAX_MONEY constant is consensus * critical; in unusual circumstances like a(nother) overflow bug that allowed diff --git a/src/bench/.gitignore b/src/bench/.gitignore index e231fe4cab..31197fe48c 100644 --- a/src/bench/.gitignore +++ b/src/bench/.gitignore @@ -1 +1,2 @@ bench_bitcoin +bench_verium \ No newline at end of file diff --git a/src/bitcoin-cli-res.rc b/src/bitcoin-cli-res.rc index 27916a9ed8..a713102bbc 100644 --- a/src/bitcoin-cli-res.rc +++ b/src/bitcoin-cli-res.rc @@ -17,13 +17,13 @@ BEGIN BLOCK "040904E4" // U.S. English - multilingual (hex) BEGIN VALUE "CompanyName", "Verium" - VALUE "FileDescription", "bitcoin-cli (JSON-RPC client for " PACKAGE_NAME ")" + VALUE "FileDescription", "verium-cli (JSON-RPC client for " PACKAGE_NAME ")" VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "InternalName", "bitcoin-cli" + VALUE "InternalName", "verium-cli" VALUE "LegalCopyright", COPYRIGHT_STR VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." - VALUE "OriginalFilename", "bitcoin-cli.exe" - VALUE "ProductName", "bitcoin-cli" + VALUE "OriginalFilename", "verium-cli.exe" + VALUE "ProductName", "verium-cli" VALUE "ProductVersion", VER_PRODUCTVERSION_STR END END diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp index 67a69f85eb..a4f7146caa 100644 --- a/src/bitcoin-cli.cpp +++ b/src/bitcoin-cli.cpp @@ -56,7 +56,7 @@ static void SetupCliArgs() gArgs.AddArg("-rpcport=", strprintf("Connect to JSON-RPC on (default: %u, testnet: %u, regtest: %u)", defaultBaseParams->RPCPort(), testnetBaseParams->RPCPort(), regtestBaseParams->RPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::OPTIONS); gArgs.AddArg("-rpcuser=", "Username for JSON-RPC connections", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); gArgs.AddArg("-rpcwait", "Wait for RPC server to start", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); - gArgs.AddArg("-rpcwallet=", "Send RPC for non-default wallet on RPC server (needs to exactly match corresponding -wallet option passed to bitcoind). This changes the RPC endpoint used, e.g. http://127.0.0.1:8332/wallet/", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); + gArgs.AddArg("-rpcwallet=", "Send RPC for non-default wallet on RPC server (needs to exactly match corresponding -wallet option passed to veriumd). This changes the RPC endpoint used, e.g. http://127.0.0.1:8332/wallet/", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); gArgs.AddArg("-stdin", "Read extra arguments from standard input, one per line until EOF/Ctrl-D (recommended for sensitive information such as passphrases). When combined with -stdinrpcpass, the first line from standard input is used for the RPC password.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); gArgs.AddArg("-stdinrpcpass", "Read RPC password from standard input as a single line. When combined with -stdin, the first line from standard input is used for the RPC password.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); } @@ -111,10 +111,10 @@ static int AppInitRPC(int argc, char* argv[]) std::string strUsage = PACKAGE_NAME " RPC client version " + FormatFullVersion() + "\n"; if (!gArgs.IsArgSet("-version")) { strUsage += "\n" - "Usage: bitcoin-cli [options] [params] Send command to " PACKAGE_NAME "\n" - "or: bitcoin-cli [options] -named [name=value]... Send command to " PACKAGE_NAME " (with named arguments)\n" - "or: bitcoin-cli [options] help List commands\n" - "or: bitcoin-cli [options] help Get help for a command\n"; + "Usage: verium-cli [options] [params] Send command to " PACKAGE_NAME "\n" + "or: verium-cli [options] -named [name=value]... Send command to " PACKAGE_NAME " (with named arguments)\n" + "or: verium-cli [options] help List commands\n" + "or: verium-cli [options] help Get help for a command\n"; strUsage += "\n" + gArgs.GetHelpMessage(); } @@ -387,7 +387,7 @@ static UniValue CallRPC(BaseRequestHandler *rh, const std::string& strMethod, co if (response.error != -1) { responseErrorMessage = strprintf(" (error code %d - \"%s\")", response.error, http_errorstring(response.error)); } - throw CConnectionFailed(strprintf("Could not connect to the server %s:%d%s\n\nMake sure the bitcoind server is running and that you are connecting to the correct RPC port.", host, port, responseErrorMessage)); + throw CConnectionFailed(strprintf("Could not connect to the server %s:%d%s\n\nMake sure the veriumd server is running and that you are connecting to the correct RPC port.", host, port, responseErrorMessage)); } else if (response.status == HTTP_UNAUTHORIZED) { if (failedToGetAuthCookie) { throw std::runtime_error(strprintf( @@ -478,7 +478,7 @@ static int CommandLineRPC(int argc, char *argv[]) strPrint += "error message:\n"+errMsg.get_str(); if (errCode.isNum() && errCode.get_int() == RPC_WALLET_NOT_SPECIFIED) { - strPrint += "\nTry adding \"-rpcwallet=\" option to bitcoin-cli command line."; + strPrint += "\nTry adding \"-rpcwallet=\" option to verium-cli command line."; } } } else { diff --git a/src/bitcoin-tx-res.rc b/src/bitcoin-tx-res.rc index 9966e85d56..e6aa9f5156 100644 --- a/src/bitcoin-tx-res.rc +++ b/src/bitcoin-tx-res.rc @@ -17,13 +17,13 @@ BEGIN BLOCK "040904E4" // U.S. English - multilingual (hex) BEGIN VALUE "CompanyName", "Verium" - VALUE "FileDescription", "bitcoin-tx (CLI Verium transaction editor utility)" + VALUE "FileDescription", "verium-tx (CLI Verium transaction editor utility)" VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "InternalName", "bitcoin-tx" + VALUE "InternalName", "verium-tx" VALUE "LegalCopyright", COPYRIGHT_STR VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." - VALUE "OriginalFilename", "bitcoin-tx.exe" - VALUE "ProductName", "bitcoin-tx" + VALUE "OriginalFilename", "verium-tx.exe" + VALUE "ProductName", "verium-tx" VALUE "ProductVersion", VER_PRODUCTVERSION_STR END END diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp index 76e22b2dec..337f46ad79 100644 --- a/src/bitcoin-tx.cpp +++ b/src/bitcoin-tx.cpp @@ -100,9 +100,9 @@ static int AppInitRawTx(int argc, char* argv[]) if (argc < 2 || HelpRequested(gArgs)) { // First part of help message is specific to this utility - std::string strUsage = PACKAGE_NAME " bitcoin-tx utility version " + FormatFullVersion() + "\n\n" + - "Usage: bitcoin-tx [options] [commands] Update hex-encoded verium transaction\n" + - "or: bitcoin-tx [options] -create [commands] Create hex-encoded verium transaction\n" + + std::string strUsage = PACKAGE_NAME " verium-tx utility version " + FormatFullVersion() + "\n\n" + + "Usage: verium-tx [options] [commands] Update hex-encoded verium transaction\n" + + "or: verium-tx [options] -create [commands] Create hex-encoded verium transaction\n" + "\n"; strUsage += gArgs.GetHelpMessage(); diff --git a/src/bitcoin-wallet-res.rc b/src/bitcoin-wallet-res.rc index c7e95b88a7..3fdb75e20a 100644 --- a/src/bitcoin-wallet-res.rc +++ b/src/bitcoin-wallet-res.rc @@ -17,13 +17,13 @@ BEGIN BLOCK "040904E4" // U.S. English - multilingual (hex) BEGIN VALUE "CompanyName", "Verium" - VALUE "FileDescription", "bitcoin-wallet (CLI tool for " PACKAGE_NAME " wallets)" + VALUE "FileDescription", "verium-wallet (CLI tool for " PACKAGE_NAME " wallets)" VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "InternalName", "bitcoin-wallet" + VALUE "InternalName", "verium-wallet" VALUE "LegalCopyright", COPYRIGHT_STR VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." - VALUE "OriginalFilename", "bitcoin-wallet.exe" - VALUE "ProductName", "bitcoin-wallet" + VALUE "OriginalFilename", "verium-wallet.exe" + VALUE "ProductName", "verium-wallet" VALUE "ProductVersion", VER_PRODUCTVERSION_STR END END diff --git a/src/bitcoin-wallet.cpp b/src/bitcoin-wallet.cpp index eb7f0098ec..4fbfb8f478 100644 --- a/src/bitcoin-wallet.cpp +++ b/src/bitcoin-wallet.cpp @@ -42,12 +42,12 @@ static bool WalletAppInit(int argc, char* argv[]) return false; } if (argc < 2 || HelpRequested(gArgs)) { - std::string usage = strprintf("%s bitcoin-wallet version", PACKAGE_NAME) + " " + FormatFullVersion() + "\n\n" + + std::string usage = strprintf("%s verium-wallet version", PACKAGE_NAME) + " " + FormatFullVersion() + "\n\n" + "wallet-tool is an offline tool for creating and interacting with Bitcoin Core wallet files.\n" + "By default wallet-tool will act on wallets in the default mainnet wallet directory in the datadir.\n" + "To change the target wallet, use the -datadir, -wallet and -testnet/-regtest arguments.\n\n" + "Usage:\n" + - " bitcoin-wallet [options] \n\n" + + " verium-wallet [options] \n\n" + gArgs.GetHelpMessage(); tfm::format(std::cout, "%s", usage.c_str()); @@ -97,7 +97,7 @@ int main(int argc, char* argv[]) } if (method.empty()) { - tfm::format(std::cerr, "No method provided. Run `bitcoin-wallet -help` for valid methods.\n"); + tfm::format(std::cerr, "No method provided. Run `verium-wallet -help` for valid methods.\n"); return EXIT_FAILURE; } diff --git a/src/bitcoind-res.rc b/src/bitcoind-res.rc index 5a546d2510..de17ec4cea 100644 --- a/src/bitcoind-res.rc +++ b/src/bitcoind-res.rc @@ -17,13 +17,13 @@ BEGIN BLOCK "040904E4" // U.S. English - multilingual (hex) BEGIN VALUE "CompanyName", "Verium" - VALUE "FileDescription", "bitcoind (Verium node with a JSON-RPC server)" + VALUE "FileDescription", "veriumd (Verium node with a JSON-RPC server)" VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "InternalName", "bitcoind" + VALUE "InternalName", "veriumd" VALUE "LegalCopyright", COPYRIGHT_STR VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." - VALUE "OriginalFilename", "bitcoind.exe" - VALUE "ProductName", "bitcoind" + VALUE "OriginalFilename", "veriumd.exe" + VALUE "ProductName", "veriumd" VALUE "ProductVersion", VER_PRODUCTVERSION_STR END END diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 17989a4214..acf05315eb 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -50,7 +50,7 @@ static bool AppInit(int argc, char* argv[]) // // Parameters // - // If Qt is used, parameters/bitcoin.conf are parsed in qt/bitcoin.cpp's main() + // If Qt is used, parameters/verium.conf are parsed in qt/bitcoin.cpp's main() SetupServerArgs(); std::string error; if (!gArgs.ParseParameters(argc, argv, error)) { @@ -67,7 +67,7 @@ static bool AppInit(int argc, char* argv[]) } else { - strUsage += "\nUsage: bitcoind [options] Start " PACKAGE_NAME "\n"; + strUsage += "\nUsage: veriumd [options] Start " PACKAGE_NAME "\n"; strUsage += "\n" + gArgs.GetHelpMessage(); } @@ -93,7 +93,7 @@ static bool AppInit(int argc, char* argv[]) // Error out when loose non-argument tokens are encountered on command line for (int i = 1; i < argc; i++) { if (!IsSwitchChar(argv[i][0])) { - return InitError(strprintf("Command line contains unexpected token '%s', see bitcoind -h for a list of options.\n", argv[i])); + return InitError(strprintf("Command line contains unexpected token '%s', see veriumd -h for a list of options.\n", argv[i])); } } diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h index f34646f7ac..c718f177a2 100644 --- a/src/chainparamsbase.h +++ b/src/chainparamsbase.h @@ -9,7 +9,7 @@ #include /** - * CBaseChainParams defines the base parameters (shared between bitcoin-cli and bitcoind) + * CBaseChainParams defines the base parameters (shared between verium-cli and veriumd) * of a given instance of the Bitcoin system. */ class CBaseChainParams diff --git a/src/init.cpp b/src/init.cpp index 7d86771127..12f20ed8c7 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -103,7 +103,7 @@ static const char* FEE_ESTIMATES_FILENAME="fee_estimates.dat"; /** * The PID file facilities. */ -static const char* BITCOIN_PID_FILENAME = "bitcoind.pid"; +static const char* BITCOIN_PID_FILENAME = "veriumd.pid"; static fs::path GetPidFile() { @@ -557,8 +557,8 @@ void SetupServerArgs() std::string LicenseInfo() { - const std::string URL_SOURCE_CODE = ""; - const std::string URL_WEBSITE = ""; + const std::string URL_SOURCE_CODE = ""; + const std::string URL_WEBSITE = ""; return CopyrightHolders(strprintf(_("Copyright (C) %i-%i").translated, 2009, COPYRIGHT_YEAR) + " ") + "\n" + "\n" + diff --git a/src/policy/feerate.cpp b/src/policy/feerate.cpp index 14be6192fe..089f7d7208 100644 --- a/src/policy/feerate.cpp +++ b/src/policy/feerate.cpp @@ -7,7 +7,7 @@ #include -const std::string CURRENCY_UNIT = "BTC"; +const std::string CURRENCY_UNIT = "VRM"; CFeeRate::CFeeRate(const CAmount& nFeePaid, size_t nBytes_) { diff --git a/src/policy/fees.cpp b/src/policy/fees.cpp index 5d538606c2..b9c162c5b2 100644 --- a/src/policy/fees.cpp +++ b/src/policy/fees.cpp @@ -538,7 +538,7 @@ void CBlockPolicyEstimator::processTransaction(const CTxMemPoolEntry& entry, boo } trackedTxs++; - // Feerates are stored and reported as BTC-per-kb: + // Feerates are stored and reported as VRM-per-kb: CFeeRate feeRate(entry.GetFee(), entry.GetTxSize()); mapMemPoolTxs[hash].blockHeight = txHeight; @@ -568,7 +568,7 @@ bool CBlockPolicyEstimator::processBlockTx(unsigned int nBlockHeight, const CTxM return false; } - // Feerates are stored and reported as BTC-per-kb: + // Feerates are stored and reported as VRM-per-kb: CFeeRate feeRate(entry->GetFee(), entry->GetTxSize()); feeStats->Record(blocksToConfirm, (double)feeRate.GetFeePerK()); diff --git a/src/qt/README.md b/src/qt/README.md index 0dab2c876c..503c11d929 100644 --- a/src/qt/README.md +++ b/src/qt/README.md @@ -9,7 +9,7 @@ See build instructions ([macOS](/doc/build-osx.md), [Windows](/doc/build-windows To run: ```sh -./src/qt/bitcoin-qt +./src/qt/verium-qt ``` ## Files and directories @@ -60,7 +60,7 @@ Represents the view to a single wallet. * UI elements like BitcoinAmountField, which inherit from QWidget. * `bitcoinstrings.cpp`: automatically generated -* `bitcoinunits.(h/cpp)`: BTC / mBTC / etc handling +* `bitcoinunits.(h/cpp)`: VRM / mVRM / etc handling * `callback.h` * `guiconstants.h`: UI colors, app name, etc * `guiutil.h`: several helper functions @@ -86,10 +86,10 @@ Instructions for macOS: 1. Make sure you installed everything through Homebrew mentioned in the [macOS build instructions](/doc/build-osx.md) 2. Use `./configure` with the `--enable-debug` flag 3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project -4. Enter "bitcoin-qt" as project name, enter src/qt as location +4. Enter "verium-qt" as project name, enter src/qt as location 5. Leave the file selection as it is 6. Confirm the "summary page" 7. In the "Projects" tab select "Manage Kits..." 8. Select the default "Desktop" kit and select "Clang (x86 64bit in /usr/bin)" as compiler 9. Select LLDB as debugger (you might need to set the path to your installation) -10. Start debugging with Qt Creator (you might need to the executable to "bitcoin-qt" under "Run", which is where you can also add command line arguments) +10. Start debugging with Qt Creator (you might need to the executable to "verium-qt" under "Run", which is where you can also add command line arguments) diff --git a/src/qt/askpassphrasedialog.cpp b/src/qt/askpassphrasedialog.cpp index 2ababb5e1e..63b3719e28 100644 --- a/src/qt/askpassphrasedialog.cpp +++ b/src/qt/askpassphrasedialog.cpp @@ -121,7 +121,7 @@ void AskPassphraseDialog::accept() if(newpass1 == newpass2) { QString encryption_reminder = tr("Remember that encrypting your wallet cannot fully protect " - "your bitcoins from being stolen by malware infecting your computer."); + "your veriums from being stolen by malware infecting your computer."); if (m_passphrase_out) { m_passphrase_out->assign(newpass1); QMessageBox::warning(this, tr("Wallet to be encrypted"), diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index eb0b2843de..af333244b2 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -170,7 +170,7 @@ void BitcoinCore::shutdown() } static int qt_argc = 1; -static const char* qt_argv = "bitcoin-qt"; +static const char* qt_argv = "verium-qt"; BitcoinApplication::BitcoinApplication(interfaces::Node& node): QApplication(qt_argc, const_cast(&qt_argv)), @@ -496,7 +496,7 @@ int GuiMain(int argc, char* argv[]) // Gracefully exit if the user cancels if (!Intro::showIfNeeded(*node, did_show_intro, prune)) return EXIT_SUCCESS; - /// 6. Determine availability of data directory and parse bitcoin.conf + /// 6. Determine availability of data directory and parse verium.conf /// - Do not call GetDataDir(true) before this step finishes if (!CheckDataDirOption()) { node->initError(strprintf("Specified data directory \"%s\" does not exist.\n", gArgs.GetArg("-datadir", ""))); @@ -548,7 +548,7 @@ int GuiMain(int argc, char* argv[]) exit(EXIT_SUCCESS); // Start up the payment server early, too, so impatient users that click on - // bitcoin: links repeatedly have their payment requests routed to this process: + // verium: links repeatedly have their payment requests routed to this process: if (WalletModel::isWalletEnabled()) { app.createPaymentServer(); } diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc index 037b23e4b2..8715c546a4 100644 --- a/src/qt/bitcoin.qrc +++ b/src/qt/bitcoin.qrc @@ -1,6 +1,6 @@ - res/icons/bitcoin.png + res/icons/bitcoin.png res/icons/address-book.png res/icons/send.png res/icons/connect0.png diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 1bcd0ab1b6..d4ce382538 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -254,7 +254,7 @@ void BitcoinGUI::createActions() sendCoinsMenuAction->setToolTip(sendCoinsMenuAction->statusTip()); receiveCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/receiving_addresses"), tr("&Receive"), this); - receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and bitcoin: URIs)")); + receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and verium: URIs)")); receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip()); receiveCoinsAction->setCheckable(true); receiveCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_3)); @@ -330,7 +330,7 @@ void BitcoinGUI::createActions() usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels")); openAction = new QAction(tr("Open &URI..."), this); - openAction->setStatusTip(tr("Open a bitcoin: URI or payment request")); + openAction->setStatusTip(tr("Open a verium: URI or payment request")); m_open_wallet_action = new QAction(tr("Open Wallet"), this); m_open_wallet_action->setEnabled(false); diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index 3d40ee7823..9ed7ccdcdf 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -9,185 +9,185 @@ #define UNUSED #endif static const char UNUSED *bitcoin_strings[] = { -QT_TRANSLATE_NOOP("bitcoin-core", "The %s developers"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "The %s developers"), +QT_TRANSLATE_NOOP("verium-core", "" "-maxtxfee is set very high! Fees this large could be paid on a single " "transaction."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Can't generate a change-address key. No keys in the internal keypool and " "can't generate any keys."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Cannot obtain a lock on data directory %s. %s is probably already running."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Cannot provide specific connections and have addrman find outgoing " "connections at the same."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Cannot upgrade a non HD split wallet without upgrading to support pre split " "keypool. Please use -upgradewallet=169900 or -upgradewallet with no version " "specified."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Distributed under the MIT software license, see the accompanying file %s or " "%s"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Error reading %s! All keys read correctly, but transaction data or address " "book entries might be missing or incorrect."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Error: Listening for incoming connections failed (listen returned error %s)"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -" "fallbackfee."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Invalid amount for -maxtxfee=: '%s' (must be at least the minrelay " "fee of %s to prevent stuck transactions)"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Please check that your computer's date and time are correct! If your clock " "is wrong, %s will not work properly."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Please contribute if you find %s useful. Visit %s for further information " "about the software."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Prune configured below the minimum of %d MiB. Please use a higher number."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Prune: last wallet synchronisation goes beyond pruned data. You need to -" "reindex (download the whole blockchain again in case of pruned node)"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Rescans are not possible in pruned mode. You will need to use -reindex which " "will download the whole blockchain again."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "The block database contains a block which appears to be from the future. " "This may be due to your computer's date and time being set incorrectly. Only " "rebuild the block database if you are sure that your computer's date and " "time are correct"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "The transaction amount is too small to send after the fee has been deducted"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "This is a pre-release test build - use at your own risk - do not use for " "mining or merchant applications"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "This is the transaction fee you may discard if change is smaller than dust " "at this level"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "This is the transaction fee you may pay when fee estimates are not available."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "This product includes software developed by the OpenSSL Project for use in " "the OpenSSL Toolkit %s and cryptographic software written by Eric Young and " "UPnP software written by Thomas Bernard."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Total length of network version string (%i) exceeds maximum length (%i). " "Reduce the number or size of uacomments."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Unable to replay blocks. You will need to rebuild the database using -" "reindex-chainstate."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Unable to rewind the database to a pre-fork state. You will need to " "redownload the blockchain"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Warning: Private keys detected in wallet {%s} with disabled private keys"), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Warning: The network does not appear to fully agree! Some miners appear to " "be experiencing issues."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; " "if your balance or transactions are incorrect you should restore from a " "backup."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "Warning: We do not appear to fully agree with our peers! You may need to " "upgrade, or other nodes may need to upgrade."), -QT_TRANSLATE_NOOP("bitcoin-core", "" +QT_TRANSLATE_NOOP("verium-core", "" "You need to rebuild the database using -reindex to go back to unpruned " "mode. This will redownload the entire blockchain"), -QT_TRANSLATE_NOOP("bitcoin-core", "%d of last 100 blocks have unexpected version"), -QT_TRANSLATE_NOOP("bitcoin-core", "%s corrupt, salvage failed"), -QT_TRANSLATE_NOOP("bitcoin-core", "%s is set very high!"), -QT_TRANSLATE_NOOP("bitcoin-core", "-maxmempool must be at least %d MB"), -QT_TRANSLATE_NOOP("bitcoin-core", "Cannot downgrade wallet"), -QT_TRANSLATE_NOOP("bitcoin-core", "Cannot resolve -%s address: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Cannot write to data directory '%s'; check permissions."), -QT_TRANSLATE_NOOP("bitcoin-core", "Change index out of range"), -QT_TRANSLATE_NOOP("bitcoin-core", "Config setting for %s only applied on %s network when in [%s] section."), -QT_TRANSLATE_NOOP("bitcoin-core", "Copyright (C) %i-%i"), -QT_TRANSLATE_NOOP("bitcoin-core", "Corrupted block database detected"), -QT_TRANSLATE_NOOP("bitcoin-core", "Do you want to rebuild the block database now?"), -QT_TRANSLATE_NOOP("bitcoin-core", "Done loading"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error initializing block database"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error initializing wallet database environment %s!"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error loading %s"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error loading %s: Private keys can only be disabled during creation"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error loading %s: Wallet corrupted"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error loading %s: Wallet requires newer version of %s"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error loading block database"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet %s. Duplicate -wallet filename specified."), -QT_TRANSLATE_NOOP("bitcoin-core", "Error opening block database"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error reading from database, shutting down."), -QT_TRANSLATE_NOOP("bitcoin-core", "Error upgrading chainstate database"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error: A fatal internal error occurred, see debug.log for details"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error: Disk space is low for %s"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error: Disk space is too low!"), -QT_TRANSLATE_NOOP("bitcoin-core", "Failed to listen on any port. Use -listen=0 if you want this."), -QT_TRANSLATE_NOOP("bitcoin-core", "Failed to rescan the wallet during initialization"), -QT_TRANSLATE_NOOP("bitcoin-core", "Importing..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Incorrect or no genesis block found. Wrong datadir for network?"), -QT_TRANSLATE_NOOP("bitcoin-core", "Initialization sanity check failed. %s is shutting down."), -QT_TRANSLATE_NOOP("bitcoin-core", "Insufficient funds"), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -onion address or hostname: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -proxy address or hostname: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid P2P permission: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -%s=: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -discardfee=: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -fallbackfee=: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -paytxfee=: '%s' (must be at least %s)"), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid netmask specified in -whitelist: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Loading P2P addresses..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Loading banlist..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Loading block index..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Loading wallet..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Need to specify a port with -whitebind: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Not enough file descriptors available."), -QT_TRANSLATE_NOOP("bitcoin-core", "Prune cannot be configured with a negative value."), -QT_TRANSLATE_NOOP("bitcoin-core", "Prune mode is incompatible with -blockfilterindex."), -QT_TRANSLATE_NOOP("bitcoin-core", "Prune mode is incompatible with -txindex."), -QT_TRANSLATE_NOOP("bitcoin-core", "Pruning blockstore..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Reducing -maxconnections from %d to %d, because of system limitations."), -QT_TRANSLATE_NOOP("bitcoin-core", "Replaying blocks..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Rescanning..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Rewinding blocks..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Section [%s] is not recognized."), -QT_TRANSLATE_NOOP("bitcoin-core", "Signing transaction failed"), -QT_TRANSLATE_NOOP("bitcoin-core", "Specified -walletdir \"%s\" does not exist"), -QT_TRANSLATE_NOOP("bitcoin-core", "Specified -walletdir \"%s\" is a relative path"), -QT_TRANSLATE_NOOP("bitcoin-core", "Specified -walletdir \"%s\" is not a directory"), -QT_TRANSLATE_NOOP("bitcoin-core", "Specified blocks directory \"%s\" does not exist."), -QT_TRANSLATE_NOOP("bitcoin-core", "Starting network threads..."), -QT_TRANSLATE_NOOP("bitcoin-core", "The source code is available from %s."), -QT_TRANSLATE_NOOP("bitcoin-core", "The specified config file %s does not exist\n"), -QT_TRANSLATE_NOOP("bitcoin-core", "The transaction amount is too small to pay the fee"), -QT_TRANSLATE_NOOP("bitcoin-core", "The wallet will avoid paying less than the minimum relay fee."), -QT_TRANSLATE_NOOP("bitcoin-core", "This is experimental software."), -QT_TRANSLATE_NOOP("bitcoin-core", "This is the minimum transaction fee you pay on every transaction."), -QT_TRANSLATE_NOOP("bitcoin-core", "This is the transaction fee you will pay if you send a transaction."), -QT_TRANSLATE_NOOP("bitcoin-core", "Transaction amount too small"), -QT_TRANSLATE_NOOP("bitcoin-core", "Transaction amounts must not be negative"), -QT_TRANSLATE_NOOP("bitcoin-core", "Transaction fee and change calculation failed"), -QT_TRANSLATE_NOOP("bitcoin-core", "Transaction has too long of a mempool chain"), -QT_TRANSLATE_NOOP("bitcoin-core", "Transaction must have at least one recipient"), -QT_TRANSLATE_NOOP("bitcoin-core", "Transaction too large"), -QT_TRANSLATE_NOOP("bitcoin-core", "Unable to bind to %s on this computer (bind returned error %s)"), -QT_TRANSLATE_NOOP("bitcoin-core", "Unable to bind to %s on this computer. %s is probably already running."), -QT_TRANSLATE_NOOP("bitcoin-core", "Unable to create the PID file '%s': %s"), -QT_TRANSLATE_NOOP("bitcoin-core", "Unable to generate initial keys"), -QT_TRANSLATE_NOOP("bitcoin-core", "Unable to generate keys"), -QT_TRANSLATE_NOOP("bitcoin-core", "Unable to start HTTP server. See debug log for details."), -QT_TRANSLATE_NOOP("bitcoin-core", "Unknown -blockfilterindex value %s."), -QT_TRANSLATE_NOOP("bitcoin-core", "Unknown address type '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Unknown change type '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Unknown network specified in -onlynet: '%s'"), -QT_TRANSLATE_NOOP("bitcoin-core", "Unsupported logging category %s=%s."), -QT_TRANSLATE_NOOP("bitcoin-core", "Upgrading UTXO database"), -QT_TRANSLATE_NOOP("bitcoin-core", "Upgrading txindex database"), -QT_TRANSLATE_NOOP("bitcoin-core", "User Agent comment (%s) contains unsafe characters."), -QT_TRANSLATE_NOOP("bitcoin-core", "Verifying blocks..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Verifying wallet(s)..."), -QT_TRANSLATE_NOOP("bitcoin-core", "Wallet needed to be rewritten: restart %s to complete"), -QT_TRANSLATE_NOOP("bitcoin-core", "Warning: unknown new rules activated (versionbit %i)"), -QT_TRANSLATE_NOOP("bitcoin-core", "Zapping all transactions from wallet..."), +QT_TRANSLATE_NOOP("verium-core", "%d of last 100 blocks have unexpected version"), +QT_TRANSLATE_NOOP("verium-core", "%s corrupt, salvage failed"), +QT_TRANSLATE_NOOP("verium-core", "%s is set very high!"), +QT_TRANSLATE_NOOP("verium-core", "-maxmempool must be at least %d MB"), +QT_TRANSLATE_NOOP("verium-core", "Cannot downgrade wallet"), +QT_TRANSLATE_NOOP("verium-core", "Cannot resolve -%s address: '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Cannot write to data directory '%s'; check permissions."), +QT_TRANSLATE_NOOP("verium-core", "Change index out of range"), +QT_TRANSLATE_NOOP("verium-core", "Config setting for %s only applied on %s network when in [%s] section."), +QT_TRANSLATE_NOOP("verium-core", "Copyright (C) %i-%i"), +QT_TRANSLATE_NOOP("verium-core", "Corrupted block database detected"), +QT_TRANSLATE_NOOP("verium-core", "Do you want to rebuild the block database now?"), +QT_TRANSLATE_NOOP("verium-core", "Done loading"), +QT_TRANSLATE_NOOP("verium-core", "Error initializing block database"), +QT_TRANSLATE_NOOP("verium-core", "Error initializing wallet database environment %s!"), +QT_TRANSLATE_NOOP("verium-core", "Error loading %s"), +QT_TRANSLATE_NOOP("verium-core", "Error loading %s: Private keys can only be disabled during creation"), +QT_TRANSLATE_NOOP("verium-core", "Error loading %s: Wallet corrupted"), +QT_TRANSLATE_NOOP("verium-core", "Error loading %s: Wallet requires newer version of %s"), +QT_TRANSLATE_NOOP("verium-core", "Error loading block database"), +QT_TRANSLATE_NOOP("verium-core", "Error loading wallet %s. Duplicate -wallet filename specified."), +QT_TRANSLATE_NOOP("verium-core", "Error opening block database"), +QT_TRANSLATE_NOOP("verium-core", "Error reading from database, shutting down."), +QT_TRANSLATE_NOOP("verium-core", "Error upgrading chainstate database"), +QT_TRANSLATE_NOOP("verium-core", "Error: A fatal internal error occurred, see debug.log for details"), +QT_TRANSLATE_NOOP("verium-core", "Error: Disk space is low for %s"), +QT_TRANSLATE_NOOP("verium-core", "Error: Disk space is too low!"), +QT_TRANSLATE_NOOP("verium-core", "Failed to listen on any port. Use -listen=0 if you want this."), +QT_TRANSLATE_NOOP("verium-core", "Failed to rescan the wallet during initialization"), +QT_TRANSLATE_NOOP("verium-core", "Importing..."), +QT_TRANSLATE_NOOP("verium-core", "Incorrect or no genesis block found. Wrong datadir for network?"), +QT_TRANSLATE_NOOP("verium-core", "Initialization sanity check failed. %s is shutting down."), +QT_TRANSLATE_NOOP("verium-core", "Insufficient funds"), +QT_TRANSLATE_NOOP("verium-core", "Invalid -onion address or hostname: '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Invalid -proxy address or hostname: '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Invalid P2P permission: '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Invalid amount for -%s=: '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Invalid amount for -discardfee=: '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Invalid amount for -fallbackfee=: '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Invalid amount for -paytxfee=: '%s' (must be at least %s)"), +QT_TRANSLATE_NOOP("verium-core", "Invalid netmask specified in -whitelist: '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Loading P2P addresses..."), +QT_TRANSLATE_NOOP("verium-core", "Loading banlist..."), +QT_TRANSLATE_NOOP("verium-core", "Loading block index..."), +QT_TRANSLATE_NOOP("verium-core", "Loading wallet..."), +QT_TRANSLATE_NOOP("verium-core", "Need to specify a port with -whitebind: '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Not enough file descriptors available."), +QT_TRANSLATE_NOOP("verium-core", "Prune cannot be configured with a negative value."), +QT_TRANSLATE_NOOP("verium-core", "Prune mode is incompatible with -blockfilterindex."), +QT_TRANSLATE_NOOP("verium-core", "Prune mode is incompatible with -txindex."), +QT_TRANSLATE_NOOP("verium-core", "Pruning blockstore..."), +QT_TRANSLATE_NOOP("verium-core", "Reducing -maxconnections from %d to %d, because of system limitations."), +QT_TRANSLATE_NOOP("verium-core", "Replaying blocks..."), +QT_TRANSLATE_NOOP("verium-core", "Rescanning..."), +QT_TRANSLATE_NOOP("verium-core", "Rewinding blocks..."), +QT_TRANSLATE_NOOP("verium-core", "Section [%s] is not recognized."), +QT_TRANSLATE_NOOP("verium-core", "Signing transaction failed"), +QT_TRANSLATE_NOOP("verium-core", "Specified -walletdir \"%s\" does not exist"), +QT_TRANSLATE_NOOP("verium-core", "Specified -walletdir \"%s\" is a relative path"), +QT_TRANSLATE_NOOP("verium-core", "Specified -walletdir \"%s\" is not a directory"), +QT_TRANSLATE_NOOP("verium-core", "Specified blocks directory \"%s\" does not exist."), +QT_TRANSLATE_NOOP("verium-core", "Starting network threads..."), +QT_TRANSLATE_NOOP("verium-core", "The source code is available from %s."), +QT_TRANSLATE_NOOP("verium-core", "The specified config file %s does not exist\n"), +QT_TRANSLATE_NOOP("verium-core", "The transaction amount is too small to pay the fee"), +QT_TRANSLATE_NOOP("verium-core", "The wallet will avoid paying less than the minimum relay fee."), +QT_TRANSLATE_NOOP("verium-core", "This is experimental software."), +QT_TRANSLATE_NOOP("verium-core", "This is the minimum transaction fee you pay on every transaction."), +QT_TRANSLATE_NOOP("verium-core", "This is the transaction fee you will pay if you send a transaction."), +QT_TRANSLATE_NOOP("verium-core", "Transaction amount too small"), +QT_TRANSLATE_NOOP("verium-core", "Transaction amounts must not be negative"), +QT_TRANSLATE_NOOP("verium-core", "Transaction fee and change calculation failed"), +QT_TRANSLATE_NOOP("verium-core", "Transaction has too long of a mempool chain"), +QT_TRANSLATE_NOOP("verium-core", "Transaction must have at least one recipient"), +QT_TRANSLATE_NOOP("verium-core", "Transaction too large"), +QT_TRANSLATE_NOOP("verium-core", "Unable to bind to %s on this computer (bind returned error %s)"), +QT_TRANSLATE_NOOP("verium-core", "Unable to bind to %s on this computer. %s is probably already running."), +QT_TRANSLATE_NOOP("verium-core", "Unable to create the PID file '%s': %s"), +QT_TRANSLATE_NOOP("verium-core", "Unable to generate initial keys"), +QT_TRANSLATE_NOOP("verium-core", "Unable to generate keys"), +QT_TRANSLATE_NOOP("verium-core", "Unable to start HTTP server. See debug log for details."), +QT_TRANSLATE_NOOP("verium-core", "Unknown -blockfilterindex value %s."), +QT_TRANSLATE_NOOP("verium-core", "Unknown address type '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Unknown change type '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Unknown network specified in -onlynet: '%s'"), +QT_TRANSLATE_NOOP("verium-core", "Unsupported logging category %s=%s."), +QT_TRANSLATE_NOOP("verium-core", "Upgrading UTXO database"), +QT_TRANSLATE_NOOP("veriumcore", "Upgrading txindex database"), +QT_TRANSLATE_NOOP("verium-core", "User Agent comment (%s) contains unsafe characters."), +QT_TRANSLATE_NOOP("verium-core", "Verifying blocks..."), +QT_TRANSLATE_NOOP("verium-core", "Verifying wallet(s)..."), +QT_TRANSLATE_NOOP("verium-core", "Wallet needed to be rewritten: restart %s to complete"), +QT_TRANSLATE_NOOP("verium-core", "Warning: unknown new rules activated (versionbit %i)"), +QT_TRANSLATE_NOOP("verium-core", "Zapping all transactions from wallet..."), }; diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp index 1d195b7db9..cd08ebb986 100644 --- a/src/qt/bitcoinunits.cpp +++ b/src/qt/bitcoinunits.cpp @@ -40,10 +40,10 @@ QString BitcoinUnits::longName(int unit) { switch(unit) { - case BTC: return QString("BTC"); - case mBTC: return QString("mBTC"); - case uBTC: return QString::fromUtf8("µBTC (bits)"); - case SAT: return QString("Satoshi (sat)"); + case BTC: return QString("VRM"); + case mBTC: return QString("mVRM"); + case uBTC: return QString::fromUtf8("µVRM (bits)"); + case SAT: return QString("Veritoshi (veri)"); default: return QString("???"); } } @@ -65,7 +65,7 @@ QString BitcoinUnits::description(int unit) case BTC: return QString("Veriums"); case mBTC: return QString("Milli-Veriums (1 / 1" THIN_SP_UTF8 "000)"); case uBTC: return QString("Micro-Veriums (bits) (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); - case SAT: return QString("Satoshi (sat) (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); + case SAT: return QString("Veritoshi (veri) (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); default: return QString("???"); } } diff --git a/src/qt/forms/coincontroldialog.ui b/src/qt/forms/coincontroldialog.ui index 5ce469ee96..f17ba65d9e 100644 --- a/src/qt/forms/coincontroldialog.ui +++ b/src/qt/forms/coincontroldialog.ui @@ -132,7 +132,7 @@ Qt::ActionsContextMenu - 0.00 BTC + 0.00 VRM Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -212,7 +212,7 @@ Qt::ActionsContextMenu - 0.00 BTC + 0.00 VRM Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -257,7 +257,7 @@ Qt::ActionsContextMenu - 0.00 BTC + 0.00 VRM Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -292,7 +292,7 @@ Qt::ActionsContextMenu - 0.00 BTC + 0.00 VRM Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse diff --git a/src/qt/forms/helpmessagedialog.ui b/src/qt/forms/helpmessagedialog.ui index b7f941f70b..497b78ab60 100644 --- a/src/qt/forms/helpmessagedialog.ui +++ b/src/qt/forms/helpmessagedialog.ui @@ -52,7 +52,7 @@ - :/icons/bitcoin + :/icons/verium true diff --git a/src/qt/forms/modaloverlay.ui b/src/qt/forms/modaloverlay.ui index b5a69c578d..023e1167e8 100644 --- a/src/qt/forms/modaloverlay.ui +++ b/src/qt/forms/modaloverlay.ui @@ -130,7 +130,7 @@ QLabel { color: rgb(40,40,40); } - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Qt::RichText @@ -149,7 +149,7 @@ QLabel { color: rgb(40,40,40); } - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. Qt::RichText diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index fe301cb09d..437ee63036 100644 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -129,7 +129,7 @@ Unconfirmed transactions to watch-only addresses - 0.000 000 00 BTC + 0.000 000 00 VRM Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -154,7 +154,7 @@ Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - 0.000 000 00 BTC + 0.000 000 00 VRM Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -179,7 +179,7 @@ Mined balance in watch-only addresses that has not yet matured - 0.000 000 00 BTC + 0.000 000 00 VRM Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -237,7 +237,7 @@ Mined balance that has not yet matured - 0.000 000 00 BTC + 0.000 000 00 VRM Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -282,7 +282,7 @@ Your current total balance - 0.000 000 00 BTC + 0.000 000 00 VRM Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -307,7 +307,7 @@ Current total balance in watch-only addresses - 0.000 000 00 BTC + 0.000 000 00 VRM Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -349,7 +349,7 @@ Your current spendable balance - 0.000 000 00 BTC + 0.000 000 00 VRM Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -374,7 +374,7 @@ Your current balance in watch-only addresses - 0.000 000 00 BTC + 0.000 000 00 VRM Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui index 386d559281..8f52a21544 100644 --- a/src/qt/forms/sendcoinsdialog.ui +++ b/src/qt/forms/sendcoinsdialog.ui @@ -324,7 +324,7 @@ Qt::ActionsContextMenu - 0.00 BTC + 0.00 VRM Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -404,7 +404,7 @@ Qt::ActionsContextMenu - 0.00 BTC + 0.00 VRM Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -455,7 +455,7 @@ Qt::ActionsContextMenu - 0.00 BTC + 0.00 VRM Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -484,7 +484,7 @@ Qt::ActionsContextMenu - 0.00 BTC + 0.00 VRM Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -883,7 +883,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p true - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. A too low fee might result in a never confirming transaction (read the tooltip) @@ -1214,7 +1214,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p IBeamCursor - 123.456 BTC + 123.456 VRM Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse diff --git a/src/qt/forms/sendcoinsentry.ui b/src/qt/forms/sendcoinsentry.ui index 95c669a744..a8e4e6f717 100644 --- a/src/qt/forms/sendcoinsentry.ui +++ b/src/qt/forms/sendcoinsentry.ui @@ -170,7 +170,7 @@ - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. S&ubtract fee from amount @@ -199,7 +199,7 @@ - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. Qt::PlainText diff --git a/src/qt/forms/signverifymessagedialog.ui b/src/qt/forms/signverifymessagedialog.ui index c1efcc92e6..56cf3f866a 100644 --- a/src/qt/forms/signverifymessagedialog.ui +++ b/src/qt/forms/signverifymessagedialog.ui @@ -30,7 +30,7 @@ - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. Qt::PlainText diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h index aceb06d86c..d5926595e2 100644 --- a/src/qt/guiconstants.h +++ b/src/qt/guiconstants.h @@ -43,7 +43,7 @@ static const int TOOLTIP_WRAP_THRESHOLD = 80; #define SPINNER_FRAMES 36 #define QAPP_ORG_NAME "Verium" -#define QAPP_ORG_DOMAIN "bitcoin.org" +#define QAPP_ORG_DOMAIN "vericoin.info" #define QAPP_APP_NAME_DEFAULT "Verium-Qt" #define QAPP_APP_NAME_TESTNET "Verium-Qt-testnet" #define QAPP_APP_NAME_REGTEST "Verium-Qt-regtest" diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index e6c50d8a49..7d8bf620ec 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -113,8 +113,8 @@ void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent) bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out) { - // return if URI is not valid or is no bitcoin: URI - if(!uri.isValid() || uri.scheme() != QString("bitcoin")) + // return if URI is not valid or is no verium: URI + if(!uri.isValid() || uri.scheme() != QString("verium")) return false; SendCoinsRecipient rv; @@ -178,7 +178,7 @@ QString formatBitcoinURI(const SendCoinsRecipient &info) { bool bech_32 = info.address.startsWith(QString::fromStdString(Params().Bech32HRP() + "1")); - QString ret = QString("bitcoin:%1").arg(bech_32 ? info.address.toUpper() : info.address); + QString ret = QString("verium:%1").arg(bech_32 ? info.address.toUpper() : info.address); int paramCount = 0; if (info.amount) @@ -396,7 +396,7 @@ bool openBitcoinConf() configFile.close(); - /* Open bitcoin.conf with the associated application */ + /* Open verium.conf with the associated application */ bool res = QDesktopServices::openUrl(QUrl::fromLocalFile(boostPathToQString(pathConfig))); #ifdef Q_OS_MAC // Workaround for macOS-specific behavior; see #15409. @@ -635,8 +635,8 @@ fs::path static GetAutostartFilePath() { std::string chain = gArgs.GetChainName(); if (chain == CBaseChainParams::MAIN) - return GetAutostartDir() / "bitcoin.desktop"; - return GetAutostartDir() / strprintf("bitcoin-%s.desktop", chain); + return GetAutostartDir() / "verium.desktop"; + return GetAutostartDir() / strprintf("verium-%s.desktop", chain); } bool GetStartOnSystemStartup() @@ -676,7 +676,7 @@ bool SetStartOnSystemStartup(bool fAutoStart) if (!optionFile.good()) return false; std::string chain = gArgs.GetChainName(); - // Write a bitcoin.desktop file to the autostart directory: + // Write a verium.desktop file to the autostart directory: optionFile << "[Desktop Entry]\n"; optionFile << "Type=Application\n"; if (chain == CBaseChainParams::MAIN) diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index 9db92f94d7..e5f13c7975 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -50,7 +50,7 @@ namespace GUIUtil // Set up widget for address void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent); - // Parse "bitcoin:" URI into recipient object, return true on successful parsing + // Parse "verium:" URI into recipient object, return true on successful parsing bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out); bool parseBitcoinURI(QString uri, SendCoinsRecipient *out); QString formatBitcoinURI(const SendCoinsRecipient &info); diff --git a/src/qt/intro.cpp b/src/qt/intro.cpp index a64624aa61..cc755e3da9 100644 --- a/src/qt/intro.cpp +++ b/src/qt/intro.cpp @@ -212,7 +212,7 @@ bool Intro::showIfNeeded(interfaces::Node& node, bool& did_show_intro, bool& pru /* If current default data directory does not exist, let the user choose one */ Intro intro(0, node.getAssumedBlockchainSize(), node.getAssumedChainStateSize()); intro.setDataDirectory(dataDir); - intro.setWindowIcon(QIcon(":icons/bitcoin")); + intro.setWindowIcon(QIcon(":icons/verium")); did_show_intro = true; while(true) @@ -243,8 +243,8 @@ bool Intro::showIfNeeded(interfaces::Node& node, bool& did_show_intro, bool& pru settings.setValue("fReset", false); } /* Only override -datadir if different from the default, to make it possible to - * override -datadir in the bitcoin.conf file in the default data directory - * (to be consistent with bitcoind behavior) + * override -datadir in the verium.conf file in the default data directory + * (to be consistent with veriumd behavior) */ if(dataDir != GUIUtil::getDefaultDataDirectory()) { node.softSetArg("-datadir", GUIUtil::qstringToBoostPath(dataDir).string()); // use OS locale for path setting diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts index 517c5fe401..333bce20e0 100644 --- a/src/qt/locale/bitcoin_ar.ts +++ b/src/qt/locale/bitcoin_ar.ts @@ -400,6 +400,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index 9082f41a5f..6a66713d54 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -532,8 +532,8 @@ ModalOverlay - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - És possible que les transaccions recents encara no siguin visibles i, per tant, el saldo de la vostra cartera podria ser incorrecte. Aquesta informació serà correcta una vegada que la cartera hagi finalitzat la sincronització amb la xarxa bitcoin, tal com es detalla més avall. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + És possible que les transaccions recents encara no siguin visibles i, per tant, el saldo de la vostra cartera podria ser incorrecte. Aquesta informació serà correcta una vegada que la cartera hagi finalitzat la sincronització amb la xarxa verium, tal com es detalla més avall. Last block time @@ -1434,7 +1434,7 @@ - bitcoin-core + verium-core Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) Poda: la darrera sincronització de la cartera va més enllà de les dades podades. Cal que activeu -reindex (baixeu tota la cadena de blocs de nou en cas de node podat) diff --git a/src/qt/locale/bitcoin_cs.ts b/src/qt/locale/bitcoin_cs.ts index e87315c332..8b86bbc35f 100644 --- a/src/qt/locale/bitcoin_cs.ts +++ b/src/qt/locale/bitcoin_cs.ts @@ -67,7 +67,7 @@ These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. - Tohle jsou tvé bitcoinové adresy pro posílání plateb. Před odesláním mincí si vždy zkontroluj částku a cílovou adresu. + Tohle jsou tvé veriumové adresy pro posílání plateb. Před odesláním mincí si vždy zkontroluj částku a cílovou adresu. &Copy Address @@ -323,7 +323,7 @@ Send coins to a Verium address - Pošli mince na bitcoinovou adresu + Pošli mince na veriumovou adresu Backup wallet to another location @@ -367,11 +367,11 @@ Sign messages with your Verium addresses to prove you own them - Podepiš zprávy svými bitcoinovými adresami, čímž prokážeš, že jsi jejich vlastníkem + Podepiš zprávy svými veriumovými adresami, čímž prokážeš, že jsi jejich vlastníkem Verify messages to ensure they were signed with specified Verium addresses - Ověř zprávy, aby ses ujistil, že byly podepsány danými bitcoinovými adresami + Ověř zprávy, aby ses ujistil, že byly podepsány danými veriumovými adresami &File @@ -390,8 +390,8 @@ Panel s listy - Request payments (generates QR codes and bitcoin: URIs) - Požaduj platby (generuje QR kódy a bitcoin: URI) + Request payments (generates QR codes and verium: URIs) + Požaduj platby (generuje QR kódy a verium: URI) Show the list of used sending addresses and labels @@ -402,8 +402,8 @@ Ukaž seznam použitých přijímacích adres a jejich označení - Open a bitcoin: URI or payment request - Načti bitcoin: URI nebo platební požadavek + Open a verium: URI or payment request + Načti verium: URI nebo platební požadavek &Command-line options @@ -411,7 +411,7 @@ %n active connection(s) to Verium network - %n aktivní spojení do bitcoinové sítě%n aktivní spojení do bitcoinové sítě%n aktivních spojení do bitcoinové sítě%n aktivních spojení do bitcoinové sítě + %n aktivní spojení do veriumové sítě%n aktivní spojení do veriumové sítě%n aktivních spojení do veriumové sítě%n aktivních spojení do veriumové sítě Indexing blocks on disk... @@ -783,7 +783,7 @@ The entered address "%1" is not a valid Verium address. - Zadaná adresa „%1“ není platná bitcoinová adresa. + Zadaná adresa „%1“ není platná veriumová adresa. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -922,12 +922,12 @@ Formulář - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Nedávné transakce ještě nemusí být vidět, takže stav tvého účtu nemusí být platný. Jakmile se však tvá peněženka dosynchronizuje s bitcoinovou sítí (viz informace níže), tak už bude stav správně. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Nedávné transakce ještě nemusí být vidět, takže stav tvého účtu nemusí být platný. Jakmile se však tvá peněženka dosynchronizuje s veriumovou sítí (viz informace níže), tak už bude stav správně. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Utrácení bitcoinů, které už utratily zatím nezobrazené transakce, nebude bitcoinovou sítí umožněno. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Utrácení veriumů, které už utratily zatím nezobrazené transakce, nebude veriumovou sítí umožněno. Number of blocks left @@ -1136,7 +1136,7 @@ Connect to the Verium network through a SOCKS5 proxy. - Připojí se do bitcoinové sítě přes SOCKS5 proxy. + Připojí se do veriumové sítě přes SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -1172,7 +1172,7 @@ Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. - Připojí se do bitcoinové sítě přes SOCKS5 proxy vyhrazenou pro skryté služby v Tor síti. + Připojí se do veriumové sítě přes SOCKS5 proxy vyhrazenou pro skryté služby v Tor síti. &Window @@ -1283,7 +1283,7 @@ The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. - Zobrazené informace nemusí být aktuální. Tvá peněženka se automaticky sesynchronizuje s bitcoinovou sítí, jakmile se s ní spojí. Zatím ale ještě není synchronizace dokončena. + Zobrazené informace nemusí být aktuální. Tvá peněženka se automaticky sesynchronizuje s veriumovou sítí, jakmile se s ní spojí. Zatím ale ještě není synchronizace dokončena. Watch-only: @@ -1357,16 +1357,16 @@ Chyba platebního požadavku - Cannot start bitcoin: click-to-pay handler - Nemůžu spustit bitcoin: obsluha click-to-pay + Cannot start verium: click-to-pay handler + Nemůžu spustit verium: obsluha click-to-pay URI handling Zpracování URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' není platné URI. Místo toho použij 'bitcoin:'. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' není platné URI. Místo toho použij 'verium:'. You are using a BIP70 URL which will be unsupported in the future. @@ -1386,7 +1386,7 @@ URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. - Nepodařilo se analyzovat URI! Důvodem může být neplatná bitcoinová adresa nebo poškozené parametry URI. + Nepodařilo se analyzovat URI! Důvodem může být neplatná veriumová adresa nebo poškozené parametry URI. Payment request file handling @@ -1488,7 +1488,7 @@ Enter a Verium address (e.g. %1) - Zadej bitcoinovou adresu (např. %1) + Zadej veriumovou adresu (např. %1) %1 d @@ -1945,7 +1945,7 @@ An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Verium network. - Volitelná zpráva, která se připojí k platebnímu požadavku a která se zobrazí, když se požadavek otevře. Poznámka: tahle zpráva se neposílá s platbou po bitcoinové síti. + Volitelná zpráva, která se připojí k platebnímu požadavku a která se zobrazí, když se požadavek otevře. Poznámka: tahle zpráva se neposílá s platbou po veriumové síti. An optional label to associate with the new receiving address. @@ -2213,8 +2213,8 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Prach: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Když je zde měně transakcí než místa na bloky, mineři stejně tak relay-e mohou nasadit minimální poplatky. Zaplacením pouze minimálního poplatku je v pohodě, ale mějte na paměti že toto může mít za následek nikdy neověřenou transakci pokud zde bude více bitcoinových transakcí než může síť zvládnout. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + Když je zde měně transakcí než místa na bloky, mineři stejně tak relay-e mohou nasadit minimální poplatky. Zaplacením pouze minimálního poplatku je v pohodě, ale mějte na paměti že toto může mít za následek nikdy neověřenou transakci pokud zde bude více veriumových transakcí než může síť zvládnout. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2358,7 +2358,7 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Warning: Invalid Verium address - Upozornění: Neplatná bitcoinová adresa + Upozornění: Neplatná veriumová adresa Warning: Unknown change address @@ -2420,8 +2420,8 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Smaž tento záznam - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Poplatek se odečte od posílané částky. Příjemce tak dostane méně bitcoinů, než zadáš do pole Částka. Pokud vybereš více příjemců, tak se poplatek rovnoměrně rozloží. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Poplatek se odečte od posílané částky. Příjemce tak dostane méně veriumů, než zadáš do pole Částka. Pokud vybereš více příjemců, tak se poplatek rovnoměrně rozloží. S&ubtract fee from amount @@ -2448,8 +2448,8 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Zadej označení této adresy; obojí se ti pak uloží do adresáře - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Zpráva, která byla připojena k bitcoin: URI a která se ti pro přehled uloží k transakci. Poznámka: Tahle zpráva se neposílá s platbou po bitcoinové síti. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Zpráva, která byla připojena k verium: URI a která se ti pro přehled uloží k transakci. Poznámka: Tahle zpráva se neposílá s platbou po veriumové síti. Pay To: @@ -2493,8 +2493,8 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa &Podepiš zprávu - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Podepsáním zprávy/smlouvy svými adresami můžeš prokázat, že jsi na ně schopen přijmout bitcoiny. Buď opatrný a nepodepisuj nic vágního nebo náhodného; například při phishingových útocích můžeš být lákán, abys něco takového podepsal. Podepisuj pouze naprosto úplná a detailní prohlášení, se kterými souhlasíš. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Podepsáním zprávy/smlouvy svými adresami můžeš prokázat, že jsi na ně schopen přijmout veriumy. Buď opatrný a nepodepisuj nic vágního nebo náhodného; například při phishingových útocích můžeš být lákán, abys něco takového podepsal. Podepisuj pouze naprosto úplná a detailní prohlášení, se kterými souhlasíš. The Verium address to sign the message with @@ -2530,7 +2530,7 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Sign the message to prove you own this Verium address - Podepiš zprávu, čímž prokážeš, že jsi vlastníkem této bitcoinové adresy + Podepiš zprávu, čímž prokážeš, že jsi vlastníkem této veriumové adresy Sign &Message @@ -2558,7 +2558,7 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa Verify the message to ensure it was signed with the specified Verium address - Ověř zprávu, aby ses ujistil, že byla podepsána danou bitcoinovou adresou + Ověř zprávu, aby ses ujistil, že byla podepsána danou veriumovou adresou Verify &Message @@ -3184,7 +3184,7 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Šířen pod softwarovou licencí MIT, viz přiložený soubor %s nebo %s diff --git a/src/qt/locale/bitcoin_cy.ts b/src/qt/locale/bitcoin_cy.ts index 3c6e388459..3e81ceb3ee 100644 --- a/src/qt/locale/bitcoin_cy.ts +++ b/src/qt/locale/bitcoin_cy.ts @@ -382,8 +382,8 @@ Bar offer tabiau - Request payments (generates QR codes and bitcoin: URIs) - Gofyn taliadau (creu côd QR a bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + Gofyn taliadau (creu côd QR a verium: URIs) Show the list of used sending addresses and labels @@ -394,7 +394,7 @@ Dangos rhestr o gyfeiriadau derbyn a labelau wedi eu defnyddio - Open a bitcoin: URI or payment request + Open a verium: URI or payment request Agor Verium: URI neu ofyn taliad @@ -1064,6 +1064,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts index 496d88f5b6..6c4240df03 100644 --- a/src/qt/locale/bitcoin_da.ts +++ b/src/qt/locale/bitcoin_da.ts @@ -47,11 +47,11 @@ Choose the address to send coins to - Vælg adresse at sende bitcoins til + Vælg adresse at sende veriums til Choose the address to receive coins with - Vælg adresse at modtage bitcoins med + Vælg adresse at modtage veriums med C&hoose @@ -67,7 +67,7 @@ These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. - Disse er dine Verium-adresser til afsendelse af betalinger. Tjek altid beløb og modtagelsesadresse, inden du sender bitcoins. + Disse er dine Verium-adresser til afsendelse af betalinger. Tjek altid beløb og modtagelsesadresse, inden du sender veriums. These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. @@ -188,8 +188,8 @@ Indtast den gamle adgangskode og en ny adgangskode til tegnebogen. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Husk, at kryptere din tegnebog vil ikke fuldt ud beskytte dine bitcoins mod at blive stjålet af malware på din computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Husk, at kryptere din tegnebog vil ikke fuldt ud beskytte dine veriums mod at blive stjålet af malware på din computer. Wallet to be encrypted @@ -363,7 +363,7 @@ Send coins to a Verium address - Send bitcoins til en Verium-adresse + Send veriums til en Verium-adresse Backup wallet to another location @@ -430,8 +430,8 @@ Faneværktøjslinje - Request payments (generates QR codes and bitcoin: URIs) - Anmod om betalinger (genererer QR-koder og “bitcoin:”-URI'er) + Request payments (generates QR codes and verium: URIs) + Anmod om betalinger (genererer QR-koder og “verium:”-URI'er) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Vis listen over brugte modtagelsesadresser og -mærkater - Open a bitcoin: URI or payment request - Åbn en “bitcoin:”-URI eller betalingsanmodning + Open a verium: URI or payment request + Åbn en “verium:”-URI eller betalingsanmodning &Command-line options @@ -1026,12 +1026,12 @@ Formular - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Nylige transaktioner er måske ikke synlige endnu, og derfor kan din tegnebogs saldo være ukorrekt. Denne information vil være korrekt, når din tegnebog er færdig med at synkronisere med bitcoin-netværket, som detaljerne herunder viser. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Nylige transaktioner er måske ikke synlige endnu, og derfor kan din tegnebogs saldo være ukorrekt. Denne information vil være korrekt, når din tegnebog er færdig med at synkronisere med verium-netværket, som detaljerne herunder viser. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Forsøg på at bruge bitcoin, som er indeholdt i endnu-ikke-viste transaktioner, accepteres ikke af netværket. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Forsøg på at bruge verium, som er indeholdt i endnu-ikke-viste transaktioner, accepteres ikke af netværket. Number of blocks left @@ -1320,7 +1320,7 @@ Choose the default subdivision unit to show in the interface and when sending coins. - Vælg standard for underopdeling af enhed, som skal vises i brugergrænsefladen og ved afsendelse af bitcoins. + Vælg standard for underopdeling af enhed, som skal vises i brugergrænsefladen og ved afsendelse af veriums. Whether to show coin control features or not. @@ -1469,16 +1469,16 @@ Fejl i betalingsanmodning - Cannot start bitcoin: click-to-pay handler - Kan ikke starte bitcoin: click-to-pay-håndtering + Cannot start verium: click-to-pay handler + Kan ikke starte verium: click-to-pay-håndtering URI handling URI-håndtering - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' er ikke et gyldigt URI. Brug 'bitcoin:' istedet. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' er ikke et gyldigt URI. Brug 'verium:' istedet. You are using a BIP70 URL which will be unsupported in the future. @@ -2226,7 +2226,7 @@ SendCoinsDialog Send Coins - Send bitcoins + Send veriums Coin Control Features @@ -2341,8 +2341,8 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Støv: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - På tidspunkter, hvor der er færre transaktioner, end der er plads til i nye blokke, kan minere og videresendende knuder gennemtvinge et minimumsgebyr. Du kan vælge kun at betale dette minimumsgebyr, men vær opmærksom på, at det kan resultere i en transaktion, der aldrig bliver bekræftet, hvis mængden af nye bitcoin-transaktioner stiger til mere, end hvad netværket kan behandle ad gangen. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + På tidspunkter, hvor der er færre transaktioner, end der er plads til i nye blokke, kan minere og videresendende knuder gennemtvinge et minimumsgebyr. Du kan vælge kun at betale dette minimumsgebyr, men vær opmærksom på, at det kan resultere i en transaktion, der aldrig bliver bekræftet, hvis mængden af nye verium-transaktioner stiger til mere, end hvad netværket kan behandle ad gangen. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2454,7 +2454,7 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Confirm send coins - Bekræft afsendelse af bitcoins + Bekræft afsendelse af veriums The recipient address is not valid. Please recheck. @@ -2560,8 +2560,8 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Fjern denne indgang - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Gebyret vil blive trukket fra det sendte beløb. Modtageren vil modtage færre bitcoin, end du indtaster i beløbfeltet. Hvis flere modtagere vælges, vil gebyret deles ligeligt. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Gebyret vil blive trukket fra det sendte beløb. Modtageren vil modtage færre verium, end du indtaster i beløbfeltet. Hvis flere modtagere vælges, vil gebyret deles ligeligt. S&ubtract fee from amount @@ -2588,7 +2588,7 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Indtast et mærkat for denne adresse for at føje den til listen over brugte adresser - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. En besked, som blev føjet til “bitcon:”-URI'en, som vil gemmes med transaktionen til din reference. Bemærk: Denne besked vil ikke blive sendt over Verium-netværket. @@ -2633,8 +2633,8 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos &Singér besked - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Du kan signere beskeder/aftaler med dine adresser for at bevise, at du kan modtage bitcoin, der bliver sendt til adresserne. Vær forsigtig med ikke at signere noget vagt eller tilfældigt, da eventuelle phishing-angreb kan snyde dig til at overlade din identitet til dem. Signér kun fuldt ud detaljerede udsagn, som du er enig i. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Du kan signere beskeder/aftaler med dine adresser for at bevise, at du kan modtage verium, der bliver sendt til adresserne. Vær forsigtig med ikke at signere noget vagt eller tilfældigt, da eventuelle phishing-angreb kan snyde dig til at overlade din identitet til dem. Signér kun fuldt ud detaljerede udsagn, som du er enig i. The Verium address to sign the message with @@ -2912,7 +2912,7 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Minede bitcoins skal modne %1 blokke, før de kan bruges. Da du genererede denne blok, blev den transmitteret til netværket for at blive føjet til blokkæden. Hvis det ikke lykkes at få den i kæden, vil dens tilstand ændres til “ikke accepteret”, og den vil ikke kunne bruges. Dette kan ske nu og da, hvis en anden knude udvinder en blok inden for nogle få sekunder fra din. + Minede veriums skal modne %1 blokke, før de kan bruges. Da du genererede denne blok, blev den transmitteret til netværket for at blive føjet til blokkæden. Hvis det ikke lykkes at få den i kæden, vil dens tilstand ændres til “ikke accepteret”, og den vil ikke kunne bruges. Dette kan ske nu og da, hvis en anden knude udvinder en blok inden for nogle få sekunder fra din. Debug information @@ -3249,7 +3249,7 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos WalletModel Send Coins - Send bitcoins + Send veriums Fee bump error @@ -3332,7 +3332,7 @@ Note: Siden gebyret er kalkuleret på en per-byte basis, et gebyr på "100 satos - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribueret under MIT-softwarelicensen; se den vedlagte fil %s eller %s diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index 5178b2df55..4d44cb2e66 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -188,7 +188,7 @@ Geben Sie die alte und die neue Wallet-Passphrase ein. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. Beachten Sie, dass das Verschlüsseln Ihrer Wallet nicht komplett vor Diebstahl Ihrer Veriums durch Malware schützt, die Ihren Computer infiziert hat. @@ -430,8 +430,8 @@ Registerkartenleiste - Request payments (generates QR codes and bitcoin: URIs) - Zahlungen anfordern (erzeugt QR-Codes und "bitcoin:"-URIs) + Request payments (generates QR codes and verium: URIs) + Zahlungen anfordern (erzeugt QR-Codes und "verium:"-URIs) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Liste verwendeter Empfangsadressen und Bezeichnungen anzeigen - Open a bitcoin: URI or payment request - Eine "bitcoin:"-URI oder Zahlungsanforderung öffnen + Open a verium: URI or payment request + Eine "verium:"-URI oder Zahlungsanforderung öffnen &Command-line options @@ -1026,11 +1026,11 @@ Formular - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Neueste Transaktionen werden eventuell noch nicht angezeigt, daher könnte Ihr Kontostand veraltet sein. Er wird korrigiert, sobald Ihr Wallet die Synchronisation mit dem Verium-Netzwerk erfolgreich abgeschlossen hat. Details dazu finden sich weiter unten. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. Versuche, Veriums aus noch nicht angezeigten Transaktionen auszugeben, werden vom Netzwerk nicht akzeptiert. @@ -1469,7 +1469,7 @@ Fehler bei der Zahlungsanforderung - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Kann Verium nicht starten: Klicken-zum-Bezahlen-Handler @@ -1477,8 +1477,8 @@ URI-Verarbeitung - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' ist kein gültiger URL. Bitte 'bitcoin:' nutzen. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' ist kein gültiger URL. Bitte 'verium:' nutzen. You are using a BIP70 URL which will be unsupported in the future. @@ -2341,7 +2341,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio "Dust": - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. Nur die minimale Gebühr zu bezahlen ist so lange in Ordnung, wie weniger Transaktionsvolumen als Platz in den Blöcken vorhanden ist. Aber Vorsicht, diese Option kann dazu führen, dass Transaktionen nicht bestätigt werden, wenn mehr Bedarf an Verium-Transaktionen besteht als das Netzwerk verarbeiten kann. @@ -2560,7 +2560,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Diesen Eintrag entfernen - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. Die Gebühr wird vom zu überweisenden Betrag abgezogen. Der Empfänger wird also weniger Veriums erhalten, als Sie im Betrags-Feld eingegeben haben. Falls mehrere Empfänger ausgewählt wurden, wird die Gebühr gleichmäßig verteilt. @@ -2588,8 +2588,8 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Adressbezeichnung eingeben, die dann zusammen mit der Adresse der Liste bereits verwendeter Adressen hinzugefügt wird. - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Eine an die "bitcoin:"-URI angefügte Nachricht, die zusammen mit der Transaktion gespeichert wird. Hinweis: Diese Nachricht wird nicht über das Verium-Netzwerk gesendet. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Eine an die "verium:"-URI angefügte Nachricht, die zusammen mit der Transaktion gespeichert wird. Hinweis: Diese Nachricht wird nicht über das Verium-Netzwerk gesendet. Pay To: @@ -2633,7 +2633,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio Nachricht &signieren - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. Sie können Nachrichten/Vereinbarungen mit Hilfe Ihrer Adressen signieren, um zu beweisen, dass Sie Veriums empfangen können, die an diese Adressen überwiesen werden. Seien Sie vorsichtig und signieren Sie nichts Vages oder Willkürliches, um Ihre Indentität vor Phishingangriffen zu schützen. Signieren Sie nur vollständig-detaillierte Aussagen, mit denen Sie auch einverstanden sind. @@ -3332,7 +3332,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Veröffentlicht unter der MIT-Softwarelizenz, siehe beiliegende Datei %s oder %s. diff --git a/src/qt/locale/bitcoin_el.ts b/src/qt/locale/bitcoin_el.ts index ba3143cc5b..071abb70de 100644 --- a/src/qt/locale/bitcoin_el.ts +++ b/src/qt/locale/bitcoin_el.ts @@ -319,7 +319,7 @@ Send coins to a Verium address - Στείλε νομίσματα σε μια διεύθυνση bitcoin + Στείλε νομίσματα σε μια διεύθυνση verium Backup wallet to another location @@ -386,8 +386,8 @@ Εργαλειοθήκη καρτελών - Request payments (generates QR codes and bitcoin: URIs) - Αίτηση πληρωμών (δημιουργεί QR codes και διευθύνσεις bitcoin: ) + Request payments (generates QR codes and verium: URIs) + Αίτηση πληρωμών (δημιουργεί QR codes και διευθύνσεις verium: ) Show the list of used sending addresses and labels @@ -398,8 +398,8 @@ Προβολή της λίστας των χρησιμοποιημένων διευθύνσεων και ετικετών λήψεως - Open a bitcoin: URI or payment request - Άνοιγμα bitcoin: URI αίτησης πληρωμής + Open a verium: URI or payment request + Άνοιγμα verium: URI αίτησης πληρωμής &Command-line options @@ -1077,8 +1077,8 @@ Σφάλμα αίτησης πληρωμής - Cannot start bitcoin: click-to-pay handler - Δεν είναι δυνατή η εκκίνηση του bitcoin: χειριστής click-to-pay + Cannot start verium: click-to-pay handler + Δεν είναι δυνατή η εκκίνηση του verium: χειριστής click-to-pay URI handling @@ -1968,7 +1968,7 @@ - bitcoin-core + verium-core Corrupted block database detected Εντοπίσθηκε διεφθαρμένη βάση δεδομένων των μπλοκ diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 06519edf04..8c3d7e1a73 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -237,7 +237,7 @@ - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. @@ -325,7 +325,7 @@ VeriumGUI - + Sign &message... Sign &message... @@ -546,7 +546,7 @@ - Request payments (generates QR codes and bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) @@ -561,7 +561,7 @@ - Open a bitcoin: URI or payment request + Open a verium: URI or payment request @@ -792,7 +792,7 @@ Wallet is <b>encrypted</b> and currently <b>locked</b> - + A fatal error occurred. Verium can no longer continue safely and will quit. @@ -1294,12 +1294,12 @@ - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -1861,7 +1861,7 @@ - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler @@ -1876,7 +1876,7 @@ - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. + 'verium://' is not a valid URI. Use 'verium:' instead. @@ -2041,7 +2041,7 @@ QObject - + Amount Amount @@ -2161,7 +2161,7 @@ - + Error: Specified data directory "%1" does not exist. @@ -3020,7 +3020,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. @@ -3302,7 +3302,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. @@ -3337,7 +3337,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. @@ -3394,7 +3394,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. @@ -4154,7 +4154,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos UnitDisplayStatusBarControl - + Unit to show amounts in. Click to select another unit. @@ -4294,9 +4294,9 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos - bitcoin-core + verium-core - + Distributed under the MIT software license, see the accompanying file %s or %s diff --git a/src/qt/locale/bitcoin_en_GB.ts b/src/qt/locale/bitcoin_en_GB.ts index 43a55cc508..ce61a92522 100644 --- a/src/qt/locale/bitcoin_en_GB.ts +++ b/src/qt/locale/bitcoin_en_GB.ts @@ -188,7 +188,7 @@ Enter the old passphrase and new passphrase for the wallet. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. Remember that encrypting your wallet cannot fully protect your Veriums from being stolen by malware infecting your computer. @@ -430,8 +430,8 @@ Tabs toolbar - Request payments (generates QR codes and bitcoin: URIs) - Request payments (generates QR codes and bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + Request payments (generates QR codes and verium: URIs) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Show the list of used receiving addresses and labels - Open a bitcoin: URI or payment request - Open a bitcoin: URI or payment request + Open a verium: URI or payment request + Open a verium: URI or payment request &Command-line options @@ -1026,11 +1026,11 @@ Form - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronising with the Verium network, as detailed below. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. Attempting to spend Veriums that are affected by not-yet-displayed transactions will not be accepted by the network. @@ -1469,7 +1469,7 @@ Payment request error - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Cannot start Verium: click-to-pay handler @@ -1477,8 +1477,8 @@ URI handling - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' is not a valid URI. Use 'verium:' instead. You are using a BIP70 URL which will be unsupported in the future. @@ -2341,8 +2341,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Dust: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2560,8 +2560,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Remove this entry - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. S&ubtract fee from amount @@ -2588,8 +2588,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Enter a label for this address to add it to the list of used addresses - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. Pay To: @@ -2633,8 +2633,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p &Sign Message - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. The Verium address to sign the message with @@ -3332,7 +3332,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distributed under the MIT software license, see the accompanying file %s or %s. diff --git a/src/qt/locale/bitcoin_eo.ts b/src/qt/locale/bitcoin_eo.ts index 98f2147249..a215edc21f 100644 --- a/src/qt/locale/bitcoin_eo.ts +++ b/src/qt/locale/bitcoin_eo.ts @@ -350,8 +350,8 @@ Langeto-breto - Request payments (generates QR codes and bitcoin: URIs) - Peti pagon (kreas QR-kodojn kaj URI-ojn kun prefikso bitcoin:) + Request payments (generates QR codes and verium: URIs) + Peti pagon (kreas QR-kodojn kaj URI-ojn kun prefikso verium:) Show the list of used sending addresses and labels @@ -362,8 +362,8 @@ Vidigi la liston de uzitaj ricevaj adresoj kaj etikedoj - Open a bitcoin: URI or payment request - Malfermi bitcoin:-URI-on aŭ pagpeton + Open a verium: URI or payment request + Malfermi verium:-URI-on aŭ pagpeton &Command-line options @@ -1882,7 +1882,7 @@ - bitcoin-core + verium-core This is a pre-release test build - use at your own risk - do not use for mining or merchant applications Tiu ĉi estas antaŭeldona testa versio - uzu laŭ via propra risko - ne uzu por minado aŭ por aplikaĵoj por vendistoj diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index 7fce6559d5..ff335a778b 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -188,8 +188,8 @@ Introduzca la contraseña antigua y la nueva para el monedero. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Recuerde que cifrar su monedero no garantiza mantener a salvo sus bitcoins en caso de tener virus en el computador. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Recuerde que cifrar su monedero no garantiza mantener a salvo sus veriums en caso de tener virus en el computador. Wallet to be encrypted @@ -430,7 +430,7 @@ Barra de pestañas - Request payments (generates QR codes and bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) Solicitar pagos (genera código QR y URL's de Verium) @@ -442,8 +442,8 @@ Muestra la lista de direcciones de recepción y etiquetas - Open a bitcoin: URI or payment request - Abrir un identificador URI de bitcoin o una solicitud de pago + Open a verium: URI or payment request + Abrir un identificador URI de verium o una solicitud de pago &Command-line options @@ -1022,12 +1022,12 @@ Formulario - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Es posible que las transacciones recientes aún no estén visibles y, por lo tanto, el saldo de su monedero podría ser incorrecto. Esta información será correcta una vez que su monedero haya terminado de sincronizarse con la red bitcoin, como se detalla a continuación. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Es posible que las transacciones recientes aún no estén visibles y, por lo tanto, el saldo de su monedero podría ser incorrecto. Esta información será correcta una vez que su monedero haya terminado de sincronizarse con la red verium, como se detalla a continuación. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - La red no aceptará intentar gastar bitcoins que se vean afectados por transacciones aún no mostradas. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + La red no aceptará intentar gastar veriums que se vean afectados por transacciones aún no mostradas. Number of blocks left @@ -1461,7 +1461,7 @@ Error de solicitud de pago - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler No se puede iniciar Verium: controlador de clic para pagar @@ -1469,8 +1469,8 @@ Manejo de URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin: //' no es un URI válido. Use 'bitcoin:' en su lugar. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium: //' no es un URI válido. Use 'verium:' en su lugar. You are using a BIP70 URL which will be unsupported in the future. @@ -2333,7 +2333,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Polvo: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. Cuando hay menos volumen de transacciones que espacio en los bloques, los mineros y los nodos de retransmisión pueden imponer una comisión mínima. Pagar solo esta comisión mínima está bien, pero tenga en cuenta que esto puede resultar en una transacción nunca confirmada una vez que haya más demanda de transacciones de Verium de la que la red puede procesar. @@ -2552,8 +2552,8 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Eliminar esta entrada. - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - La comisión será deducida de la cantidad que sea enviada. El destinatario recibirá menos bitcoins que la cantidad introducida en el campo Cantidad. Si hay varios destinatarios seleccionados, la comisión será distribuida a partes iguales. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + La comisión será deducida de la cantidad que sea enviada. El destinatario recibirá menos veriums que la cantidad introducida en el campo Cantidad. Si hay varios destinatarios seleccionados, la comisión será distribuida a partes iguales. S&ubtract fee from amount @@ -2580,8 +2580,8 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Introduzca una etiqueta para esta dirección para añadirla a la lista de direcciones utilizadas - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Un mensaje que se adjuntó a la bitcoin: URL que será almacenada con la transacción para su referencia. Nota: Este mensaje no se envía a través de la red Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Un mensaje que se adjuntó a la verium: URL que será almacenada con la transacción para su referencia. Nota: Este mensaje no se envía a través de la red Verium. Pay To: @@ -2625,7 +2625,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis &Firmar mensaje - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. Puede firmar los mensajes con sus direcciones para demostrar que las posee. Tenga cuidado de no firmar cualquier cosa de manera vaga o aleatoria, pues los ataques de phishing pueden tratar de engañarle firmando su identidad a través de ellos. Sólo firme declaraciones totalmente detalladas con las que usted esté de acuerdo. @@ -2904,7 +2904,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Los bitcoins generados deben madurar %1 bloques antes de que puedan gastarse. Cuando generó este bloque, se transmitió a la red para que se añadiera a la cadena de bloques. Si no consigue entrar en la cadena, su estado cambiará a "no aceptado" y ya no se podrá gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque a pocos segundos del suyo. + Los veriums generados deben madurar %1 bloques antes de que puedan gastarse. Cuando generó este bloque, se transmitió a la red para que se añadiera a la cadena de bloques. Si no consigue entrar en la cadena, su estado cambiará a "no aceptado" y ya no se podrá gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque a pocos segundos del suyo. Debug information @@ -3324,7 +3324,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuido bajo la licencia de software MIT, vea el archivo adjunto %s o %s diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/bitcoin_es_CL.ts index 5966f1a923..41fd3d8bbb 100644 --- a/src/qt/locale/bitcoin_es_CL.ts +++ b/src/qt/locale/bitcoin_es_CL.ts @@ -173,8 +173,8 @@ Exportar los datos en la pestaña actual a un archivo Billetera encriptada - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Recuerda que codificando tu billetera no garantiza mantener a salvo tus bitcoins en caso de tener virus en el computador. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Recuerda que codificando tu billetera no garantiza mantener a salvo tus veriums en caso de tener virus en el computador. IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -395,8 +395,8 @@ Exportar los datos en la pestaña actual a un archivo Barra de herramientas de pestañas - Request payments (generates QR codes and bitcoin: URIs) - Solicitar pagos (genera códigos QR y bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + Solicitar pagos (genera códigos QR y verium: URIs) Show the list of used sending addresses and labels @@ -407,8 +407,8 @@ Exportar los datos en la pestaña actual a un archivo Mostrar la lista de direcciones y etiquetas de recepción usadas - Open a bitcoin: URI or payment request - Abra un bitcoin: URI o solicitud de pago + Open a verium: URI or payment request + Abra un verium: URI o solicitud de pago &Command-line options @@ -883,12 +883,12 @@ Exportar los datos en la pestaña actual a un archivo Formar - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Es posible que las transacciones recientes aún no estén visibles y, por lo tanto, el saldo de su billetera podría ser incorrecto. Esta información será correcta una vez que su billetera haya terminado de sincronizarse con la red bitcoin, como se detalla a continuación. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Es posible que las transacciones recientes aún no estén visibles y, por lo tanto, el saldo de su billetera podría ser incorrecto. Esta información será correcta una vez que su billetera haya terminado de sincronizarse con la red verium, como se detalla a continuación. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - La red no aceptará intentar gastar bitcoins que se vean afectados por transacciones aún no mostradas + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + La red no aceptará intentar gastar veriums que se vean afectados por transacciones aún no mostradas Number of blocks left @@ -1286,7 +1286,7 @@ Exportar los datos en la pestaña actual a un archivo Error de solicitud de pago - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler No se puede iniciar Verium: controlador de clic para pagar @@ -2923,7 +2923,7 @@ Exportar los datos en la pestaña actual a un archivo - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuido bajo la licencia de software MIT, vea el archivo adjunto %s o %s diff --git a/src/qt/locale/bitcoin_es_CO.ts b/src/qt/locale/bitcoin_es_CO.ts index db498b2ce6..9c9b345ba9 100644 --- a/src/qt/locale/bitcoin_es_CO.ts +++ b/src/qt/locale/bitcoin_es_CO.ts @@ -323,7 +323,7 @@ Send coins to a Verium address - Enviar monedas a una dirección bitcoin + Enviar monedas a una dirección verium Backup wallet to another location @@ -390,8 +390,8 @@ Barra de pestañas - Request payments (generates QR codes and bitcoin: URIs) - Pide pagos (genera codigos QR and bitcoin: URls) + Request payments (generates QR codes and verium: URIs) + Pide pagos (genera codigos QR and verium: URls) Show the list of used sending addresses and labels @@ -402,8 +402,8 @@ Mostrar la lista de direcciones de recepción y etiquetas - Open a bitcoin: URI or payment request - Abrir un identificador URI bitcoin o una petición de pago + Open a verium: URI or payment request + Abrir un identificador URI verium o una petición de pago &Command-line options @@ -879,12 +879,12 @@ Formulario - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Las transacciones recientes aún no pueden ser visibles, y por lo tanto el saldo de su monedero podría ser incorrecto. Esta información será correcta cuando su monedero haya terminado de sincronizarse con la red de bitcoin, como se detalla abajo. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Las transacciones recientes aún no pueden ser visibles, y por lo tanto el saldo de su monedero podría ser incorrecto. Esta información será correcta cuando su monedero haya terminado de sincronizarse con la red de verium, como se detalla abajo. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - La red no aceptará el intentar gastar bitcoins que están afectados por transacciones aún no mostradas. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + La red no aceptará el intentar gastar veriums que están afectados por transacciones aún no mostradas. Number of blocks left @@ -1283,7 +1283,7 @@ Error en la solicitud de pago - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler No se puede iniciar Verium: controlador de clic para pagar @@ -2920,7 +2920,7 @@ - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuido bajo la licencia de software MIT, vea el archivo adjunto %s o %s diff --git a/src/qt/locale/bitcoin_es_DO.ts b/src/qt/locale/bitcoin_es_DO.ts index 9c9b8b5201..d879d25380 100644 --- a/src/qt/locale/bitcoin_es_DO.ts +++ b/src/qt/locale/bitcoin_es_DO.ts @@ -312,7 +312,7 @@ Barra de pestañas - Request payments (generates QR codes and bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) Solicitar pagos (genera codigo QR y URL's de Verium) @@ -324,8 +324,8 @@ Muestra la lista de direcciones de recepción y etiquetas - Open a bitcoin: URI or payment request - Abrir un bitcoin: URI o petición de pago + Open a verium: URI or payment request + Abrir un verium: URI o petición de pago &Command-line options @@ -1374,7 +1374,7 @@ - bitcoin-core + verium-core Corrupted block database detected Corrupción de base de datos de bloques detectada. diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/bitcoin_es_MX.ts index 153dc687d3..d3d5bc74ec 100644 --- a/src/qt/locale/bitcoin_es_MX.ts +++ b/src/qt/locale/bitcoin_es_MX.ts @@ -391,9 +391,9 @@ Haga clic para habilitar la actividad de red nuevamente. Pestañas - Request payments (generates QR codes and bitcoin: URIs) + Request payments (generates QR codes and verium: URIs)   -Solicitar pagos (genera códigos QR y bitcoin: URI) +Solicitar pagos (genera códigos QR y verium: URI)   @@ -879,7 +879,7 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) - bitcoin-core + verium-core Verifying blocks... Verificando bloques... diff --git a/src/qt/locale/bitcoin_es_VE.ts b/src/qt/locale/bitcoin_es_VE.ts index 2571991c5d..7268ec2aaf 100644 --- a/src/qt/locale/bitcoin_es_VE.ts +++ b/src/qt/locale/bitcoin_es_VE.ts @@ -314,7 +314,7 @@ Barra de pestañas - Request payments (generates QR codes and bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) Solicitar pagos (genera codigo QR y URL's de Verium) @@ -326,8 +326,8 @@ Muestra la lista de direcciones de recepción y etiquetas - Open a bitcoin: URI or payment request - Abrir un bitcoin: URI o petición de pago + Open a verium: URI or payment request + Abrir un verium: URI o petición de pago &Command-line options @@ -1404,7 +1404,7 @@ - bitcoin-core + verium-core Corrupted block database detected Corrupción de base de datos de bloques detectada. diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/bitcoin_et.ts index b9ac23be73..bf5fa86a0b 100644 --- a/src/qt/locale/bitcoin_et.ts +++ b/src/qt/locale/bitcoin_et.ts @@ -350,12 +350,12 @@ Vahelehe tööriistariba - Request payments (generates QR codes and bitcoin: URIs) - Loo maksepäring (genereerib QR koodid ja bitcoini: URId) + Request payments (generates QR codes and verium: URIs) + Loo maksepäring (genereerib QR koodid ja veriumi: URId) - Open a bitcoin: URI or payment request - Ava bitcoini: URI või maksepäring + Open a verium: URI or payment request + Ava veriumi: URI või maksepäring &Command-line options @@ -1922,7 +1922,7 @@ - bitcoin-core + verium-core This is a pre-release test build - use at your own risk - do not use for mining or merchant applications See on test-versioon - kasutamine omal riisikol - ära kasuta mining'uks ega kaupmeeste programmides diff --git a/src/qt/locale/bitcoin_eu.ts b/src/qt/locale/bitcoin_eu.ts index 630f932448..f95546559a 100644 --- a/src/qt/locale/bitcoin_eu.ts +++ b/src/qt/locale/bitcoin_eu.ts @@ -188,8 +188,8 @@ Diruzorroaren pasahitz zahar zein berria sartu. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Gogoan izan diruzorroaren enkripzioak ezin dituela zure bitcoinak zure ordenagailuan izan dezakezun malware batengandik lapurtuak izatetik guztiz babestu . + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Gogoan izan diruzorroaren enkripzioak ezin dituela zure veriumak zure ordenagailuan izan dezakezun malware batengandik lapurtuak izatetik guztiz babestu . Wallet to be encrypted @@ -1218,7 +1218,7 @@ - bitcoin-core + verium-core Loading wallet... Diru-zorroa kargatzen diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts index 4e3a233f81..e12f31fc61 100644 --- a/src/qt/locale/bitcoin_fa.ts +++ b/src/qt/locale/bitcoin_fa.ts @@ -172,7 +172,7 @@ کیف پول رمزگذاری شده است - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. والت رمز بندی شد . یاد داشته باشید که پنجره رمز شده نمی تواند کلا از سرقت نرم افزارهای مخرب محافظ کند @@ -395,7 +395,7 @@ نوار ابزار - Request payments (generates QR codes and bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) درخواست پرداخت (ساخت کد QR و بیت‌کوین: URIs) @@ -407,7 +407,7 @@ نمایش لیست آدرس‌ها و لیبل‌های دریافتی استفاده شده - Open a bitcoin: URI or payment request + Open a verium: URI or payment request بازکردن بیت‌کوین: آدرس یا درخواست پرداخت @@ -1109,7 +1109,7 @@ The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. - اطلاعات نمایش داده شده ممکن است روزآمد نباشد. wallet شما به صورت خودکار بعد از برقراری اتصال با شبکه bitcoin به روز می شود اما این فرایند هنوز تکمیل نشده است. + اطلاعات نمایش داده شده ممکن است روزآمد نباشد. wallet شما به صورت خودکار بعد از برقراری اتصال با شبکه verium به روز می شود اما این فرایند هنوز تکمیل نشده است. Watch-only: @@ -2591,7 +2591,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p - bitcoin-core + verium-core The %s developers %s توسعه دهندگان diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index f8d45297e4..5a4ed7eaf2 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -188,8 +188,8 @@ Syötä vanha ja uusi salasanalause lompakolle. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Muista, että salaamalla lompakkosi et täysin pysty suojaamaan bitcoineja varkaudelta, jotka aiheutuvat koneellasi olevista haittaohjelmista. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Muista, että salaamalla lompakkosi et täysin pysty suojaamaan veriumeja varkaudelta, jotka aiheutuvat koneellasi olevista haittaohjelmista. Wallet to be encrypted @@ -430,8 +430,8 @@ Välilehtipalkki - Request payments (generates QR codes and bitcoin: URIs) - Pyydä maksuja (Luo QR koodit ja bitcoin: URIt) + Request payments (generates QR codes and verium: URIs) + Pyydä maksuja (Luo QR koodit ja verium: URIt) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Näytä vastaanottamiseen käytettyjen osoitteiden ja nimien lista - Open a bitcoin: URI or payment request - Avaa bitcoin: URI tai maksupyyntö + Open a verium: URI or payment request + Avaa verium: URI tai maksupyyntö &Command-line options @@ -1010,12 +1010,12 @@ Lomake - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Viimeiset tapahtumat eivät välttämättä vielä näy, joten lompakkosi saldo voi olla virheellinen. Tieto korjautuu, kunhan lompakkosi synkronointi bitcoin-verkon kanssa on päättynyt. Tiedot näkyvät alla. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Viimeiset tapahtumat eivät välttämättä vielä näy, joten lompakkosi saldo voi olla virheellinen. Tieto korjautuu, kunhan lompakkosi synkronointi verium-verkon kanssa on päättynyt. Tiedot näkyvät alla. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Verkko ei tule hyväksymään sellaisten bitcoinien käyttämistä, jotka liittyvät vielä näkymättömissä oleviin siirtoihin. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Verkko ei tule hyväksymään sellaisten veriumien käyttämistä, jotka liittyvät vielä näkymättömissä oleviin siirtoihin. Number of blocks left @@ -1296,11 +1296,11 @@ &Unit to show amounts in: - Yksikkö jona bitcoin-määrät näytetään + Yksikkö jona verium-määrät näytetään Choose the default subdivision unit to show in the interface and when sending coins. - Valitse mitä yksikköä käytetään ensisijaisesti bitcoin-määrien näyttämiseen. + Valitse mitä yksikköä käytetään ensisijaisesti verium-määrien näyttämiseen. Whether to show coin control features or not. @@ -1449,7 +1449,7 @@ Maksupyyntövirhe - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Veriumia ei voi käynnistää: klikkaa-maksaaksesi -käsittelijän virhe @@ -1457,8 +1457,8 @@ URI käsittely - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' ei ole kelvollinen URI. Käytä 'bitcoin:' sen sijaan. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' ei ole kelvollinen URI. Käytä 'verium:' sen sijaan. You are using a BIP70 URL which will be unsupported in the future. @@ -2309,8 +2309,8 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Tomu: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Mikäli lohkoissa ei ole tilaa kaikille siirtotapahtumille, voi louhijat sekä välittävät solmut pakottaa vähimmäispalkkion. Tämän vähimmäispalkkion maksaminen on täysin OK, mutta huomaa, että se saattaa johtaa siihen, ettei siirto vahvistu koskaan, jos bitcoin-siirtoja on enemmän kuin mitä verkko pystyy käsittelemään. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + Mikäli lohkoissa ei ole tilaa kaikille siirtotapahtumille, voi louhijat sekä välittävät solmut pakottaa vähimmäispalkkion. Tämän vähimmäispalkkion maksaminen on täysin OK, mutta huomaa, että se saattaa johtaa siihen, ettei siirto vahvistu koskaan, jos verium-siirtoja on enemmän kuin mitä verkko pystyy käsittelemään. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2516,8 +2516,8 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Poista tämä alkio - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Kulu vähennetään lähetettävästä määrästä. Saaja vastaanottaa vähemmän bitcoineja kuin merkitset Määrä-kenttään. Jos saajia on monia, kulu jaetaan tasan. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Kulu vähennetään lähetettävästä määrästä. Saaja vastaanottaa vähemmän veriumeja kuin merkitset Määrä-kenttään. Jos saajia on monia, kulu jaetaan tasan. S&ubtract fee from amount @@ -2544,8 +2544,8 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t Aseta nimi tälle osoitteelle lisätäksesi sen käytettyjen osoitteiden listalle. - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Viesti joka liitettiin bitcoin: URI:iin tallennetaan rahansiirtoon viitteeksi. Tätä viestiä ei lähetetä Verium-verkkoon. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Viesti joka liitettiin verium: URI:iin tallennetaan rahansiirtoon viitteeksi. Tätä viestiä ei lähetetä Verium-verkkoon. Pay To: @@ -2589,8 +2589,8 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t &Allekirjoita viesti - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Voit allekirjoittaa viestit / sopimukset omalla osoitteellasi todistaaksesi että voit vastaanottaa siihen lähetetyt bitcoinit. Varo allekirjoittamasta mitään epämääräistä, sillä phishing-hyökkääjät voivat huijata sinua luovuttamaan henkilöllisyytesi allekirjoituksella. Allekirjoita ainoastaan täysin yksityiskohtainen selvitys siitä, mihin olet sitoutumassa. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Voit allekirjoittaa viestit / sopimukset omalla osoitteellasi todistaaksesi että voit vastaanottaa siihen lähetetyt veriumit. Varo allekirjoittamasta mitään epämääräistä, sillä phishing-hyökkääjät voivat huijata sinua luovuttamaan henkilöllisyytesi allekirjoituksella. Allekirjoita ainoastaan täysin yksityiskohtainen selvitys siitä, mihin olet sitoutumassa. The Verium address to sign the message with @@ -3276,7 +3276,7 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Jaettu MIT -ohjelmistolisenssin alaisuudessa, katso mukana tuleva %s tiedosto tai %s diff --git a/src/qt/locale/bitcoin_fil.ts b/src/qt/locale/bitcoin_fil.ts index 0004c39a53..b636120cfb 100644 --- a/src/qt/locale/bitcoin_fil.ts +++ b/src/qt/locale/bitcoin_fil.ts @@ -390,8 +390,8 @@ Tabs toolbar - Request payments (generates QR codes and bitcoin: URIs) - Humiling ng bayad (lumilikha ng QR codes at bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + Humiling ng bayad (lumilikha ng QR codes at verium: URIs) Show the list of used sending addresses and labels @@ -402,8 +402,8 @@ Ipakita ang talaan ng mga gamit na address at label para sa pagtanggap - Open a bitcoin: URI or payment request - Buksan ang bitcoin: URI o kahilingan ng bayad + Open a verium: URI or payment request + Buksan ang verium: URI o kahilingan ng bayad &Command-line options @@ -910,12 +910,12 @@ Anyo - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Ang mga bagong transaksyon ay hindi pa makikita kaya ang balanse ng iyong walet ay maaaring hindi tama. Ang impormasyong ito ay maiitama pagkatapos ma-synchronize ng iyong walet sa bitcoin network, ayon sa ibaba. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Ang mga bagong transaksyon ay hindi pa makikita kaya ang balanse ng iyong walet ay maaaring hindi tama. Ang impormasyong ito ay maiitama pagkatapos ma-synchronize ng iyong walet sa verium network, ayon sa ibaba. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Ang pagtangkang gastusin ang mga bitcoin na apektado ng mga transaksyon na hindi pa naipapakita ay hindi tatanggapin ng network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Ang pagtangkang gastusin ang mga verium na apektado ng mga transaksyon na hindi pa naipapakita ay hindi tatanggapin ng network. Number of blocks left @@ -1341,16 +1341,16 @@ Kamalian sa paghiling ng bayad - Cannot start bitcoin: click-to-pay handler - Hindi masimulan ang bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler + Hindi masimulan ang verium: click-to-pay handler URI handling URI handling - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - Ang 'bitcoin://' ay hindi wastong URI. Sa halip, gamitin ang 'bitcoin:'. + 'verium://' is not a valid URI. Use 'verium:' instead. + Ang 'verium://' ay hindi wastong URI. Sa halip, gamitin ang 'verium:'. You are using a BIP70 URL which will be unsupported in the future. @@ -2197,8 +2197,8 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Dust: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Kapag mas kaunti ang dami ng transaksyon kaysa sa puwang sa mga blocks, ang mga minero pati na rin ang mga relaying node ay maaaring magpatupad ng minimum na bayad. Ang pagbabayad lamang ng minimum na bayad na ito ay maayos, ngunit malaman na maaari itong magresulta sa hindi kailanmang nagkukumpirmang transaksyon sa sandaling magkaroon ng higit na pangangailangan para sa mga transaksyon ng bitcoin kaysa sa kayang i-proseso ng network. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + Kapag mas kaunti ang dami ng transaksyon kaysa sa puwang sa mga blocks, ang mga minero pati na rin ang mga relaying node ay maaaring magpatupad ng minimum na bayad. Ang pagbabayad lamang ng minimum na bayad na ito ay maayos, ngunit malaman na maaari itong magresulta sa hindi kailanmang nagkukumpirmang transaksyon sa sandaling magkaroon ng higit na pangangailangan para sa mga transaksyon ng verium kaysa sa kayang i-proseso ng network. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2404,8 +2404,8 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Alisin ang entry na ito - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Ibabawas ang bayad mula sa halagang ipapadala. Ang tatanggap ay makakatanggap ng mas kaunting mga bitcoin kaysa sa pinasok mo sa patlang ng halaga. Kung napili ang maraming tatanggap, ang bayad ay paghihiwalayin. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Ibabawas ang bayad mula sa halagang ipapadala. Ang tatanggap ay makakatanggap ng mas kaunting mga verium kaysa sa pinasok mo sa patlang ng halaga. Kung napili ang maraming tatanggap, ang bayad ay paghihiwalayin. S&ubtract fee from amount @@ -2432,8 +2432,8 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Mag-enter ng label para sa address na ito upang idagdag ito sa listahan ng mga gamit na address. - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Mensahe na nakalakip sa bitcoin: URI na kung saan maiimbak kasama ang transaksyon para sa iyong sanggunian. Tandaan: Ang mensaheng ito ay hindi ipapadala sa network ng Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Mensahe na nakalakip sa verium: URI na kung saan maiimbak kasama ang transaksyon para sa iyong sanggunian. Tandaan: Ang mensaheng ito ay hindi ipapadala sa network ng Verium. Pay To: @@ -2477,8 +2477,8 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng Pirmahan ang Mensahe - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Maaari kang pumirma ng mga mensahe/kasunduan sa iyong mga address upang mapatunayan na maaari kang makatanggap ng mga bitcoin na ipinadala sa kanila. Mag-ingat na huwag pumirma ng anumang bagay na hindi malinaw o random, dahil ang mga phishing attack ay maaaring subukan na linlangin ka sa pagpirma ng iyong pagkakakilanlan sa kanila. Pumirma lamang ng kumpletong mga pahayag na sumasang-ayon ka. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Maaari kang pumirma ng mga mensahe/kasunduan sa iyong mga address upang mapatunayan na maaari kang makatanggap ng mga verium na ipinadala sa kanila. Mag-ingat na huwag pumirma ng anumang bagay na hindi malinaw o random, dahil ang mga phishing attack ay maaaring subukan na linlangin ka sa pagpirma ng iyong pagkakakilanlan sa kanila. Pumirma lamang ng kumpletong mga pahayag na sumasang-ayon ka. The Verium address to sign the message with @@ -3168,7 +3168,7 @@ Tandaan: Dahil ang bayad ay kinakalkula sa bawat-byte na batayan, ang bayad ng - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Naipamahagi sa ilalim ng lisensya ng MIT software, tingnan ang kasamang file %s o %s diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index 699a773ef7..9ccf46fec3 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -188,8 +188,8 @@ Saisir l’ancienne puis la nouvelle phrase de passe du porte-monnaie. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - N’oubliez pas que le chiffrement de votre porte-monnaie ne peut pas protéger entièrement vos bitcoins contre le vol par des programmes malveillants qui infecteraient votre ordinateur. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + N’oubliez pas que le chiffrement de votre porte-monnaie ne peut pas protéger entièrement vos veriums contre le vol par des programmes malveillants qui infecteraient votre ordinateur. Wallet to be encrypted @@ -430,8 +430,8 @@ Barre d’outils des onglets - Request payments (generates QR codes and bitcoin: URIs) - Demander des paiements (génère des codes QR et des URI bitcoin:) + Request payments (generates QR codes and verium: URIs) + Demander des paiements (génère des codes QR et des URI verium:) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Afficher la liste d’adresses de réception et d’étiquettes utilisées - Open a bitcoin: URI or payment request - Ouvrir une URI bitcoin: ou une demande de paiement + Open a verium: URI or payment request + Ouvrir une URI verium: ou une demande de paiement &Command-line options @@ -1026,12 +1026,12 @@ Formulaire - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Les transactions récentes ne sont peut-être pas encore visibles et par conséquent le solde de votre porte-monnaie est peut-être erroné. Ces informations seront justes quand votre porte-monnaie aura fini de se synchroniser avec le réseau Verium, comme décrit ci-dessous. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Toute tentative de dépense de bitcoins affectés par des transactions qui ne sont pas encore affichées ne sera pas acceptée par le réseau. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Toute tentative de dépense de veriums affectés par des transactions qui ne sont pas encore affichées ne sera pas acceptée par le réseau. Number of blocks left @@ -1469,16 +1469,16 @@ Erreur de demande de paiement - Cannot start bitcoin: click-to-pay handler - Impossible de démarrer le gestionnaire de cliquer-pour-payer bitcoin: + Cannot start verium: click-to-pay handler + Impossible de démarrer le gestionnaire de cliquer-pour-payer verium: URI handling Gestion des URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' n’est pas une URI valide. Utilisez plutôt 'bitcoin:'. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' n’est pas une URI valide. Utilisez plutôt 'verium:'. You are using a BIP70 URL which will be unsupported in the future. @@ -2341,8 +2341,8 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Poussière : - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Quand le volume des transactions est inférieur à l’espace dans les blocs, les mineurs et les nœuds de relais peuvent imposer des frais minimaux. Il est correct de payer ces frais minimaux, mais soyez conscient que cette transaction pourrait n’être jamais confirmée si la demande en transactions de bitcoins dépassait la capacité de traitement du réseau. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + Quand le volume des transactions est inférieur à l’espace dans les blocs, les mineurs et les nœuds de relais peuvent imposer des frais minimaux. Il est correct de payer ces frais minimaux, mais soyez conscient que cette transaction pourrait n’être jamais confirmée si la demande en transactions de veriums dépassait la capacité de traitement du réseau. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2560,8 +2560,8 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Retirer cette entrée - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Les frais seront déduits du montant envoyé. Le destinataire recevra moins de bitcoins que le montant saisi dans le champ de montant. Si plusieurs destinataires sont sélectionnés, les frais seront partagés également.. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Les frais seront déduits du montant envoyé. Le destinataire recevra moins de veriums que le montant saisi dans le champ de montant. Si plusieurs destinataires sont sélectionnés, les frais seront partagés également.. S&ubtract fee from amount @@ -2588,8 +2588,8 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par Saisir une étiquette pour cette adresse afin de l’ajouter à la liste d’adresses utilisées - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Un message qui était joint à l’URI bitcoin: et qui sera stocké avec la transaction pour référence. Note : Ce message ne sera pas envoyé par le réseau Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Un message qui était joint à l’URI verium: et qui sera stocké avec la transaction pour référence. Note : Ce message ne sera pas envoyé par le réseau Verium. Pay To: @@ -2633,8 +2633,8 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par &Signer un message - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Vous pouvez signer des messages ou des accords avec vos adresses pour prouver que vous pouvez recevoir des bitcoins à ces dernières. Faites attention de ne rien signer de vague ou au hasard, car des attaques d’hameçonnage pourraient essayer de vous faire signer avec votre identité afin de l’usurper. Ne signez que des déclarations entièrement détaillées et avec lesquelles vous êtes d’accord. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Vous pouvez signer des messages ou des accords avec vos adresses pour prouver que vous pouvez recevoir des veriums à ces dernières. Faites attention de ne rien signer de vague ou au hasard, car des attaques d’hameçonnage pourraient essayer de vous faire signer avec votre identité afin de l’usurper. Ne signez que des déclarations entièrement détaillées et avec lesquelles vous êtes d’accord. The Verium address to sign the message with @@ -3332,7 +3332,7 @@ Note : Les frais étant calculés par octet, des frais de « 100 satoshis par - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribué sous la licence MIT d’utilisation d’un logiciel. Consulter le fichier joint %s ou %s diff --git a/src/qt/locale/bitcoin_he.ts b/src/qt/locale/bitcoin_he.ts index 0228439c47..34715eb013 100644 --- a/src/qt/locale/bitcoin_he.ts +++ b/src/qt/locale/bitcoin_he.ts @@ -398,8 +398,8 @@ סרגל כלים לשוניות - Request payments (generates QR codes and bitcoin: URIs) - בקשת תשלומים (יצירה של קודים מסוג QR וסכימות כתובות משאב של :bitcoin) + Request payments (generates QR codes and verium: URIs) + בקשת תשלומים (יצירה של קודים מסוג QR וסכימות כתובות משאב של :verium) Show the list of used sending addresses and labels @@ -410,7 +410,7 @@ הצגת רשימת הכתובות והתוויות הנמצאות בשימוש - Open a bitcoin: URI or payment request + Open a verium: URI or payment request פתיחת ביטקוין: כתובת משאב או בקשת תשלום @@ -930,11 +930,11 @@ טופס - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. ייתכן שהעברות שבוצעו לאחרונה לא יופיעו עדיין, ולכן המאזן בארנק שלך יהיה שגוי. המידע הנכון יוצג במלואו כאשר הארנק שלך יסיים להסתנכרן עם רשת הביטקוין, כמפורט למטה. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. הרשת תסרב לקבל הוצאת ביטקוינים במידה והם כבר נמצאים בהעברות אשר לא מוצגות עדיין. @@ -1365,16 +1365,16 @@ שגיאת בקשת תשלום - Cannot start bitcoin: click-to-pay handler - לא ניתן להפעיל את המקשר bitcoin: click-to-pay + Cannot start verium: click-to-pay handler + לא ניתן להפעיל את המקשר verium: click-to-pay URI handling טיפול בכתובות - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - '//:bitcoin' אינה כתובת URI תקינה. השתמשו במקום ב ':bitcoin'. + 'verium://' is not a valid URI. Use 'verium:' instead. + '//:verium' אינה כתובת URI תקינה. השתמשו במקום ב ':verium'. You are using a BIP70 URL which will be unsupported in the future. @@ -2221,7 +2221,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p אבק: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. כאשר יש פחות נפח עסקאות מאשר מקום בבלוק, כורים וכן צמתות מקשרות יכולות להכתיב עמלות מינימום. התשלום של עמלת מינימום הנו תקין, אך יש לקחת בחשבון שהדבר יכול לגרום לעסקה שלא תאושר ברגע שיש יותר ביקוש לעסקאות ביטקוין מאשר הרשת יכולה לעבד. @@ -2428,7 +2428,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p הסרת רשומה זו - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. העמלה תנוכה מהסכום שנשלח. הנמען יקבל פחות ביטקוינים ממה שהזנת בשדה הסכום. אם נבחרו מספר נמענים, העמלה תחולק באופן שווה. @@ -2456,7 +2456,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p יש להזין תווית עבור כתובת זו כדי להוסיף אותה לרשימת הכתובות בשימוש - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. הודעה שצורפה לביטקוין: כתובת שתאוחסן בהעברה לצורך מעקב מצדך. לתשומת לבך: הודעה זו לא תישלח ברשת הביטקוין. @@ -2501,7 +2501,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p חתימה על הו&דעה - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. באפשרותך לחתום על הודעות/הסכמים באמצעות הכתובות שלך, כדי להוכיח שאתה יכול לקבל את הביטקוינים הנשלחים אליהן. היזהר לא לחתום על תוכן עמום או אקראי, מכיוון שתקיפות פישינג עשויות לנסות לגנוב את הזהות שלך. חתום רק על הצהרות מפורטות שאתה מסכים להן. @@ -3192,7 +3192,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s מופץ תחת רשיון התוכנה של MIT, ראה קובץ מלווה %s או %s diff --git a/src/qt/locale/bitcoin_hi.ts b/src/qt/locale/bitcoin_hi.ts index 808500d7fc..519d333c51 100644 --- a/src/qt/locale/bitcoin_hi.ts +++ b/src/qt/locale/bitcoin_hi.ts @@ -655,7 +655,7 @@ - bitcoin-core + verium-core Verifying blocks... ब्लॉक्स जाँचे जा रहा है... diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/bitcoin_hr.ts index 0b3bedf450..d626ae72e3 100644 --- a/src/qt/locale/bitcoin_hr.ts +++ b/src/qt/locale/bitcoin_hr.ts @@ -188,8 +188,8 @@ Unesite staru i novu lozinku za novčanik. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Zapamtite da šifriranje vašeg novčanika ne može u potpunosti zaštititi vaše bitcoinove od zloćudnog softvera kojim se zarazi vaše računalo. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Zapamtite da šifriranje vašeg novčanika ne može u potpunosti zaštititi vaše veriumove od zloćudnog softvera kojim se zarazi vaše računalo. Wallet to be encrypted @@ -430,8 +430,8 @@ Traka kartica - Request payments (generates QR codes and bitcoin: URIs) - Zatražite uplatu (stvara QR kod i bitcoin: URI adresu) + Request payments (generates QR codes and verium: URIs) + Zatražite uplatu (stvara QR kod i verium: URI adresu) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Prikažite popis korištenih adresa i oznaka za primanje novca - Open a bitcoin: URI or payment request - Otvorite bitcoin: URI adresu ili zahtjev za uplatu + Open a verium: URI or payment request + Otvorite verium: URI adresu ili zahtjev za uplatu &Command-line options @@ -1025,12 +1025,12 @@ Oblik - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Nedavne transakcije možda još nisu vidljive pa vam stanje novčanika može biti netočno. Ove informacije bit će točne nakon što vaš novčanik dovrši sinkronizaciju s Veriumovom mrežom, kako je opisano dolje. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Mreža neće prihvatiti pokušaje trošenja bitcoina koji su utjecani sa strane transakcija koje još nisu vidljive. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Mreža neće prihvatiti pokušaje trošenja veriuma koji su utjecani sa strane transakcija koje još nisu vidljive. Number of blocks left @@ -1319,7 +1319,7 @@ Choose the default subdivision unit to show in the interface and when sending coins. - Izaberite željeni najmanji dio bitcoina koji će biti prikazan u sučelju i koji će se koristiti za plaćanje. + Izaberite željeni najmanji dio veriuma koji će biti prikazan u sučelju i koji će se koristiti za plaćanje. Whether to show coin control features or not. @@ -1468,7 +1468,7 @@ Greška kod zahtjeva za plaćanje - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Ne može se pokrenuti klijent: rukovatelj "kliknite da platite" @@ -1476,8 +1476,8 @@ URI upravljanje - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' nije ispravan URI. Koristite 'bitcoin:' umjesto toga. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' nije ispravan URI. Koristite 'verium:' umjesto toga. You are using a BIP70 URL which will be unsupported in the future. @@ -2340,7 +2340,7 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Prah: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. Kada je kapacitet transakcija manja od prostora u blokovima, rudari i čvorovi prenositelji mogu zatražiti minimalnu naknadu. Prihvatljivo je platiti samo ovu minimalnu naknadu, ali budite svjesni da ovime može nastati transakcija koja se nikad ne potvrđuje čim je potražnja za korištenjem Veriuma veća nego što mreža može obraditi. @@ -2559,7 +2559,7 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Obrišite ovaj zapis - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. Naknada će biti oduzeta od poslanog iznosa. Primatelj će primiti manji iznos od onoga koji unesete u polje iznosa. Ako je odabrano više primatelja, onda će naknada biti podjednako raspodijeljena. @@ -2587,7 +2587,7 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k Unesite oznaku za ovu adresu kako bi ju dodali u vaš adresar - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. Poruka koja je dodana uplati: URI koji će biti spremljen s transakcijom za referencu. Napomena: Ova poruka neće biti poslana preko Verium mreže. @@ -2632,8 +2632,8 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k &Potpišite poruku - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Možete potpisati poruke/dogovore svojim adresama kako biste dokazali da možete pristupiti bitcoinima poslanim na te adrese. Budite oprezni da ne potpisujte ništa nejasno ili nasumično, jer napadi phishingom vas mogu prevariti da prepišite svoj identitet njima. Potpisujte samo detaljno objašnjene izjave s kojima se slažete. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Možete potpisati poruke/dogovore svojim adresama kako biste dokazali da možete pristupiti veriumima poslanim na te adrese. Budite oprezni da ne potpisujte ništa nejasno ili nasumično, jer napadi phishingom vas mogu prevariti da prepišite svoj identitet njima. Potpisujte samo detaljno objašnjene izjave s kojima se slažete. The Verium address to sign the message with @@ -3331,7 +3331,7 @@ Napomena: Budući da se naknada računa po bajtu, naknada od "100 satošija po k - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuirano pod MIT licencom softvera. Vidite pripadajuću datoteku %s ili %s. diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts index aff4d5192d..30ae6b8507 100644 --- a/src/qt/locale/bitcoin_hu.ts +++ b/src/qt/locale/bitcoin_hu.ts @@ -184,7 +184,7 @@ Írja be a tárca régi és új jelszavát. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. Ne feledd, hogy a tárca titkosítása nem nyújt teljes védelmet az adathalász programok fertőzésével szemben. @@ -426,8 +426,8 @@ Fül eszköztár - Request payments (generates QR codes and bitcoin: URIs) - Fizetési kérelem (QR-kódot és "bitcoin:" URI azonosítót hoz létre) + Request payments (generates QR codes and verium: URIs) + Fizetési kérelem (QR-kódot és "verium:" URI azonosítót hoz létre) Show the list of used sending addresses and labels @@ -438,8 +438,8 @@ A használt fogadó címek és címkék megtekintése - Open a bitcoin: URI or payment request - "bitcoin:" URI azonosító vagy fizetési kérelem megnyitása + Open a verium: URI or payment request + "verium:" URI azonosító vagy fizetési kérelem megnyitása &Command-line options @@ -993,12 +993,12 @@ Űrlap - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - A legutóbbi tranzakciók még lehet, hogy nem láthatók, és így előfordulhat, hogy a tárca egyenlege helytelen. A tárca azon nyomban az aktuális egyenleget fogja mutatni, amint befejezte a bitcoin hálózattal történő szinkronizációt, amely alább van részletezve. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + A legutóbbi tranzakciók még lehet, hogy nem láthatók, és így előfordulhat, hogy a tárca egyenlege helytelen. A tárca azon nyomban az aktuális egyenleget fogja mutatni, amint befejezte a verium hálózattal történő szinkronizációt, amely alább van részletezve. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - A hálózat nem fogadja el azoknak a bitcoinoknak az elköltését, amelyek érintettek a még nem látszódó tranzakciókban. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + A hálózat nem fogadja el azoknak a veriumoknak az elköltését, amelyek érintettek a még nem látszódó tranzakciókban. Number of blocks left @@ -1424,8 +1424,8 @@ Hiba történt a fizetési kérelem során - Cannot start bitcoin: click-to-pay handler - A bitcoin nem tud elindulni: click-to-pay kezelő + Cannot start verium: click-to-pay handler + A verium nem tud elindulni: click-to-pay kezelő URI handling @@ -3075,7 +3075,7 @@ - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s MIT szoftver licenc alapján terjesztve, tekintse meg a hozzátartozó fájlt %s or %s diff --git a/src/qt/locale/bitcoin_id.ts b/src/qt/locale/bitcoin_id.ts index 53fad44833..d022af325a 100644 --- a/src/qt/locale/bitcoin_id.ts +++ b/src/qt/locale/bitcoin_id.ts @@ -188,8 +188,8 @@ Masukan passphrase lama dan passphrase baru ke dompet - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Mengenkripsi dompet Anda tidak dapat sepenuhnya melindungi bitcoin Anda dari pencurian oleh malware yang menginfeksi komputer Anda. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Mengenkripsi dompet Anda tidak dapat sepenuhnya melindungi verium Anda dari pencurian oleh malware yang menginfeksi komputer Anda. Wallet to be encrypted @@ -430,8 +430,8 @@ Baris tab - Request payments (generates QR codes and bitcoin: URIs) - Permintaan pembayaran (membuat kode QR dan bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + Permintaan pembayaran (membuat kode QR dan verium: URIs) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Tampilkan daftar alamat dan label yang diterima - Open a bitcoin: URI or payment request - Buka URI bitcoin: atau permintaan pembayaran + Open a verium: URI or payment request + Buka URI verium: atau permintaan pembayaran &Command-line options @@ -1026,12 +1026,12 @@ Formulir - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Transaksi-transaksi terkini mungkin belum terlihat dan oleh karenanya, saldo dompet Anda mungkin tidak tepat. Informasi ini akan akurat ketika dompet Anda tersinkronisasi dengan jaringan Verium, seperti rincian berikut. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Usaha untuk menggunakan bitcoin yang dipengaruhi oleh transaksi yang belum terlihat tidak akan diterima oleh jaringan. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Usaha untuk menggunakan verium yang dipengaruhi oleh transaksi yang belum terlihat tidak akan diterima oleh jaringan. Number of blocks left @@ -1284,7 +1284,7 @@ Connect to the Verium network through a separate SOCKS5 proxy for Tor hidden services. - Koneksi ke jaringan bitcoin melalui proxy SOCKS5 yang berbeda untuk layanan Tor tersembunyi. + Koneksi ke jaringan verium melalui proxy SOCKS5 yang berbeda untuk layanan Tor tersembunyi. &Window @@ -1469,16 +1469,16 @@ Terjadi kesalahan pada permintaan pembayaran - Cannot start bitcoin: click-to-pay handler - Tidak bisa memulai bitcoin: handler click-to-pay + Cannot start verium: click-to-pay handler + Tidak bisa memulai verium: handler click-to-pay URI handling Pengelolaan URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' bukanlah alamat URI yang valid. Silakan gunakan 'bitcoin:'. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' bukanlah alamat URI yang valid. Silakan gunakan 'verium:'. You are using a BIP70 URL which will be unsupported in the future. @@ -2339,8 +2339,8 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Dust: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Ketika volume transaksi lebih sedikit daripada ruang di blok, penambang serta simpul yang menyiarkanikan dapat memberlakukan biaya minimum. Anda boleh hanya membayar biaya minimum, tetapi perlu diketahui bahwa ini dapat menghasilkan transaksi yang tidak pernah dikonfirmasi setelah ada lebih banyak permintaan untuk transaksi bitcoin daripada yang dapat diproses jaringan. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + Ketika volume transaksi lebih sedikit daripada ruang di blok, penambang serta simpul yang menyiarkanikan dapat memberlakukan biaya minimum. Anda boleh hanya membayar biaya minimum, tetapi perlu diketahui bahwa ini dapat menghasilkan transaksi yang tidak pernah dikonfirmasi setelah ada lebih banyak permintaan untuk transaksi verium daripada yang dapat diproses jaringan. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2550,8 +2550,8 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Hapus masukan ini - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Biaya akan diambil dari jumlah yang dikirim. Penerima akan menerima bitcoin lebih sedikit daripada yang di masukkan di bidang jumlah. Jika ada beberapa penerima, biaya dibagi rata. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Biaya akan diambil dari jumlah yang dikirim. Penerima akan menerima verium lebih sedikit daripada yang di masukkan di bidang jumlah. Jika ada beberapa penerima, biaya dibagi rata. S&ubtract fee from amount @@ -2578,8 +2578,8 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" Masukkan label untuk alamat ini untuk dimasukan dalam daftar alamat yang pernah digunakan - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Pesan yang dilampirkan ke bitcoin: URI yang akan disimpan dengan transaksi untuk referensi Anda. Catatan: Pesan ini tidak akan dikirim melalui jaringan Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Pesan yang dilampirkan ke verium: URI yang akan disimpan dengan transaksi untuk referensi Anda. Catatan: Pesan ini tidak akan dikirim melalui jaringan Verium. Pay To: @@ -2619,8 +2619,8 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" &Tandakan Pesan - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Anda dapat menandatangani pesan / perjanjian dengan alamat Anda untuk membuktikan bahwa Anda dapat menerima bitcoin yang dikirimkan kepada mereka. Berhati-hatilah untuk tidak menandatangani apa pun yang samar-samar atau acak, karena serangan phishing mungkin mencoba menipu Anda untuk menandatangani identitas Anda kepada mereka. Hanya tandatangani pernyataan terperinci yang Anda setujui. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Anda dapat menandatangani pesan / perjanjian dengan alamat Anda untuk membuktikan bahwa Anda dapat menerima verium yang dikirimkan kepada mereka. Berhati-hatilah untuk tidak menandatangani apa pun yang samar-samar atau acak, karena serangan phishing mungkin mencoba menipu Anda untuk menandatangani identitas Anda kepada mereka. Hanya tandatangani pernyataan terperinci yang Anda setujui. The Verium address to sign the message with @@ -3102,7 +3102,7 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" - bitcoin-core + verium-core Corrupted block database detected Menemukan database blok yang rusak diff --git a/src/qt/locale/bitcoin_is.ts b/src/qt/locale/bitcoin_is.ts index e47ecd1f6a..c61a159015 100644 --- a/src/qt/locale/bitcoin_is.ts +++ b/src/qt/locale/bitcoin_is.ts @@ -378,8 +378,8 @@ Tólaborð flipa - Request payments (generates QR codes and bitcoin: URIs) - Óska eftir greiðslum (býr til QR kóða og bitcoin: URI) + Request payments (generates QR codes and verium: URIs) + Óska eftir greiðslum (býr til QR kóða og verium: URI) Show the list of used sending addresses and labels @@ -390,8 +390,8 @@ Sýna færslugildi sem notuð hafa verið til að taka við mynt og merkingar þeirra - Open a bitcoin: URI or payment request - Opna bitcoin: URI eða greiðslubeiðni + Open a verium: URI or payment request + Opna verium: URI eða greiðslubeiðni &Command-line options @@ -938,7 +938,7 @@ - bitcoin-core + verium-core Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. Villa við lestur %s! Allir lyklar fóru inn á réttan hátt, en færslugögn eða færslugildi gætu verið röng eða horfin. diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index eaba7bb69b..48c390c242 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -47,11 +47,11 @@ Choose the address to send coins to - Scegli l'indirizzo a cui inviare bitcoin + Scegli l'indirizzo a cui inviare verium Choose the address to receive coins with - Scegli l'indirizzo su cui ricevere bitcoin. + Scegli l'indirizzo su cui ricevere verium. C&hoose @@ -67,7 +67,7 @@ These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. - Questi sono i tuoi indirizzi Verium per l'invio di pagamenti. Controlla sempre l'importo e l'indirizzo del beneficiario prima di inviare bitcoin. + Questi sono i tuoi indirizzi Verium per l'invio di pagamenti. Controlla sempre l'importo e l'indirizzo del beneficiario prima di inviare verium. These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. @@ -188,8 +188,8 @@ Inserisci la vecchia passphrase e la nuova passphrase per il portafoglio. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Ricorda che la cifratura del portamonete non protegge del tutto i tuoi bitcoin dal furto da parte di malware che infettasse il tuo computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Ricorda che la cifratura del portamonete non protegge del tutto i tuoi verium dal furto da parte di malware che infettasse il tuo computer. Wallet to be encrypted @@ -430,8 +430,8 @@ Barra degli strumenti - Request payments (generates QR codes and bitcoin: URIs) - Richiedi pagamenti (genera codici QR e bitcoin: URI) + Request payments (generates QR codes and verium: URIs) + Richiedi pagamenti (genera codici QR e verium: URI) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Mostra la lista degli indirizzi di ricezione utilizzati - Open a bitcoin: URI or payment request - Apri un bitcoin: URI o una richiesta di pagamento + Open a verium: URI or payment request + Apri un verium: URI o una richiesta di pagamento &Command-line options @@ -875,7 +875,7 @@ The entered address "%1" is not a valid Verium address. - L'indirizzo inserito "%1" non è un indirizzo bitcoin valido. + L'indirizzo inserito "%1" non è un indirizzo verium valido. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -1026,12 +1026,12 @@ Modulo - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Transazioni recenti potrebbero non essere visibili ancora, perciò il saldo del tuo portafoglio potrebbe non essere corretto. Questa informazione risulterà corretta quando il tuo portafoglio avrà terminato la sincronizzazione con la rete bitcoin, come indicato in dettaglio più sotto. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Transazioni recenti potrebbero non essere visibili ancora, perciò il saldo del tuo portafoglio potrebbe non essere corretto. Questa informazione risulterà corretta quando il tuo portafoglio avrà terminato la sincronizzazione con la rete verium, come indicato in dettaglio più sotto. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Il tentativo di spendere bitcoin legati a transazioni non ancora visualizzate non verrà accettato dalla rete. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Il tentativo di spendere verium legati a transazioni non ancora visualizzate non verrà accettato dalla rete. Number of blocks left @@ -1321,7 +1321,7 @@ Per specificare più URL separarli con una barra verticale "|". Choose the default subdivision unit to show in the interface and when sending coins. - Scegli l'unità di suddivisione predefinita da utilizzare per l'interfaccia e per l'invio di bitcoin. + Scegli l'unità di suddivisione predefinita da utilizzare per l'interfaccia e per l'invio di verium. Whether to show coin control features or not. @@ -1470,16 +1470,16 @@ Per specificare più URL separarli con una barra verticale "|". Errore di richiesta di pagamento - Cannot start bitcoin: click-to-pay handler - Impossibile avviare bitcoin: gestore click-to-pay + Cannot start verium: click-to-pay handler + Impossibile avviare verium: gestore click-to-pay URI handling Gestione URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' non è un URI valido. Usa invece 'bitcoin:'. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' non è un URI valido. Usa invece 'verium:'. You are using a BIP70 URL which will be unsupported in the future. @@ -2342,8 +2342,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Trascurabile: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Quando il volume delle transazioni è minore dello spazio nei blocchi, i minatori e in nodi di relay potrebbero imporre una commissione minima. Va benissimo pagare solo questa commissione minima, ma tieni presente che questo potrebbe risultare in una transazione che, se la richiesta di transazioni bitcoin dovesse superare la velocità con cui la rete riesce ad elaborarle, non viene mai confermata. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + Quando il volume delle transazioni è minore dello spazio nei blocchi, i minatori e in nodi di relay potrebbero imporre una commissione minima. Va benissimo pagare solo questa commissione minima, ma tieni presente che questo potrebbe risultare in una transazione che, se la richiesta di transazioni verium dovesse superare la velocità con cui la rete riesce ad elaborarle, non viene mai confermata. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2561,8 +2561,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Rimuovi questa voce - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - La commissione sarà sottratta dall'importo che si sta inviando. Il beneficiario riceverà un totale di bitcoin inferiore al valore digitato. Nel caso in cui siano stati selezionati più beneficiari la commissione sarà suddivisa in parti uguali. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + La commissione sarà sottratta dall'importo che si sta inviando. Il beneficiario riceverà un totale di verium inferiore al valore digitato. Nel caso in cui siano stati selezionati più beneficiari la commissione sarà suddivisa in parti uguali. S&ubtract fee from amount @@ -2589,8 +2589,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Inserisci un'etichetta per questo indirizzo per aggiungerlo alla lista degli indirizzi utilizzati - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Messaggio incluso nel bitcoin URI e che sarà memorizzato con la transazione per tuo riferimento. Nota: Questo messaggio non sarà inviato attraverso la rete Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Messaggio incluso nel verium URI e che sarà memorizzato con la transazione per tuo riferimento. Nota: Questo messaggio non sarà inviato attraverso la rete Verium. Pay To: @@ -2634,8 +2634,8 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " &Firma Messaggio - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - È possibile firmare messaggi/accordi con i propri indirizzi in modo da dimostrare di poter ricevere bitcoin attraverso di essi. Presta attenzione a non firmare dichiarazioni vaghe o casuali, perché attacchi di phishing potrebbero cercare di indurti ad apporre la firma su di esse. Firma esclusivamente dichiarazioni completamente dettagliate e delle quali condividi in pieno il contenuto. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + È possibile firmare messaggi/accordi con i propri indirizzi in modo da dimostrare di poter ricevere verium attraverso di essi. Presta attenzione a non firmare dichiarazioni vaghe o casuali, perché attacchi di phishing potrebbero cercare di indurti ad apporre la firma su di esse. Firma esclusivamente dichiarazioni completamente dettagliate e delle quali condividi in pieno il contenuto. The Verium address to sign the message with @@ -2723,7 +2723,7 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " The entered address does not refer to a key. - L'indirizzo bitcoin inserito non è associato a nessuna chiave. + L'indirizzo verium inserito non è associato a nessuna chiave. Wallet unlock was cancelled. @@ -2913,7 +2913,7 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - I bitcoin generati devono maturare %1 blocchi prima di poter essere spesi. Quando hai generato questo blocco, è stato trasmesso alla rete per essere aggiunto alla block chain. Se l'inserimento nella catena avrà esito negativo, il suo stato cambierà a "non accettato" e non sarà spendibile. Talvolta ciò può accadere anche nel caso in cui un altro nodo generi un blocco entro pochi secondi dal tuo. + I verium generati devono maturare %1 blocchi prima di poter essere spesi. Quando hai generato questo blocco, è stato trasmesso alla rete per essere aggiunto alla block chain. Se l'inserimento nella catena avrà esito negativo, il suo stato cambierà a "non accettato" e non sarà spendibile. Talvolta ciò può accadere anche nel caso in cui un altro nodo generi un blocco entro pochi secondi dal tuo. Debug information @@ -3333,7 +3333,7 @@ Nota: poiché la commissione è calcolata su base per byte, una commissione di " - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuito sotto la licenza software del MIT, si veda il file %s o %s incluso diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index 55913ff900..a8ae704683 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -189,7 +189,7 @@ ウォレット用の旧パスフレーズと新パスフレーズを入力してください。 - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. ウォレットを暗号化しても、コンピュータに感染したマルウェアなどによる Verium の盗難を完全に防ぐことはできないことにご注意ください。 @@ -431,8 +431,8 @@ タブツールバー - Request payments (generates QR codes and bitcoin: URIs) - 支払いをリクエストする (QRコードと bitcoin: URIを生成する)< + Request payments (generates QR codes and verium: URIs) + 支払いをリクエストする (QRコードと verium: URIを生成する)< Show the list of used sending addresses and labels @@ -443,8 +443,8 @@ 受け取ったことがあるアドレスとラベルの一覧を表示する - Open a bitcoin: URI or payment request - bitcoin: URIや支払いリクエストを開く + Open a verium: URI or payment request + verium: URIや支払いリクエストを開く &Command-line options @@ -1027,11 +1027,11 @@ フォーム - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. 最近の取引がまだ表示されていない可能性があります。そのため、ウォレットの残高が正しく表示されていないかもしれません。この情報は、ウォレットが Verium ネットワークへの同期が完了すると正確なものとなります。詳細は下記を参照してください。 - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. まだ表示されていない取引が関係する Verium を使用しようとすると、ネットワークから認証を受けられません。 @@ -1470,7 +1470,7 @@ 支払いリクエスト エラー - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Verium を起動できません: click-to-pay handler @@ -1478,8 +1478,8 @@ URIの処理 - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' は正しいURIではありません。 'bitcoin:'を使用してください。 + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' は正しいURIではありません。 'verium:'を使用してください。 You are using a BIP70 URL which will be unsupported in the future. @@ -2342,7 +2342,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p ダスト: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. ブロック内の空きよりトランザクション流量が少ない場合、マイナーや中継ノードは最低限の手数料でも処理することがあります。この最低限の手数料だけを支払っても問題ありませんが、一度トランザクションの需要がネットワークの処理能力を超えてしまった場合には、トランザクションが永久に承認されなくなってしまう可能性があることにご注意ください。 @@ -2561,7 +2561,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p この項目を削除 - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. 手数料は送金する金額から差し引かれます。送金先には金額欄で指定した額よりも少ない Verium が送られます。送金先が複数ある場合は、手数料は均等に分けられます。 @@ -2589,8 +2589,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p このアドレスに対するラベルを入力することで、送金したことがあるアドレスの一覧に追加することができます - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - bitcoin: URIに添付されていたメッセージです。これは参照用として取引とともに保存されます。注意: メッセージは Verium ネットワーク上へ送信されません。 + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + verium: URIに添付されていたメッセージです。これは参照用として取引とともに保存されます。注意: メッセージは Verium ネットワーク上へ送信されません。 Pay To: @@ -2634,7 +2634,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p メッセージの署名(&S) - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. あなたが所有しているアドレスでメッセージや契約書に署名をすることで、それらのアドレスへ送られた Verium を受け取ることができることを証明できます。フィッシング攻撃者があなたを騙して、あなたの身分情報に署名させようとしている可能性があるため、よくわからないものやランダムな文字列に対して署名しないでください。あなたが同意した、よく詳細の記された文言にのみ署名するようにしてください。 @@ -3333,7 +3333,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s MIT ソフトウェアライセンスのもとで配布されています。付属の %s ファイルか、 %s を参照してください diff --git a/src/qt/locale/bitcoin_ka.ts b/src/qt/locale/bitcoin_ka.ts index a1c200771d..f786f89dff 100644 --- a/src/qt/locale/bitcoin_ka.ts +++ b/src/qt/locale/bitcoin_ka.ts @@ -362,8 +362,8 @@ ბარათების პანელი - Request payments (generates QR codes and bitcoin: URIs) - გადახდის მოთხოვნა (შეიქმნება QR-კოდები და bitcoin: ბმულები) + Request payments (generates QR codes and verium: URIs) + გადახდის მოთხოვნა (შეიქმნება QR-კოდები და verium: ბმულები) Show the list of used sending addresses and labels @@ -374,8 +374,8 @@ გამოყენებული მიღების მისამართებისა და ნიშნულების სიის ჩვენება - Open a bitcoin: URI or payment request - bitcoin: URI-ის ან გადახდის მოთხოვნის გახსნა + Open a verium: URI or payment request + verium: URI-ის ან გადახდის მოთხოვნის გახსნა &Command-line options @@ -1340,7 +1340,7 @@ შეიყვანეთ ამ მისამართის ნიშნული გამოყენებული მისამართების სიაში დასამატებლად - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. მესიჯი, რომელიც თან ერთვის მონეტებს: URI, რომელიც შეინახება ტრანსაქციასთან ერთად თქვენთვის. შენიშვნა: მესიჯი არ გაყვება გადახდას ბითქოინის ქსელში. @@ -1552,7 +1552,7 @@ - bitcoin-core + verium-core Corrupted block database detected შენიშნულია ბლოკთა ბაზის დაზიანება diff --git a/src/qt/locale/bitcoin_kk.ts b/src/qt/locale/bitcoin_kk.ts index cc24c3464e..d5af2407dc 100644 --- a/src/qt/locale/bitcoin_kk.ts +++ b/src/qt/locale/bitcoin_kk.ts @@ -340,7 +340,7 @@ - bitcoin-core + verium-core Transaction amount too small Транзакция өте кішкентай diff --git a/src/qt/locale/bitcoin_km.ts b/src/qt/locale/bitcoin_km.ts index b5b2611006..67b69665d6 100644 --- a/src/qt/locale/bitcoin_km.ts +++ b/src/qt/locale/bitcoin_km.ts @@ -313,6 +313,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_ko.ts b/src/qt/locale/bitcoin_ko.ts index 0b23b9f979..3d439a2b83 100644 --- a/src/qt/locale/bitcoin_ko.ts +++ b/src/qt/locale/bitcoin_ko.ts @@ -406,8 +406,8 @@ 툴바 색인표 - Request payments (generates QR codes and bitcoin: URIs) - 지불 요청하기 (QR코드와 bitcoin: URI를 생성합니다) + Request payments (generates QR codes and verium: URIs) + 지불 요청하기 (QR코드와 verium: URI를 생성합니다) Show the list of used sending addresses and labels @@ -418,8 +418,8 @@ 한번 이상 사용된 받는 주소와 라벨의 목록을 보여줍니다 - Open a bitcoin: URI or payment request - bitcoin: URI 또는 지불요청 열기 + Open a verium: URI or payment request + verium: URI 또는 지불요청 열기 &Command-line options @@ -938,11 +938,11 @@ 유형 - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. 최근 거래는 아직 보이지 않을 것입니다, 그러므로 당신의 지갑의 잔액이 틀릴 수도 있습니다. 이 정보는 비트코인 네트워크와 완전한 동기화가 완료되면 아래의 설명과 같이 정확해집니다. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. 아직 표시되지 않은 거래의 영향을 받는 비트코인을 사용하려고 하는 것은 네트워크에서 허가되지 않습니다. @@ -1373,16 +1373,16 @@ 지불 요청 오류 - Cannot start bitcoin: click-to-pay handler - bitcoin: 핸들러를 시작할 수 없음 + Cannot start verium: click-to-pay handler + verium: 핸들러를 시작할 수 없음 URI handling URI 핸들링 - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://"은 잘못된 URI입니다. 'bitcoin:'을 사용하십시오. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://"은 잘못된 URI입니다. 'verium:'을 사용하십시오. You are using a BIP70 URL which will be unsupported in the future. @@ -2229,7 +2229,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 더스트: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. 거래량이 블록에 남은 공간보다 적은 경우에는 채굴자나 중계 노드들이 최소 수수료를 허용할 수 있습니다. 최소 수수료만 지불하는건 괜찮지만, 네트워크가 처리할 수 있는 용량을 넘는 비트코인 거래가 있을 경우에는 이 거래가 승인이 안될 수 있다는 점을 유의하세요. @@ -2436,7 +2436,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 입력된 항목 삭제 - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. 수수료가 송금되는 금액에서 공제됩니다. 수령자는 금액 필드에서 입력한 금액보다 적은 금액을 전송받게 됩니다. 받는 사람이 여러 명인 경우 수수료는 균등하게 나누어집니다. @@ -2464,8 +2464,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 이 주소에 라벨을 입력하면 사용된 주소 목록에 라벨이 표시됩니다 - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - bitcoin: URI에 추가된 메시지는 참고를 위해 거래내역과 함께 저장될 것입니다. Note: 이 메시지는 비트코인 네트워크로 전송되지 않습니다. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + verium: URI에 추가된 메시지는 참고를 위해 거래내역과 함께 저장될 것입니다. Note: 이 메시지는 비트코인 네트워크로 전송되지 않습니다. Pay To: @@ -2509,7 +2509,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 메시지 서명(&S) - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. 당신이 해당 주소로 비트코인을 받을 수 있다는 것을 증명하기 위해 메시지/합의문을 그 주소로 서명할 수 있습니다. 피싱 공격이 당신을 속일 수 있으므로 임의의 내용이나 모호한 내용에 서명하지 않도록 주의하세요. 당신이 동의하는 명확한 조항들에만 서명하세요. @@ -3200,7 +3200,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s MIT 소프트웨어 라이센스에 따라 배포 됨, 첨부 파일 %s 또는 %s을 참조하십시오. diff --git a/src/qt/locale/bitcoin_ku_IQ.ts b/src/qt/locale/bitcoin_ku_IQ.ts index b820c037a9..c2039842cf 100644 --- a/src/qt/locale/bitcoin_ku_IQ.ts +++ b/src/qt/locale/bitcoin_ku_IQ.ts @@ -380,6 +380,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_ky.ts b/src/qt/locale/bitcoin_ky.ts index 15dbcfd850..85e1017713 100644 --- a/src/qt/locale/bitcoin_ky.ts +++ b/src/qt/locale/bitcoin_ky.ts @@ -340,6 +340,6 @@ WalletView - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_la.ts b/src/qt/locale/bitcoin_la.ts index 925316ea03..93edc8dd27 100644 --- a/src/qt/locale/bitcoin_la.ts +++ b/src/qt/locale/bitcoin_la.ts @@ -804,7 +804,7 @@ - bitcoin-core + verium-core Corrupted block database detected Corruptum databasum frustorum invenitur diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts index df0796cb3e..257fabb9fd 100644 --- a/src/qt/locale/bitcoin_lt.ts +++ b/src/qt/locale/bitcoin_lt.ts @@ -394,8 +394,8 @@ Kortelių įrankinė - Request payments (generates QR codes and bitcoin: URIs) - Reikalauti mokėjimų (sukuria QR kodus ir bitcoin: URI) + Request payments (generates QR codes and verium: URIs) + Reikalauti mokėjimų (sukuria QR kodus ir verium: URI) Show the list of used sending addresses and labels @@ -406,8 +406,8 @@ Rodyti sąrašą panaudotų gavimo adresų ir žymių - Open a bitcoin: URI or payment request - Atidaryti bitcoin: URI ar apmokėjimo reikalavimą + Open a verium: URI or payment request + Atidaryti verium: URI ar apmokėjimo reikalavimą &Command-line options @@ -922,12 +922,12 @@ Forma - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Naujausi sandoriai gali būti dar nematomi, todėl jūsų piniginės likutis gali būti neteisingas. Ši informacija bus teisinga, kai jūsų piniginė bus baigta sinchronizuoti su bitcoin tinklu, kaip nurodyta žemiau. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Naujausi sandoriai gali būti dar nematomi, todėl jūsų piniginės likutis gali būti neteisingas. Ši informacija bus teisinga, kai jūsų piniginė bus baigta sinchronizuoti su verium tinklu, kaip nurodyta žemiau. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Tinklas nepriims bandymų išleisti bitcoinus, kurie yra vis dar nematomi. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Tinklas nepriims bandymų išleisti veriumus, kurie yra vis dar nematomi. Number of blocks left @@ -1357,16 +1357,16 @@ Mokėjimo užklausos klaida - Cannot start bitcoin: click-to-pay handler - Negalima paleisti bitcoin: paspauskite sumokėti tvarkytojui + Cannot start verium: click-to-pay handler + Negalima paleisti verium: paspauskite sumokėti tvarkytojui URI handling URI tvarkymas - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - „bitcoin: //“ nėra galiojantis URI. Vietoj to naudokite „bitcoin:“. + 'verium://' is not a valid URI. Use 'verium:' instead. + „verium: //“ nėra galiojantis URI. Vietoj to naudokite „verium:“. You are using a BIP70 URL which will be unsupported in the future. @@ -2213,8 +2213,8 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat Dulkės: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Kai sandorių apimtis yra mažesnė nei erdvės blokuose, kasėjai ir perduodantys mazgai gali užtikrinti minimalų mokestį. Mokėti tik šį minimalų mokestį yra galima, tačiau atkreipkite dėmesį, kad dėl to gali atsirasti niekada nepatvirtinamas sandoris, kai bus daugiau paklausos bitcoin operacijoms, nei tinklas gali apdoroti. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + Kai sandorių apimtis yra mažesnė nei erdvės blokuose, kasėjai ir perduodantys mazgai gali užtikrinti minimalų mokestį. Mokėti tik šį minimalų mokestį yra galima, tačiau atkreipkite dėmesį, kad dėl to gali atsirasti niekada nepatvirtinamas sandoris, kai bus daugiau paklausos verium operacijoms, nei tinklas gali apdoroti. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2416,8 +2416,8 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat Pašalinti šį įrašą - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Mokestis bus atimamas iš siunčiamos sumos. Gavėjas gaus mažiau bitcoinų nei įvesite sumos lauke. Jei pasirenkami keli gavėjai, mokestis padalijamas lygiai. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Mokestis bus atimamas iš siunčiamos sumos. Gavėjas gaus mažiau veriumų nei įvesite sumos lauke. Jei pasirenkami keli gavėjai, mokestis padalijamas lygiai. S&ubtract fee from amount @@ -2444,8 +2444,8 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat Įveskite šio adreso etiketę, kad ją pridėtumėte prie naudojamų adresų sąrašo - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Pranešimas, kuris buvo pridėtas prie bitcoin: URI, kuris bus saugomas kartu su sandoriu jūsų nuoroda. Pastaba: šis pranešimas nebus išsiųstas per „Verium“ tinklą. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Pranešimas, kuris buvo pridėtas prie verium: URI, kuris bus saugomas kartu su sandoriu jūsų nuoroda. Pastaba: šis pranešimas nebus išsiųstas per „Verium“ tinklą. Pay To: @@ -3136,7 +3136,7 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat - bitcoin-core + verium-core The %s developers %s kūrėjai diff --git a/src/qt/locale/bitcoin_lv.ts b/src/qt/locale/bitcoin_lv.ts index 9163794583..1d8c886a4b 100644 --- a/src/qt/locale/bitcoin_lv.ts +++ b/src/qt/locale/bitcoin_lv.ts @@ -43,11 +43,11 @@ Choose the address to send coins to - Izvēlies adresi uz kuru sūtīt bitcoins + Izvēlies adresi uz kuru sūtīt veriums Choose the address to receive coins with - Izvēlies adresi ar kuru saņemt bitcoins + Izvēlies adresi ar kuru saņemt veriums &Copy Address @@ -266,12 +266,12 @@ Ciļņu rīkjosla - Request payments (generates QR codes and bitcoin: URIs) - Pieprasīt maksājumus (izveido QR kodu un bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + Pieprasīt maksājumus (izveido QR kodu un verium: URIs) - Open a bitcoin: URI or payment request - Atvērt bitcoin URI vai maksājuma pieprasījumu + Open a verium: URI or payment request + Atvērt verium URI vai maksājuma pieprasījumu &Command-line options @@ -544,7 +544,7 @@ Enable coin &control features - Ieslēgt bitcoin &kontroles funkcijas + Ieslēgt verium &kontroles funkcijas &Spend unconfirmed change @@ -1224,7 +1224,7 @@ - bitcoin-core + verium-core Error loading block database Kļūda ielādējot bloku datubāzi diff --git a/src/qt/locale/bitcoin_mk.ts b/src/qt/locale/bitcoin_mk.ts index 6a0fbf1f21..50675758ed 100644 --- a/src/qt/locale/bitcoin_mk.ts +++ b/src/qt/locale/bitcoin_mk.ts @@ -610,6 +610,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_ml.ts b/src/qt/locale/bitcoin_ml.ts index 24b3f817da..bc8c6d8c98 100644 --- a/src/qt/locale/bitcoin_ml.ts +++ b/src/qt/locale/bitcoin_ml.ts @@ -329,6 +329,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_mn.ts b/src/qt/locale/bitcoin_mn.ts index e356ff57e6..6a9cf21cde 100644 --- a/src/qt/locale/bitcoin_mn.ts +++ b/src/qt/locale/bitcoin_mn.ts @@ -592,7 +592,7 @@ - bitcoin-core + verium-core Insufficient funds Таны дансны үлдэгдэл хүрэлцэхгүй байна diff --git a/src/qt/locale/bitcoin_mr_IN.ts b/src/qt/locale/bitcoin_mr_IN.ts index 3e0b0d292d..7a38828c21 100644 --- a/src/qt/locale/bitcoin_mr_IN.ts +++ b/src/qt/locale/bitcoin_mr_IN.ts @@ -200,6 +200,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_ms.ts b/src/qt/locale/bitcoin_ms.ts index afb5ad3358..8381327089 100644 --- a/src/qt/locale/bitcoin_ms.ts +++ b/src/qt/locale/bitcoin_ms.ts @@ -365,7 +365,7 @@ Alihkan fail data ke dalam tab semasa Sign messages with your Verium addresses to prove you own them - sahkan mesej bersama alamat bitcoin anda untuk menunjukkan alamat ini anda punya + sahkan mesej bersama alamat verium anda untuk menunjukkan alamat ini anda punya Verify messages to ensure they were signed with specified Verium addresses @@ -389,8 +389,8 @@ Alihkan fail data ke dalam tab semasa - Request payments (generates QR codes and bitcoin: URIs) - Request payments (generates QR codes and bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + Request payments (generates QR codes and verium: URIs) @@ -645,7 +645,7 @@ Alihkan fail data ke dalam tab semasa - bitcoin-core + verium-core Loading wallet... Sedang baca wallet... diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/bitcoin_nb.ts index 33e7897e09..102dab852f 100644 --- a/src/qt/locale/bitcoin_nb.ts +++ b/src/qt/locale/bitcoin_nb.ts @@ -172,8 +172,8 @@ Lommeboken er kryptert - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Husk at å kryptere lommeboken ikke vil beskytte dine bitcoins fullstendig fra å bli stjålet av skadevare som infiserer datamaskinen din. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Husk at å kryptere lommeboken ikke vil beskytte dine veriums fullstendig fra å bli stjålet av skadevare som infiserer datamaskinen din. IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -394,8 +394,8 @@ Hjelpelinje for fliker - Request payments (generates QR codes and bitcoin: URIs) - Be om betalinger (genererer QR-koder og bitcoin-URIer) + Request payments (generates QR codes and verium: URIs) + Be om betalinger (genererer QR-koder og verium-URIer) Show the list of used sending addresses and labels @@ -406,8 +406,8 @@ Vis lista over brukte mottakeradresser og merkelapper - Open a bitcoin: URI or payment request - Åpne en bitcoin: URI eller betalingsforespørsel + Open a verium: URI or payment request + Åpne en verium: URI eller betalingsforespørsel &Command-line options @@ -922,12 +922,12 @@ Skjema - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Det kan hende nylige transaksjoner ikke vises enda, og at lommeboksaldoen dermed blir uriktig. Denne informasjonen vil rette seg når synkronisering av lommeboka mot bitcoin-nettverket er fullført, som anvist nedenfor. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Det kan hende nylige transaksjoner ikke vises enda, og at lommeboksaldoen dermed blir uriktig. Denne informasjonen vil rette seg når synkronisering av lommeboka mot verium-nettverket er fullført, som anvist nedenfor. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Forsøk på å bruke bitcoin som er påvirket av transaksjoner som ikke er vist enda godtas ikke av nettverket. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Forsøk på å bruke verium som er påvirket av transaksjoner som ikke er vist enda godtas ikke av nettverket. Number of blocks left @@ -1192,7 +1192,7 @@ Choose the default subdivision unit to show in the interface and when sending coins. - Velg standard delt enhet for visning i grensesnittet og for sending av bitcoins. + Velg standard delt enhet for visning i grensesnittet og for sending av veriums. Whether to show coin control features or not. @@ -1337,8 +1337,8 @@ Feil ved betalingsforespørsel - Cannot start bitcoin: click-to-pay handler - Kan ikke starte bitcoin: Klikk-og-betal håndterer + Cannot start verium: click-to-pay handler + Kan ikke starte verium: Klikk-og-betal håndterer URI handling @@ -1354,7 +1354,7 @@ URI cannot be parsed! This can be caused by an invalid Verium address or malformed URI parameters. - URI kan ikke fortolkes! Dette kan være forårsaket av en ugyldig bitcoin-adresse eller feilformede URI-parametre. + URI kan ikke fortolkes! Dette kan være forårsaket av en ugyldig verium-adresse eller feilformede URI-parametre. Payment request file handling @@ -2278,7 +2278,7 @@ Warning: Invalid Verium address - Advarsel Ugyldig bitcoin-adresse + Advarsel Ugyldig verium-adresse Warning: Unknown change address @@ -2340,8 +2340,8 @@ Fjern denne oppføringen - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Gebyret vil bli trukket fra beløpet som blir sendt. Mottakeren vil motta mindre bitcoins enn det du skriver inn i beløpsfeltet. Hvis det er valgt flere mottakere, deles gebyret likt. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Gebyret vil bli trukket fra beløpet som blir sendt. Mottakeren vil motta mindre veriums enn det du skriver inn i beløpsfeltet. Hvis det er valgt flere mottakere, deles gebyret likt. S&ubtract fee from amount @@ -2368,8 +2368,8 @@ Skriv inn en merkelapp for denne adressen for å legge den til listen av brukte adresser - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - En melding som var tilknyttet bitcoinen: URI vil bli lagret med transaksjonen for din oversikt. Denne meldingen vil ikke bli sendt over Verium-nettverket. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + En melding som var tilknyttet veriumen: URI vil bli lagret med transaksjonen for din oversikt. Denne meldingen vil ikke bli sendt over Verium-nettverket. Pay To: @@ -2413,8 +2413,8 @@ &Signer Melding - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Du kan signere meldinger/avtaler med adresser for å bevise at du kan motta bitcoins sendt til dem. Vær forsiktig med å signere noe vagt eller tilfeldig, siden phishing-angrep kan prøve å lure deg til å signere din identitet over til dem. Bare signer fullt detaljerte utsagn som du er enig i. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Du kan signere meldinger/avtaler med adresser for å bevise at du kan motta veriums sendt til dem. Vær forsiktig med å signere noe vagt eller tilfeldig, siden phishing-angrep kan prøve å lure deg til å signere din identitet over til dem. Bare signer fullt detaljerte utsagn som du er enig i. The Verium address to sign the message with @@ -2688,7 +2688,7 @@ Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Genererte bitcoins må modne %1 blokker før de kan brukes. Da du genererte denne blokken ble den kringkastet på nettverket for å bli lagt til i kjeden av blokker. Hvis den ikke kommer med i kjeden vil den endre seg til "ikke akseptert", og vil ikke kunne brukes. Dette vil noen ganger skje hvis en annen node genererer en blokk innen noen sekunder av din. + Genererte veriums må modne %1 blokker før de kan brukes. Da du genererte denne blokken ble den kringkastet på nettverket for å bli lagt til i kjeden av blokker. Hvis den ikke kommer med i kjeden vil den endre seg til "ikke akseptert", og vil ikke kunne brukes. Dette vil noen ganger skje hvis en annen node genererer en blokk innen noen sekunder av din. Debug information @@ -3100,7 +3100,7 @@ - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Lisensiert MIT. Se tilhørende fil %s eller %s diff --git a/src/qt/locale/bitcoin_ne.ts b/src/qt/locale/bitcoin_ne.ts index 7262eb89af..edbb7b3198 100644 --- a/src/qt/locale/bitcoin_ne.ts +++ b/src/qt/locale/bitcoin_ne.ts @@ -350,7 +350,7 @@ पहिला प्रयोग गरिएको ठेगाना प्रयोग गर्नुहोस् - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. पठाइँदै गरेको रकमबाट शुल्क कटौती गरिनेछ । प्राप्तकर्ताले तपाईंले रकम क्षेत्रमा प्रवेष गरेको भन्दा थोरै बिटकोइन प्राप्त गर्ने छन् । धेरै प्राप्तकर्ता चयन गरिएको छ भने समान रूपमा शुल्क विभाजित गरिनेछ । @@ -358,7 +358,7 @@ यो ठेगानालाई प्रयोग गरिएको ठेगानाको सूचीमा थप्न एउटा लेबल प्रविष्ट गर्नुहोस् - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. बिटकोइनमा संलग्न गरिएको सन्देश: तपाईंको मध्यस्थको लागि कारोबारको साथमा भण्डारण गरिने URI । नोट: यो सन्देश बिटकोइन नेटवर्क मार्फत पठाइने छैन । @@ -371,7 +371,7 @@ SignVerifyMessageDialog - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. आफ्नो ठेगानामा पठाइएको बिटकोइन प्राप्त गर्न सकिन्छ भनेर प्रमाणित गर्न तपाईंले ती ठेगानाले सन्देश/सम्झौताहरूमा हस्ताक्षर गर्न सक्नुहुन्छ । फिसिङ आक्रमणले तपाईंलाई छक्याएर अरूका लागि तपाईंको परिचयमा हस्ताक्षर गराउने प्रयास गर्न सक्ने भएकाले अस्पष्ट वा जथाभावीमा हस्ताक्षर गर्दा ध्यान दिनुहोस् । आफू सहमत भएको पूर्ण विस्तृत-कथनमा मात्र हस्ताक्षर गर्नुहोस् । @@ -436,7 +436,7 @@ - bitcoin-core + verium-core The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct ब्लक डाटाबेसमा भविष्यबाट आए जस्तो देखिने एउटा ब्लक हुन्छ । तपाईंको कम्प्युटरको मिति र समय गलत तरिकाले सेट गरिएकाले यस्तो हुन सक्छ । तपाईं आफ्नो कम्प्युटरको मिति र समय सही छ भनेर पक्का हुनुहुन्छ भने मात्र ब्लक डाटाबेस पुनर्निर्माण गर्नुहोस् । diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index 508b2b487d..67f9fd9655 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -67,7 +67,7 @@ These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. - Dit zijn uw Veriumadressen om betalingen mee te verzenden. Controleer altijd het bedrag en het ontvangstadres voordat u uw bitcoins verzendt. + Dit zijn uw Veriumadressen om betalingen mee te verzenden. Controleer altijd het bedrag en het ontvangstadres voordat u uw veriums verzendt. These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. @@ -188,8 +188,8 @@ Voer de oude wachtwoordzin en de nieuwe wachtwoordzin in voor de portemonnee. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Onthoud dat het versleutelen van uw portemonnee uw bitcoins niet volledig kan beschermen tegen diefstal, bijvoorbeeld door malware die uw computer infecteert. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Onthoud dat het versleutelen van uw portemonnee uw veriums niet volledig kan beschermen tegen diefstal, bijvoorbeeld door malware die uw computer infecteert. Wallet to be encrypted @@ -430,8 +430,8 @@ Tab-werkbalk - Request payments (generates QR codes and bitcoin: URIs) - Vraag betaling aan (genereert QR-codes en bitcoin: URI's) + Request payments (generates QR codes and verium: URIs) + Vraag betaling aan (genereert QR-codes en verium: URI's) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Toon de lijst met gebruikte ontvangstadressen en labels - Open a bitcoin: URI or payment request - Open een bitcoin: URI of betalingsverzoek + Open a verium: URI or payment request + Open een verium: URI of betalingsverzoek &Command-line options @@ -1027,12 +1027,12 @@ Dit is ideaal voor alleen-lezen portommonees. Vorm - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Recente transacties zijn mogelijk nog niet zichtbaar. De balans van de portemonnee is daarom mogelijk niet correct. Deze informatie is correct zodra de synchronisatie met het Verium-netwerk is voltooid, zoals onderaan beschreven. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Poging om bitcoins te besteden die door "nog niet weergegeven" transacties worden beïnvloed, worden niet door het netwerk geaccepteerd. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Poging om veriums te besteden die door "nog niet weergegeven" transacties worden beïnvloed, worden niet door het netwerk geaccepteerd. Number of blocks left @@ -1470,16 +1470,16 @@ Dit is ideaal voor alleen-lezen portommonees. Fout bij betalingsverzoek - Cannot start bitcoin: click-to-pay handler - Kan bitcoin niet starten: click-to-pay handler + Cannot start verium: click-to-pay handler + Kan verium niet starten: click-to-pay handler URI handling URI-behandeling - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' is niet een geldige URI. Gebruik 'bitcoin:' in plaats daarvan. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' is niet een geldige URI. Gebruik 'verium:' in plaats daarvan. You are using a BIP70 URL which will be unsupported in the future. @@ -2342,8 +2342,8 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Stof: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - De minimale toeslag betalen is prima mits het transactievolume kleiner is dan de ruimte in de blokken. Let wel op dat dit tot gevolg kan hebben dat een transactie nooit wordt bevestigd als er meer vraag is naar bitcointransacties dan het netwerk kan verwerken. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + De minimale toeslag betalen is prima mits het transactievolume kleiner is dan de ruimte in de blokken. Let wel op dat dit tot gevolg kan hebben dat een transactie nooit wordt bevestigd als er meer vraag is naar veriumtransacties dan het netwerk kan verwerken. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2561,8 +2561,8 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Verwijder deze toevoeging - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - De transactiekosten zal worden afgetrokken van het bedrag dat verstuurd wordt. De ontvangers zullen minder bitcoins ontvangen dan ingevoerd is in het hoeveelheidsveld. Als er meerdere ontvangers geselecteerd zijn, dan worden de transactiekosten gelijk verdeeld. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + De transactiekosten zal worden afgetrokken van het bedrag dat verstuurd wordt. De ontvangers zullen minder veriums ontvangen dan ingevoerd is in het hoeveelheidsveld. Als er meerdere ontvangers geselecteerd zijn, dan worden de transactiekosten gelijk verdeeld. S&ubtract fee from amount @@ -2589,8 +2589,8 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 Vul een label voor dit adres in om het aan de lijst met gebruikte adressen toe te voegen - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Een bericht dat werd toegevoegd aan de bitcoin: URI welke wordt opgeslagen met de transactie ter referentie. Opmerking: Dit bericht zal niet worden verzonden over het Veriumnetwerk. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Een bericht dat werd toegevoegd aan de verium: URI welke wordt opgeslagen met de transactie ter referentie. Opmerking: Dit bericht zal niet worden verzonden over het Veriumnetwerk. Pay To: @@ -2634,7 +2634,7 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 &Onderteken bericht - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. U kunt berichten/overeenkomsten ondertekenen met uw adres om te bewijzen dat u Veriums kunt versturen. Wees voorzichtig met het ondertekenen van iets vaags of willekeurigs, omdat phishingaanvallen u kunnen proberen te misleiden tot het ondertekenen van overeenkomsten om uw identiteit aan hen toe te vertrouwen. Onderteken alleen volledig gedetailleerde verklaringen voordat u akkoord gaat. @@ -3333,7 +3333,7 @@ Notitie: Omdat de vergoeding per byte wordt gerekend, zal een vergoeding van "10 - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Uitgegeven onder de MIT software licentie, zie het bijgevoegde bestand %s of %s diff --git a/src/qt/locale/bitcoin_pam.ts b/src/qt/locale/bitcoin_pam.ts index 6f53044577..e0df778b0d 100644 --- a/src/qt/locale/bitcoin_pam.ts +++ b/src/qt/locale/bitcoin_pam.ts @@ -768,7 +768,7 @@ WalletView - bitcoin-core + verium-core Corrupted block database detected Mekapansin lang me-corrupt a block database diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts index 36b71f5cfc..4641dfedbf 100644 --- a/src/qt/locale/bitcoin_pl.ts +++ b/src/qt/locale/bitcoin_pl.ts @@ -188,7 +188,7 @@ Wprowadź stare i nowe hasło dla portfela. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. Zwróć uwagę, że zaszyfrowanie portfela nie zabezpieczy się w pełni przed kradzieżą przez malware jakie może zainfekować twój komputer. @@ -363,7 +363,7 @@ Send coins to a Verium address - Wyślij monety na adres bitcoinowy + Wyślij monety na adres veriumowy Backup wallet to another location @@ -411,7 +411,7 @@ Verify messages to ensure they were signed with specified Verium addresses - Zweryfikuj wiadomość, aby upewnić się, że została podpisana podanym adresem bitcoinowym. + Zweryfikuj wiadomość, aby upewnić się, że została podpisana podanym adresem veriumowym. &File @@ -430,8 +430,8 @@ Pasek zakładek - Request payments (generates QR codes and bitcoin: URIs) - Żądaj płatności (generuje kod QR oraz bitcoinowe URI) + Request payments (generates QR codes and verium: URIs) + Żądaj płatności (generuje kod QR oraz veriumowe URI) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Pokaż listę adresów i etykiet użytych do odbierania - Open a bitcoin: URI or payment request - Otwórz URI bitcoin: lub żądanie zapłaty + Open a verium: URI or payment request + Otwórz URI verium: lub żądanie zapłaty &Command-line options @@ -1026,12 +1026,12 @@ Formularz - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Świeże transakcje mogą nie być jeszcze widoczne, a zatem saldo portfela może być nieprawidłowe. Te detale będą poprawne, gdy portfel zakończy synchronizację z siecią bitcoin, zgodnie z poniższym opisem. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Świeże transakcje mogą nie być jeszcze widoczne, a zatem saldo portfela może być nieprawidłowe. Te detale będą poprawne, gdy portfel zakończy synchronizację z siecią verium, zgodnie z poniższym opisem. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Próba wydania bitcoinów które nie są jeszcze wyświetlone jako transakcja zostanie odrzucona przez sieć. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Próba wydania veriumów które nie są jeszcze wyświetlone jako transakcja zostanie odrzucona przez sieć. Number of blocks left @@ -1395,7 +1395,7 @@ The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. - Wyświetlana informacja może być nieaktualna. Twój portfel synchronizuje się automatycznie z siecią bitcoin, zaraz po tym jak uzyskano połączenie, ale proces ten nie został jeszcze ukończony. + Wyświetlana informacja może być nieaktualna. Twój portfel synchronizuje się automatycznie z siecią verium, zaraz po tym jak uzyskano połączenie, ale proces ten nie został jeszcze ukończony. Watch-only: @@ -1469,16 +1469,16 @@ Błąd żądania płatności - Cannot start bitcoin: click-to-pay handler - Nie można uruchomić protokołu bitcoin: kliknij-by-zapłacić + Cannot start verium: click-to-pay handler + Nie można uruchomić protokołu verium: kliknij-by-zapłacić URI handling Obsługa URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' nie jest poprawnym URI. Użyj 'bitcoin:'. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' nie jest poprawnym URI. Użyj 'verium:'. You are using a BIP70 URL which will be unsupported in the future. @@ -1608,7 +1608,7 @@ Enter a Verium address (e.g. %1) - Wprowadź adres bitcoinowy (np. %1) + Wprowadź adres veriumowy (np. %1) %1 d @@ -2342,7 +2342,7 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za Pył: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. Gdy ilość transakcji jest mniejsza niż ilość miejsca w bloku, górnicy i węzły przekazujące wymagają minimalnej opłaty. Zapłata tylko tej wartości jest dopuszczalna, lecz może skutkować transakcją która nigdy nie zostanie potwierdzona w sytuacji, gdy ilość transakcji przekroczy przepustowość sieci. @@ -2561,8 +2561,8 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za Usuń ten wpis - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Opłata zostanie odjęta od kwoty wysyłane.Odbiorca otrzyma mniej niż bitcoins wpisz w polu kwoty. Jeśli wybrano kilku odbiorców, opłata jest podzielona równo. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Opłata zostanie odjęta od kwoty wysyłane.Odbiorca otrzyma mniej niż veriums wpisz w polu kwoty. Jeśli wybrano kilku odbiorców, opłata jest podzielona równo. S&ubtract fee from amount @@ -2589,8 +2589,8 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za Wprowadź etykietę dla tego adresu by dodać go do listy użytych adresów - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Wiadomość, która została dołączona do URI bitcoin:, która będzie przechowywana wraz z transakcją w celach informacyjnych. Uwaga: Ta wiadomość nie będzie rozsyłana w sieci Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Wiadomość, która została dołączona do URI verium:, która będzie przechowywana wraz z transakcją w celach informacyjnych. Uwaga: Ta wiadomość nie będzie rozsyłana w sieci Verium. Pay To: @@ -2634,7 +2634,7 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za Podpi&sz Wiadomość - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. Możesz podpisywać wiadomości swoimi adresami aby udowodnić, że jesteś ich właścicielem. Uważaj, aby nie podpisywać niczego co wzbudza Twoje podejrzenia, ponieważ ktoś może stosować phishing próbując nakłonić Cię do ich podpisania. Akceptuj i podpisuj tylko w pełni zrozumiałe komunikaty i wiadomości. @@ -3334,7 +3334,7 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Rozprowadzane na licencji MIT, zobacz dołączony plik %s lub %s diff --git a/src/qt/locale/bitcoin_pt.ts b/src/qt/locale/bitcoin_pt.ts index 2ee7ef434b..f795a8bdff 100644 --- a/src/qt/locale/bitcoin_pt.ts +++ b/src/qt/locale/bitcoin_pt.ts @@ -188,8 +188,8 @@ Insira a password antiga e a nova para a carteira. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Lembra se que encrostar a sua carteira não o pode defender na totalidade os seus bitcoins de serem roubados por um malware que possa infectar o seu computador. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Lembra se que encrostar a sua carteira não o pode defender na totalidade os seus veriums de serem roubados por um malware que possa infectar o seu computador. Wallet to be encrypted @@ -430,8 +430,8 @@ Barra de ferramentas dos separadores - Request payments (generates QR codes and bitcoin: URIs) - Solicitar pagamentos (gera códigos QR e bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + Solicitar pagamentos (gera códigos QR e verium: URIs) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Mostrar a lista de etiquetas e endereços de receção usados - Open a bitcoin: URI or payment request - Abrir URI bitcoin: ou pedido de pagamento + Open a verium: URI or payment request + Abrir URI verium: ou pedido de pagamento &Command-line options @@ -875,7 +875,7 @@ The entered address "%1" is not a valid Verium address. - O endereço introduzido "%1" não é um endereço bitcoin válido. + O endereço introduzido "%1" não é um endereço verium válido. Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address. @@ -1026,12 +1026,12 @@ Formulário - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Transações recentes podem não ser visíveis por agora, portanto o saldo da sua carteira pode estar incorreto. Esta informação será corrigida quando a sua carteira acabar de sincronizar com a rede, como está explicado em baixo. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Tentar enviar bitcoins que estão afetadas por transações ainda não exibidas não será aceite pela rede. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Tentar enviar veriums que estão afetadas por transações ainda não exibidas não será aceite pela rede. Number of blocks left @@ -1233,7 +1233,7 @@ Automatically open the Verium client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir a porta do cliente bitcoin automaticamente no seu router. Isto apenas funciona se o seu router suportar UPnP e este se encontrar ligado. + Abrir a porta do cliente verium automaticamente no seu router. Isto apenas funciona se o seu router suportar UPnP e este se encontrar ligado. Map port using &UPnP @@ -1470,16 +1470,16 @@ Erro do pedido de pagamento - Cannot start bitcoin: click-to-pay handler - Impossível iniciar o controlador de bitcoin: click-to-pay + Cannot start verium: click-to-pay handler + Impossível iniciar o controlador de verium: click-to-pay URI handling Manuseamento de URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' não é um URI válido. Utilize 'bitcoin:'. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' não é um URI válido. Utilize 'verium:'. You are using a BIP70 URL which will be unsupported in the future. @@ -2342,7 +2342,7 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Lixo: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. Quando o volume de transações é maior que o espaço nos blocos, os mineradores, bem como os nós de retransmissão, podem impor uma taxa mínima. Pagar apenas esta taxa mínima é muito bom, mas esteja ciente que isso pode resultar numa transação nunca confirmada, uma vez que há mais pedidos para transações do que a rede pode processar. @@ -2562,8 +2562,8 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Remover esta entrada - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - A taxa será deduzida ao valor que está a ser enviado. O destinatário irá receber menos bitcoins do que as que inseridas no campo do valor. Se estiverem selecionados múltiplos destinatários, a taxa será repartida equitativamente. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + A taxa será deduzida ao valor que está a ser enviado. O destinatário irá receber menos veriums do que as que inseridas no campo do valor. Se estiverem selecionados múltiplos destinatários, a taxa será repartida equitativamente. S&ubtract fee from amount @@ -2590,8 +2590,8 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u Introduza uma etiqueta para este endereço para o adicionar à sua lista de endereços usados - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Uma mensagem que estava anexada ao URI bitcoin: que será armazenada com a transação para sua referência. Nota: Esta mensagem não será enviada através da rede Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Uma mensagem que estava anexada ao URI verium: que será armazenada com a transação para sua referência. Nota: Esta mensagem não será enviada através da rede Verium. Pay To: @@ -2635,7 +2635,7 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u &Assinar Mensagem - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. Pode assinar mensagens com os seus endereços para provar que são seus. Tenha atenção ao assinar mensagens ambíguas, pois ataques de phishing podem tentar enganá-lo de modo a assinar a sua identidade para os atacantes. Apenas assine declarações detalhadas com as quais concorde. @@ -3334,7 +3334,7 @@ Nota: como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por u - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuído sob licença de software MIT, veja o ficheiro %s ou %s diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index ef25c205d4..72f89dcb89 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -188,8 +188,8 @@ Digite a senha antiga e a nova senha para a carteira - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Lembre-se que sua carteira criptografada não poderá proteger totalmente os seus bitcoins de serem roubados por softwares maldosos que infectem seu computador. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Lembre-se que sua carteira criptografada não poderá proteger totalmente os seus veriums de serem roubados por softwares maldosos que infectem seu computador. Wallet to be encrypted @@ -363,7 +363,7 @@ Send coins to a Verium address - Enviar moedas para um endereço bitcoin + Enviar moedas para um endereço verium Backup wallet to another location @@ -430,8 +430,8 @@ Barra de ferramentas - Request payments (generates QR codes and bitcoin: URIs) - Solicitações de pagamentos (gera códigos QR e bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + Solicitações de pagamentos (gera códigos QR e verium: URIs) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Mostrar a lista de endereços de recebimento usados ​​e rótulos - Open a bitcoin: URI or payment request - Abrir um bitcoin: URI ou cobrança + Open a verium: URI or payment request + Abrir um verium: URI ou cobrança &Command-line options @@ -1026,12 +1026,12 @@ Formulário - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Transações recentes podem não estar visíveis ainda, portanto o seu saldo pode estar incorreto. Esta informação será corrigida assim que sua carteira for sincronizada com a rede, como detalhado abaixo. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Tentar gastar bitcoins que estão em transações ainda não exibidas, não vão ser aceitos pela rede. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Tentar gastar veriums que estão em transações ainda não exibidas, não vão ser aceitos pela rede. Number of blocks left @@ -1469,16 +1469,16 @@ Erro no pedido de pagamento - Cannot start bitcoin: click-to-pay handler - Não foi possível iniciar bitcoin: manipulador click-to-pay + Cannot start verium: click-to-pay handler + Não foi possível iniciar verium: manipulador click-to-pay URI handling Manipulação de URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' não é um URI válido. Use 'bitcoin:'. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' não é um URI válido. Use 'verium:'. You are using a BIP70 URL which will be unsupported in the future. @@ -2341,7 +2341,7 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Poeira: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. Quando o volume de transações é maior que o espaço nos blocos, os mineradores, bem como os nós de retransmissão, podem impor uma taxa mínima. Pagando apenas esta taxa mínima é muito bom, mas esteja ciente de que isso pode resultar em uma transação nunca confirmada, uma vez que há mais demanda por transações do que a rede pode processar. @@ -2560,8 +2560,8 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Remover esta entrada - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - A taxa será deduzida da quantia que está sendo enviada. O destinatário receberá menos bitcoins do que você colocou no campo de quantidade. Se vários destinatários estão selecionados, a taxa é dividida igualmente. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + A taxa será deduzida da quantia que está sendo enviada. O destinatário receberá menos veriums do que você colocou no campo de quantidade. Se vários destinatários estão selecionados, a taxa é dividida igualmente. S&ubtract fee from amount @@ -2588,8 +2588,8 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por Digite um rótulo para este endereço para adicioná-lo no catálogo - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - A mensagem que foi anexada ao bitcoin: URI na qual será gravada na transação para sua referência. Nota: Essa mensagem não será gravada publicamente na rede Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A mensagem que foi anexada ao verium: URI na qual será gravada na transação para sua referência. Nota: Essa mensagem não será gravada publicamente na rede Verium. Pay To: @@ -2633,8 +2633,8 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por &Assinar mensagem - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Você pode assinar mensagens com seus endereços para provar que você pode receber bitcoins enviados por alguém. Cuidado para não assinar nada vago ou aleatório, pois ataques phishing podem tentar te enganar para assinar coisas para eles como se fosse você. Somente assine termos bem detalhados que você concorde. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Você pode assinar mensagens com seus endereços para provar que você pode receber veriums enviados por alguém. Cuidado para não assinar nada vago ou aleatório, pois ataques phishing podem tentar te enganar para assinar coisas para eles como se fosse você. Somente assine termos bem detalhados que você concorde. The Verium address to sign the message with @@ -3332,7 +3332,7 @@ Nota: Como a taxa é calculada por byte, uma taxa de "100 satoshis por kB" por - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuído sob a licença de software MIT, veja o arquivo %s ou %s diff --git a/src/qt/locale/bitcoin_ro.ts b/src/qt/locale/bitcoin_ro.ts index cb8f9f26e8..877d922fbb 100644 --- a/src/qt/locale/bitcoin_ro.ts +++ b/src/qt/locale/bitcoin_ro.ts @@ -390,8 +390,8 @@ Bara de unelte - Request payments (generates QR codes and bitcoin: URIs) - Cereţi plăţi (generează coduri QR şi bitcoin-uri: URls) + Request payments (generates QR codes and verium: URIs) + Cereţi plăţi (generează coduri QR şi verium-uri: URls) Show the list of used sending addresses and labels @@ -402,8 +402,8 @@ Arată lista de adrese pentru primire şi etichetele - Open a bitcoin: URI or payment request - Deschidere bitcoin: o adresa URI sau o cerere de plată + Open a verium: URI or payment request + Deschidere verium: o adresa URI sau o cerere de plată &Command-line options @@ -882,12 +882,12 @@ Form - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Tranzactiile recente pot sa nu fie inca vizibile, de aceea balanta portofelului poate fi incorecta. Aceasta informatie va fi corecta de indata ce portofelul va fi complet sincronizat cu reteaua Verium, asa cum este detaliat mai jos. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Incercarea de a cheltui bitcoini care sunt afectati de tranzactii ce inca nu sunt afisate nu va fi acceptata de retea. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Incercarea de a cheltui veriumi care sunt afectati de tranzactii ce inca nu sunt afisate nu va fi acceptata de retea. Number of blocks left @@ -1156,7 +1156,7 @@ Choose the default subdivision unit to show in the interface and when sending coins. - Alegeţi subdiviziunea folosită la afişarea interfeţei şi la trimiterea de bitcoin. + Alegeţi subdiviziunea folosită la afişarea interfeţei şi la trimiterea de verium. Whether to show coin control features or not. @@ -1216,7 +1216,7 @@ The supplied proxy address is invalid. - Adresa bitcoin pe care aţi specificat-o nu este validă. + Adresa verium pe care aţi specificat-o nu este validă. @@ -1301,7 +1301,7 @@ Eroare la cererea de plată - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Verium nu poate porni: click-to-pay handler @@ -1309,8 +1309,8 @@ Gestionare URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' nu este un URI valid. Folositi 'bitcoin:' in loc. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' nu este un URI valid. Folositi 'verium:' in loc. Payment request fetch URL is invalid: %1 @@ -2274,7 +2274,7 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o Warning: Invalid Verium address - Atenţie: Adresa bitcoin nevalidă! + Atenţie: Adresa verium nevalidă! Warning: Unknown change address @@ -2317,7 +2317,7 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o The Verium address to send the payment to - Adresa bitcoin către care se face plata + Adresa verium către care se face plata Alt+A @@ -2336,8 +2336,8 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o Înlătură această intrare - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Taxa va fi scazuta in suma trimisa. Destinatarul va primi mai putini bitcoin decat ati specificat in campul sumei trimise. Daca au fost selectati mai multi destinatari, taxa se va imparti in mod egal. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Taxa va fi scazuta in suma trimisa. Destinatarul va primi mai putini verium decat ati specificat in campul sumei trimise. Daca au fost selectati mai multi destinatari, taxa se va imparti in mod egal. S&ubtract fee from amount @@ -2364,8 +2364,8 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o Introduceţi eticheta pentru ca această adresa să fie introdusă în lista de adrese folosite - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - un mesaj a fost ataşat la bitcoin: URI care va fi stocat cu tranzacţia pentru referinţa dvs. Notă: Acest mesaj nu va fi trimis către reţeaua bitcoin. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + un mesaj a fost ataşat la verium: URI care va fi stocat cu tranzacţia pentru referinţa dvs. Notă: Acest mesaj nu va fi trimis către reţeaua verium. Pay To: @@ -2409,8 +2409,8 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o &Semnează mesaj - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Puteţi semna mesaje/contracte cu adresele dvs. pentru a demostra ca puteti primi bitcoini trimisi la ele. Aveţi grijă să nu semnaţi nimic vag sau aleator, deoarece atacurile de tip phishing vă pot păcăli să le transferaţi identitatea. Semnaţi numai declaraţiile detaliate cu care sînteti de acord. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Puteţi semna mesaje/contracte cu adresele dvs. pentru a demostra ca puteti primi veriumi trimisi la ele. Aveţi grijă să nu semnaţi nimic vag sau aleator, deoarece atacurile de tip phishing vă pot păcăli să le transferaţi identitatea. Semnaţi numai declaraţiile detaliate cu care sînteti de acord. The Verium address to sign the message with @@ -3092,7 +3092,7 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuit sub licenţa de programe MIT, vezi fişierul însoţitor %s sau %s diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index e4ffa7ff86..2c226b75e9 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -188,7 +188,7 @@ Введите старый и новый пароль для кошелька. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. Помните, что шифрование вашего кошелька не может полностью защитить ваши биткойны от кражи вредоносными программами, заражающими ваш компьютер. @@ -430,7 +430,7 @@ Панель вкладок - Request payments (generates QR codes and bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) Запросить платеж @@ -442,7 +442,7 @@ Показать список использованных адресов и меток получателей - Open a bitcoin: URI or payment request + Open a verium: URI or payment request Открыть биткойн: URI или запрос платежа @@ -1022,11 +1022,11 @@ Форма - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Последние транзакции пока могут быть не видны, поэтому вы можете видеть некорректный баланс ваших кошельков. Отображаемая информация будет верна после завершения синхронизации. Прогресс синхронизации вы можете видеть ниже. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. Попытка потратить средства, использованные в транзакциях, которые ещё не синхронизированы, будет отклонена сетью. @@ -1465,7 +1465,7 @@ Ошибка запроса платежа - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Не удаётся запустить биткойн: обработчик click-to-pay @@ -1473,8 +1473,8 @@ Обработка идентификатора - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' не верный URI. Используйте 'bitcoin:' вместо этого. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' не верный URI. Используйте 'verium:' вместо этого. You are using a BIP70 URL which will be unsupported in the future. @@ -2337,7 +2337,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Пыль: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. Когда объем транзакций меньше, чем пространство в блоках, майнеры, а также ретранслирующие узлы могут устанавливать минимальную плату. Платить только эту минимальную комиссию - это хорошо, но имейте в виду, что это может привести к тому, что транзакция никогда не будет подтверждена, если будет больше биткойн-транзакций, чем может обработать сеть. @@ -2556,7 +2556,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Удалить эту запись - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. С отправляемой суммы будет удержана комиссия. Получателю придёт меньше биткойнов, чем вы вводите в поле количества. Если выбрано несколько получателей, комиссия распределяется поровну. @@ -2584,7 +2584,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Введите метку для этого адреса, чтобы добавить его в список используемых адресов - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. Сообщение прикрепленное к биткойн идентификатору будет сохранено вместе с транзакцией для вашего сведения. Заметьте: Сообщение не будет отправлено через сеть Биткойн. @@ -2629,7 +2629,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p &Подписать Сообщение - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. Вы можете подписывать сообщения/соглашения своими адресами, чтобы доказать свою возможность получать биткойны на них. Будьте осторожны, не подписывайте что-то неопределённое или случайное, так как фишинговые атаки могут обманным путём заставить вас подписать нежелательные сообщения. Подписывайте только те сообщения, с которыми вы согласны вплоть до мелочей. @@ -3328,7 +3328,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Распространяется под лицензией MIT, см. приложенный файл %s или %s diff --git a/src/qt/locale/bitcoin_si.ts b/src/qt/locale/bitcoin_si.ts index 95a6b50a00..8610f9af4e 100644 --- a/src/qt/locale/bitcoin_si.ts +++ b/src/qt/locale/bitcoin_si.ts @@ -308,6 +308,6 @@ WalletView - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts index ddc918da95..bfe59ab3a3 100644 --- a/src/qt/locale/bitcoin_sk.ts +++ b/src/qt/locale/bitcoin_sk.ts @@ -188,8 +188,8 @@ Zadajte starú a novú frázu pre túto peňaženku. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Pamätajte, že zašifrovanie peňaženky neochráni úplne vaše bitcoiny pred ukradnutím škodlivými programami vo vašom počítači. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Pamätajte, že zašifrovanie peňaženky neochráni úplne vaše veriumy pred ukradnutím škodlivými programami vo vašom počítači. Wallet to be encrypted @@ -363,7 +363,7 @@ Send coins to a Verium address - Poslať bitcoins na adresu + Poslať veriums na adresu Backup wallet to another location @@ -430,8 +430,8 @@ Lišta záložiek - Request payments (generates QR codes and bitcoin: URIs) - Vyžiadať platby (vygeneruje QR kódy a bitcoin: URI) + Request payments (generates QR codes and verium: URIs) + Vyžiadať platby (vygeneruje QR kódy a verium: URI) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Zobraziť zoznam použitých prijímacích adries a ich popisov - Open a bitcoin: URI or payment request - Otvoriť bitcoin URI alebo výzvu k platbe + Open a verium: URI or payment request + Otvoriť verium URI alebo výzvu k platbe &Command-line options @@ -1026,12 +1026,12 @@ Formulár - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Nedávne transakcie nemusia byť ešte viditeľné preto môže byť zostatok vo vašej peňaženke nesprávny. Táto informácia bude správna keď sa dokončí synchronizovanie peňaženky so sieťou bitcoin, ako je rozpísané nižšie. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Nedávne transakcie nemusia byť ešte viditeľné preto môže byť zostatok vo vašej peňaženke nesprávny. Táto informácia bude správna keď sa dokončí synchronizovanie peňaženky so sieťou verium, ako je rozpísané nižšie. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Pokus o minutie bitcoinov, ktoré sú ovplyvnené ešte nezobrazenými transakciami, nebude sieťou akceptovaný. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Pokus o minutie veriumov, ktoré sú ovplyvnené ešte nezobrazenými transakciami, nebude sieťou akceptovaný. Number of blocks left @@ -1320,7 +1320,7 @@ Choose the default subdivision unit to show in the interface and when sending coins. - Zvoľte ako deliť bitcoin pri zobrazovaní pri platbách a užívateľskom rozhraní. + Zvoľte ako deliť verium pri zobrazovaní pri platbách a užívateľskom rozhraní. Whether to show coin control features or not. @@ -1469,7 +1469,7 @@ Chyba pri vyžiadaní platby - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Nemôžeme spustiť Verium: obsluha click-to-pay @@ -1477,8 +1477,8 @@ URI manipulácia - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' je neplatná URI. Použite 'bitcoin:' + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' je neplatná URI. Použite 'verium:' You are using a BIP70 URL which will be unsupported in the future. @@ -1608,7 +1608,7 @@ Enter a Verium address (e.g. %1) - Zadajte bitcoin adresu (napr. %1) + Zadajte verium adresu (napr. %1) %1 d @@ -2342,8 +2342,8 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Prach: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Ak je v blokoch menej objemu transakcií ako priestoru, ťažiari ako aj vysielacie uzly, môžu uplatniť minimálny poplatok. Platiť iba minimálny poplatok je v poriadku, ale uvedomte si, že to môže mať za následok transakciu, ktorá sa nikdy nepotvrdí, akonáhle je väčší dopyt po bitcoinových transakciách, než dokáže sieť spracovať. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + Ak je v blokoch menej objemu transakcií ako priestoru, ťažiari ako aj vysielacie uzly, môžu uplatniť minimálny poplatok. Platiť iba minimálny poplatok je v poriadku, ale uvedomte si, že to môže mať za následok transakciu, ktorá sa nikdy nepotvrdí, akonáhle je väčší dopyt po veriumových transakciách, než dokáže sieť spracovať. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2561,8 +2561,8 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Odstrániť túto položku - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Poplatok sa odpočíta od čiastky, ktorú odosielate. Príjemca dostane menej bitcoinov ako zadáte. Ak je vybraných viacero príjemcov, poplatok je rozdelený rovným dielom. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Poplatok sa odpočíta od čiastky, ktorú odosielate. Príjemca dostane menej veriumov ako zadáte. Ak je vybraných viacero príjemcov, poplatok je rozdelený rovným dielom. S&ubtract fee from amount @@ -2589,8 +2589,8 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato Vložte popis pre túto adresu aby sa uložila do zoznamu použitých adries - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Správa ktorá bola pripojená k bitcoin: URI a ktorá bude uložená s transakcou pre Vaše potreby. Poznámka: Táto správa nebude poslaná cez sieť Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Správa ktorá bola pripojená k verium: URI a ktorá bude uložená s transakcou pre Vaše potreby. Poznámka: Táto správa nebude poslaná cez sieť Verium. Pay To: @@ -2634,7 +2634,7 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato &Podpísať Správu - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. Môžete podpísať správy svojou adresou a dokázať, že viete prijímať mince zaslané na túto adresu. Buďte však opatrní a podpíšte len podrobné prehlásenia, s ktorými plne súhlasíte, nakoľko útoky typu "phishing" Vás môžu lákať k podpísaniu nejasných alebo príliš všeobecných tvrdení čím prevezmú vašu identitu. @@ -3333,7 +3333,7 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuované pod softvérovou licenciou MIT, pozri sprievodný súbor %s alebo %s diff --git a/src/qt/locale/bitcoin_sl.ts b/src/qt/locale/bitcoin_sl.ts index 60ead617c4..ff7ffa09d9 100644 --- a/src/qt/locale/bitcoin_sl.ts +++ b/src/qt/locale/bitcoin_sl.ts @@ -188,8 +188,8 @@ Vnesite staro geslo in novo geslo za denarnico. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Pomnite, da šifriranje denarnice ne more preprečiti kraje bitcoinov preko morebitnih virusov na vašem računalniku. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Pomnite, da šifriranje denarnice ne more preprečiti kraje veriumov preko morebitnih virusov na vašem računalniku. Wallet to be encrypted @@ -430,8 +430,8 @@ Orodna vrstica zavihkov - Request payments (generates QR codes and bitcoin: URIs) - Zahtevajte plačilo (ustvarite zahtevek s kodo QR in URI tipa bitcoin) + Request payments (generates QR codes and verium: URIs) + Zahtevajte plačilo (ustvarite zahtevek s kodo QR in URI tipa verium) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ Preglejte in uredite seznam naslovov, na katere ste kdaj prejeli plačila - Open a bitcoin: URI or payment request - Izvedite plačilo iz zahtevka v datoteki ali iz URI tipa bitcoin + Open a verium: URI or payment request + Izvedite plačilo iz zahtevka v datoteki ali iz URI tipa verium &Command-line options @@ -1026,12 +1026,12 @@ Oblika - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Zadnje transakcije morda še niso vidne, zato je stanje v denarnici morda napačno. Ti podatki bodo pravilni, ko se bo vaša denarnica končala s sinhronizacijo z bitcoin omrežjem, kot je podrobneje opisano spodaj. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Zadnje transakcije morda še niso vidne, zato je stanje v denarnici morda napačno. Ti podatki bodo pravilni, ko se bo vaša denarnica končala s sinhronizacijo z verium omrežjem, kot je podrobneje opisano spodaj. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Poskus porabe bitcoinov, na katere vplivajo še ne prikazane transakcije, omrežje ne bo sprejelo. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Poskus porabe veriumov, na katere vplivajo še ne prikazane transakcije, omrežje ne bo sprejelo. Number of blocks left @@ -1469,16 +1469,16 @@ Napaka pri zahtevi plačila - Cannot start bitcoin: click-to-pay handler - Ni mogoče zagnati rokovalca plačilnih povezav tipa bitcoin:. + Cannot start verium: click-to-pay handler + Ni mogoče zagnati rokovalca plačilnih povezav tipa verium:. URI handling Rokovanje z URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' ni veljaven URI. Uporabite raje 'bitcoin:' . + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' ni veljaven URI. Uporabite raje 'verium:' . You are using a BIP70 URL which will be unsupported in the future. @@ -2340,8 +2340,8 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Prah: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Kadar je v blokih manj volumna transakcij kot prostora v blokih, lahko rudarji in preusmeritvena vozlišča (relay nodes) uveljavijo minimalno provizijo. Plačilo le te minimalne provizije je čisto v redu, vendar se zavedajte, da lahko to povzroči nikoli potrjeno transakcijo, ko bo po bitcoin transakcijah večje povpraševanje, kot ga lahko obdela omrežje. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + Kadar je v blokih manj volumna transakcij kot prostora v blokih, lahko rudarji in preusmeritvena vozlišča (relay nodes) uveljavijo minimalno provizijo. Plačilo le te minimalne provizije je čisto v redu, vendar se zavedajte, da lahko to povzroči nikoli potrjeno transakcijo, ko bo po verium transakcijah večje povpraševanje, kot ga lahko obdela omrežje. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2559,7 +2559,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Izpraznite vsebino polja - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. Znesek plačila bo zmanjšan za znesek provizije. Prejemnik bo prejel manjše število kovancev, kot je bil vnešeni znesek. Če je prejemnikov več, bo provizija med njih enakomerno porazdeljena. @@ -2587,8 +2587,8 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" Če vnesete oznako za zgornji naslov, se bo skupaj z naslovom shranila v imenk že uporabljenih naslovov - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Sporočilo, ki ste ga pripeli na URI tipa bitcoin:. Shranjeno bo skupaj s podatki o transakciji. Opomba: Sporočilo ne bo poslano preko omrežja Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Sporočilo, ki ste ga pripeli na URI tipa verium:. Shranjeno bo skupaj s podatki o transakciji. Opomba: Sporočilo ne bo poslano preko omrežja Verium. Pay To: @@ -2632,7 +2632,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" &Podpiši sporočilo - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. S svojimi naslovi lahko podpisujete sporočila ali pogodbe in s tem dokazujete, da na teh naslovih lahko prejemate kovance. Bodite previdni in ne podpisujte ničesar nejasnega ali naključnega, ker vas zlikovci preko ribarjenja (phishing) lahko prelisičijo, da na njih prepišete svojo identiteto. Podpisujte samo podrobno opisane izjave, s katerimi se strinjate. @@ -3331,7 +3331,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuirano v okviru programske licence MIT. Podrobnosti so navedene v priloženi datoteki %s ali %s diff --git a/src/qt/locale/bitcoin_sn.ts b/src/qt/locale/bitcoin_sn.ts index 26ec2a993c..c7778b89ab 100644 --- a/src/qt/locale/bitcoin_sn.ts +++ b/src/qt/locale/bitcoin_sn.ts @@ -344,6 +344,6 @@ WalletView - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/bitcoin_sr.ts index fc9c6ad482..05f8696d90 100644 --- a/src/qt/locale/bitcoin_sr.ts +++ b/src/qt/locale/bitcoin_sr.ts @@ -390,7 +390,7 @@ Трака са картицама - Request payments (generates QR codes and bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) Затражи плаћање (генерише QR кодове и биткоин: URI-е) @@ -402,7 +402,7 @@ Прегледајте листу коришћених адреса и етикета за пријем уплата - Open a bitcoin: URI or payment request + Open a verium: URI or payment request Отворите биткоин: URI или захтев за плаћање @@ -1251,7 +1251,7 @@ - bitcoin-core + verium-core Insufficient funds Nedovoljno sredstava diff --git a/src/qt/locale/bitcoin_sr@latin.ts b/src/qt/locale/bitcoin_sr@latin.ts index 240c913cc1..1be9fc0217 100644 --- a/src/qt/locale/bitcoin_sr@latin.ts +++ b/src/qt/locale/bitcoin_sr@latin.ts @@ -378,8 +378,8 @@ Alatke za tabove - Request payments (generates QR codes and bitcoin: URIs) - Zatražite plaćanje (generiše QR kodove i bitcoin: URI-e) + Request payments (generates QR codes and verium: URIs) + Zatražite plaćanje (generiše QR kodove i verium: URI-e) Error @@ -702,7 +702,7 @@ - bitcoin-core + verium-core Insufficient funds Nedovoljno sredstava diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts index 131d539132..d08897d119 100644 --- a/src/qt/locale/bitcoin_sv.ts +++ b/src/qt/locale/bitcoin_sv.ts @@ -67,7 +67,7 @@ These are your Verium addresses for sending payments. Always check the amount and the receiving address before sending coins. - Detta är dina Verium-adresser för att skicka betalningar. Kontrollera alltid belopp och mottagaradress innan du skickar bitcoin. + Detta är dina Verium-adresser för att skicka betalningar. Kontrollera alltid belopp och mottagaradress innan du skickar verium. These are your Verium addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. @@ -189,8 +189,8 @@ Försök igen. Ange den gamla lösenfrasen och den nya lösenfrasen för plånboken. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Kom ihåg att kryptering av din plånbok inte helt kan skydda dig från stöld av dina bitcoins om skadlig kod infekterat din dator. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Kom ihåg att kryptering av din plånbok inte helt kan skydda dig från stöld av dina veriums om skadlig kod infekterat din dator. Wallet to be encrypted @@ -364,7 +364,7 @@ Försök igen. Send coins to a Verium address - Skicka bitcoin till en Verium-adress + Skicka verium till en Verium-adress Backup wallet to another location @@ -431,8 +431,8 @@ Försök igen. Verktygsfält för flikar - Request payments (generates QR codes and bitcoin: URIs) - Begär betalningar (skapar QR-koder och bitcoin: -URIer) + Request payments (generates QR codes and verium: URIs) + Begär betalningar (skapar QR-koder och verium: -URIer) Show the list of used sending addresses and labels @@ -443,8 +443,8 @@ Försök igen. Visa listan med använda mottagaradresser och etiketter - Open a bitcoin: URI or payment request - Öppna en bitcoin: URI eller betalningsbegäran + Open a verium: URI or payment request + Öppna en verium: URI eller betalningsbegäran &Command-line options @@ -999,12 +999,12 @@ Försök igen. Formulär - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Nyligen gjorda transaktioner visas inte korrekt och därför kan din plånboks saldo visas felaktigt. Denna information kommer att visas korrekt så snart din plånbok har synkroniserats med Verium-nätverket enligt informationen nedan. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Att försöka spendera bitcoin som påverkas av transaktioner som ännu inte visas kommer inte accepteras av nätverket. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Att försöka spendera verium som påverkas av transaktioner som ännu inte visas kommer inte accepteras av nätverket. Number of blocks left @@ -1438,16 +1438,16 @@ Försök igen. Fel vid betalningsbegäran - Cannot start bitcoin: click-to-pay handler - Kan inte starta bitcoin: klicka-och-betala hanteraren + Cannot start verium: click-to-pay handler + Kan inte starta verium: klicka-och-betala hanteraren URI handling URI-hantering - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' är inte en accepterad URI. Använd 'bitcoin:' istället. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' är inte en accepterad URI. Använd 'verium:' istället. You are using a BIP70 URL which will be unsupported in the future. @@ -2298,8 +2298,8 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Damm: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - När transaktionsvolymen är mindre än utrymmet i blocken kan både brytardatorer och relänoder kräva en minimiavgift. Det är okej att bara betala denna minimiavgift, men du ska vara medveten om att det kan leda till att en transaktion aldrig bekräftas så fort efterfrågan på bitcointransaktioner är större än vad nätverket kan hantera. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + När transaktionsvolymen är mindre än utrymmet i blocken kan både brytardatorer och relänoder kräva en minimiavgift. Det är okej att bara betala denna minimiavgift, men du ska vara medveten om att det kan leda till att en transaktion aldrig bekräftas så fort efterfrågan på veriumtransaktioner är större än vad nätverket kan hantera. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2509,8 +2509,8 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Ta bort denna post - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Avgiften dras från beloppet som skickas. Mottagaren kommer att ta emot mindre bitcoin än du angivit i beloppsfältet. Om flera mottagare väljs kommer avgiften att fördelas jämt. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Avgiften dras från beloppet som skickas. Mottagaren kommer att ta emot mindre verium än du angivit i beloppsfältet. Om flera mottagare väljs kommer avgiften att fördelas jämt. S&ubtract fee from amount @@ -2537,8 +2537,8 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Ange en etikett för denna adress för att lägga till den i listan med använda adresser - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Ett meddelande som bifogades bitcoin: -URIn och som sparas med transaktionen som referens. Obs: Meddelandet sänds inte över Verium-nätverket. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Ett meddelande som bifogades verium: -URIn och som sparas med transaktionen som referens. Obs: Meddelandet sänds inte över Verium-nätverket. Pay To: @@ -2582,8 +2582,8 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f &Signera meddelande - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Du kan signera meddelanden/avtal med dina adresser för att bevisa att du kan ta emot bitcoin som skickats till dem. Var försiktig så du inte signerar något oklart eller konstigt, eftersom phishing-angrepp kan försöka få dig att signera över din identitet till dem. Signera endast väldetaljerade meddelanden som du godkänner. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Du kan signera meddelanden/avtal med dina adresser för att bevisa att du kan ta emot verium som skickats till dem. Var försiktig så du inte signerar något oklart eller konstigt, eftersom phishing-angrepp kan försöka få dig att signera över din identitet till dem. Signera endast väldetaljerade meddelanden som du godkänner. The Verium address to sign the message with @@ -3273,7 +3273,7 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distribuerad under MIT mjukvarulicens, se den bifogade filen %s eller %s @@ -3718,7 +3718,7 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f Insufficient funds - Otillräckligt med bitcoins + Otillräckligt med veriums Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified. diff --git a/src/qt/locale/bitcoin_szl.ts b/src/qt/locale/bitcoin_szl.ts index 2b8f2635fd..8860038c2a 100644 --- a/src/qt/locale/bitcoin_szl.ts +++ b/src/qt/locale/bitcoin_szl.ts @@ -390,8 +390,8 @@ Lajsta szkart - Request payments (generates QR codes and bitcoin: URIs) - Żōndej płatu (gyneruje kod QR jak tyż URI bitcoin:) + Request payments (generates QR codes and verium: URIs) + Żōndej płatu (gyneruje kod QR jak tyż URI verium:) Show the list of used sending addresses and labels @@ -402,8 +402,8 @@ Pokŏż wykŏz adres i etyket użytych do ôdbiyraniŏ - Open a bitcoin: URI or payment request - Ôdewrzij URI bitcoin: abo żōndanie płatu + Open a verium: URI or payment request + Ôdewrzij URI verium: abo żōndanie płatu &Command-line options @@ -874,12 +874,12 @@ Formular - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Świyże transakcyje mogōm niy być jeszcze widzialne, a tedyć saldo portmanyja może być niynŏleżne. Te detale bydōm nŏleżne, kej portmanyj zakōńczy synchrōnizacyjõ z necym bitcoin, zgodnie z miyniōnym ôpisym. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Świyże transakcyje mogōm niy być jeszcze widzialne, a tedyć saldo portmanyja może być niynŏleżne. Te detale bydōm nŏleżne, kej portmanyj zakōńczy synchrōnizacyjõ z necym verium, zgodnie z miyniōnym ôpisym. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Prōba wydaniŏ bitcoinōw kere niy sōm jeszcze wyświytlōne za transakcyjŏ ôstanie ôdciepniyntŏ bez nec. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Prōba wydaniŏ veriumōw kere niy sōm jeszcze wyświytlōne za transakcyjŏ ôstanie ôdciepniyntŏ bez nec. Number of blocks left @@ -1135,7 +1135,7 @@ The displayed information may be out of date. Your wallet automatically synchronizes with the Verium network after a connection is established, but this process has not completed yet. - Wyświytlanŏ informacyjŏ może być niyterŏźnŏ. Twōj portmanyj synchrōnizuje sie autōmatycznie z necym bitcoin zarŏz po tym, jak zrychtowane je skuplowanie, ale proces tyn niy ôstoł jeszcze skōńczōny. + Wyświytlanŏ informacyjŏ może być niyterŏźnŏ. Twōj portmanyj synchrōnizuje sie autōmatycznie z necym verium zarŏz po tym, jak zrychtowane je skuplowanie, ale proces tyn niy ôstoł jeszcze skōńczōny. Available: @@ -1169,8 +1169,8 @@ Bedynōng URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' to niyma nŏleżne URI. Użyj 'bitcoin:'. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' to niyma nŏleżne URI. Użyj 'verium:'. Payment request network doesn't match client network. @@ -1680,8 +1680,8 @@ Wiadōmość: - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Wiadōmość, kerŏ ôstała prziwstōnŏ do URI bitcoin:, kerŏ bydzie przechowowanŏ z transakcyjōm w cylach informacyjnych. Napōmniynie: Ta wiadōmość niy bydzie rozszyrzowanŏ w necu Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Wiadōmość, kerŏ ôstała prziwstōnŏ do URI verium:, kerŏ bydzie przechowowanŏ z transakcyjōm w cylach informacyjnych. Napōmniynie: Ta wiadōmość niy bydzie rozszyrzowanŏ w necu Verium. @@ -1944,7 +1944,7 @@ - bitcoin-core + verium-core The %s developers Twōrcy %s diff --git a/src/qt/locale/bitcoin_ta.ts b/src/qt/locale/bitcoin_ta.ts index 35afe5f074..7001fd7728 100644 --- a/src/qt/locale/bitcoin_ta.ts +++ b/src/qt/locale/bitcoin_ta.ts @@ -188,7 +188,7 @@ பழைய கடவுச்சொல் மற்றும் புதிய கடுவுசொல்லை உள்ளிடுக. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. வாலட்டை குறியாக்கம் செய்தால் மட்டும் உங்கள் பிட்காயினை வைரஸிடம் இருந்து பாதுகாக்க இயலாது. @@ -430,8 +430,8 @@ தாவல்கள் கருவிப்பட்டி - Request payments (generates QR codes and bitcoin: URIs) - கொடுப்பனவுகளை கோருதல் (QR குறியீடுகள் மற்றும் bitcoin உருவாக்குகிறது: URI கள்) + Request payments (generates QR codes and verium: URIs) + கொடுப்பனவுகளை கோருதல் (QR குறியீடுகள் மற்றும் verium உருவாக்குகிறது: URI கள்) Show the list of used sending addresses and labels @@ -442,7 +442,7 @@ பயன்படுத்திய முகவரிகள் மற்றும் லேபிள்களின் பட்டியலைக் காட்டு - Open a bitcoin: URI or payment request + Open a verium: URI or payment request ஒரு Verium திறக்க: URI அல்லது பணம் கோரிக்கை @@ -1022,11 +1022,11 @@ படிவம் - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. சமீபத்திய பரிவர்த்தனைகள் இன்னும் காணப்படாமல் இருக்கலாம், எனவே உங்கள் பணப்பையின் சமநிலை தவறாக இருக்கலாம். கீழே விவரிக்கப்பட்டுள்ளபடி, உங்கள் பணப்பை பிட்ஃபோனை நெட்வொர்க்குடன் ஒத்திசைக்க முடிந்ததும் இந்த தகவல் சரியாக இருக்கும். - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. இதுவரை காட்டப்படாத பரிவர்த்தனைகளால் பாதிக்கப்படும் பிட்னிக்களை செலவிடுவதற்கு முயற்சி பிணையத்தால் ஏற்கப்படாது. @@ -1465,7 +1465,7 @@ கட்டணம் கோரிக்கை பிழை - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Verium தொடங்க முடியாது: கிளிக் க்கு ஊதியம் கையாளுதல் @@ -1473,8 +1473,8 @@ URI கையாளுதல் - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin: //' சரியான URI அல்ல. அதற்கு பதிலாக 'பிட்கின்:' பயன்படுத்தவும். + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium: //' சரியான URI அல்ல. அதற்கு பதிலாக 'பிட்கின்:' பயன்படுத்தவும். You are using a BIP70 URL which will be unsupported in the future. @@ -2313,8 +2313,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p டஸ்ட் - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - தொகுதிகள் உள்ள இடத்தை விட குறைவான பரிவர்த்தனை அளவு இருக்கும் போது, ​​சுரங்க தொழிலாளர்கள் மற்றும் ரிலேடிங் முனைகள் குறைந்தபட்ச கட்டணத்தைச் செயல்படுத்தலாம். இந்த குறைந்தபட்ச கட்டணத்தை மட்டும் செலுத்துவது நன்றாக உள்ளது, ஆனால் நெட்வொர்க்கில் செயல்படுவதை விட bitcoin பரிவர்த்தனைகளுக்கு இன்னும் கோரிக்கை தேவைப்பட்டால் இது ஒருபோதும் உறுதிப்படுத்தாத பரிவர்த்தனைக்கு காரணமாக இருக்கலாம். + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + தொகுதிகள் உள்ள இடத்தை விட குறைவான பரிவர்த்தனை அளவு இருக்கும் போது, ​​சுரங்க தொழிலாளர்கள் மற்றும் ரிலேடிங் முனைகள் குறைந்தபட்ச கட்டணத்தைச் செயல்படுத்தலாம். இந்த குறைந்தபட்ச கட்டணத்தை மட்டும் செலுத்துவது நன்றாக உள்ளது, ஆனால் நெட்வொர்க்கில் செயல்படுவதை விட verium பரிவர்த்தனைகளுக்கு இன்னும் கோரிக்கை தேவைப்பட்டால் இது ஒருபோதும் உறுதிப்படுத்தாத பரிவர்த்தனைக்கு காரணமாக இருக்கலாம். A too low fee might result in a never confirming transaction (read the tooltip) @@ -2524,7 +2524,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p இந்த உள்ளீட்டை அகற்று - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. அனுப்பப்படும் தொகையிலிருந்து கட்டணம் கழிக்கப்படும். நீங்கள் உள்ளிடும் தொகையை விட பெறுநர் குறைவான பிட்காயின்களைப் பெறுவார். பல பெறுநர்கள் தேர்ந்தெடுக்கப்பட்டால், கட்டணம் சமமாக பிரிக்கப்படும். @@ -2552,7 +2552,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p இந்த முகவரியை பயன்படுத்தப்பட்ட முகவரிகளின் பட்டியலில் சேர்க்க ஒரு லேபிளை உள்ளிடவும். - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. பிட்காயினுடன் இணைக்கப்பட்ட செய்தி: உங்கள் எதிர்கால குறிப்புக்காக பரிவர்த்தனையுடன் யூஆர்ஐ சேமிக்கப்படும். குறிப்பு: இந்த செய்தி பிட்காயின் வலையமைப்பிற்கு அனுப்பப்படாது. @@ -2597,7 +2597,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p &செய்தியை கையொப்பமிடுங்கள் - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. மற்றவர்களுக்கு அனுப்பப்பட்ட பிட்காயின்களைப் நீங்கள் பெறலாம் என்பதை நிரூபிக்க உங்கள் முகவரிகளுடன் செய்திகள் / ஒப்பந்தங்களில் கையொப்பமிடலாம். தெளிவற்ற அல்லது சீரற்ற எதையும் கையொப்பமிடாமல் கவனமாக இருங்கள், ஏனெனில் ஃபிஷிங் தாக்குதல்கள் உங்கள் அடையாளத்தை அவர்களிடம் கையொப்பமிட்டு ஏமாற்ற முயற்சிக்கும். நீங்கள் ஒப்புக்கொள்ளும் முழுமையான மற்றும் விரிவான அறிக்கைகளில் மட்டுமே கையொப்பமிடுங்கள். @@ -3268,7 +3268,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s எம்ஐடி சாப்ட்வேர் விதிமுறைகளின் கீழ் பகிர்ந்தளிக்கப்படுகிறது, அதனுடன் கொடுக்கப்பட்டுள்ள %s அல்லது %s பைல் ஐ பார்க்கவும் diff --git a/src/qt/locale/bitcoin_te.ts b/src/qt/locale/bitcoin_te.ts index 095415f228..6b413e585b 100644 --- a/src/qt/locale/bitcoin_te.ts +++ b/src/qt/locale/bitcoin_te.ts @@ -436,6 +436,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_th.ts b/src/qt/locale/bitcoin_th.ts index cf71ff28b3..0c0b67478a 100644 --- a/src/qt/locale/bitcoin_th.ts +++ b/src/qt/locale/bitcoin_th.ts @@ -307,7 +307,7 @@ Sign messages with your Verium addresses to prove you own them - เซ็นชื่อด้วยข้อความ ที่เก็บ Verium เพื่อแสดงว่าท่านเป็นเจ้าของ bitcoin นี้จริง + เซ็นชื่อด้วยข้อความ ที่เก็บ Verium เพื่อแสดงว่าท่านเป็นเจ้าของ verium นี้จริง Verify messages to ensure they were signed with specified Verium addresses @@ -330,20 +330,20 @@ แถบเครื่องมือ - Request payments (generates QR codes and bitcoin: URIs) - เรียกเก็บ การชำระเงิน (สร้าง QR codes และ bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + เรียกเก็บ การชำระเงิน (สร้าง QR codes และ verium: URIs) Show the list of used sending addresses and labels - แสดงรายการ ที่เก็บเงินที่จะส่ง bitcoin ออก และป้ายชื่อ ที่ใช้ไปแล้ว + แสดงรายการ ที่เก็บเงินที่จะส่ง verium ออก และป้ายชื่อ ที่ใช้ไปแล้ว Show the list of used receiving addresses and labels - แสดงรายการ ที่เก็บเงินที่จะรับ bitcoin เข้า และป้ายชื่อ ที่ใช้ไปแล้ว + แสดงรายการ ที่เก็บเงินที่จะรับ verium เข้า และป้ายชื่อ ที่ใช้ไปแล้ว - Open a bitcoin: URI or payment request - เปิด bitcoin: URI หรือ การเรียกเก็บเงิน (การเรียกให้ชำระเงิน) + Open a verium: URI or payment request + เปิด verium: URI หรือ การเรียกเก็บเงิน (การเรียกให้ชำระเงิน) &Command-line options @@ -1090,6 +1090,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts index 02eb20c62c..2a17df87b7 100644 --- a/src/qt/locale/bitcoin_tr.ts +++ b/src/qt/locale/bitcoin_tr.ts @@ -172,8 +172,8 @@ Cüzdan Şifrelendi - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. - Cüzdanınızı şifrelemenin, bitcoinlerinizin bilgisayara bulaşan kötücül bir yazılım tarafından çalınmaya karşı tamamen koruyamayacağını unutmayınız. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. + Cüzdanınızı şifrelemenin, veriumlerinizin bilgisayara bulaşan kötücül bir yazılım tarafından çalınmaya karşı tamamen koruyamayacağını unutmayınız. IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. @@ -394,8 +394,8 @@ Sekme araç çubuğu - Request payments (generates QR codes and bitcoin: URIs) - Ödeme talep et (QR kodu ve bitcoin URI'si oluşturur) + Request payments (generates QR codes and verium: URIs) + Ödeme talep et (QR kodu ve verium URI'si oluşturur) Show the list of used sending addresses and labels @@ -406,8 +406,8 @@ Kullanılan alış adreslerinin ve etiketlerinin listesini göster - Open a bitcoin: URI or payment request - Bir bitcoin: bağlantısı ya da ödeme talebi aç + Open a verium: URI or payment request + Bir verium: bağlantısı ya da ödeme talebi aç &Command-line options @@ -898,12 +898,12 @@ Form - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Son işlemler henüz görünmeyebilir ve bu nedenle cüzdanınızın bakiyesi yanlış olabilir. Bu bilgiler, aşağıda detaylandırıldığı gibi, cüzdanınız bitcoin ağı ile senkronizasyonunu tamamladığında doğru olacaktır. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Son işlemler henüz görünmeyebilir ve bu nedenle cüzdanınızın bakiyesi yanlış olabilir. Bu bilgiler, aşağıda detaylandırıldığı gibi, cüzdanınız verium ağı ile senkronizasyonunu tamamladığında doğru olacaktır. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Henüz görüntülenmeyen işlemlerden etkilenen bitcoinleri harcama girişiminde bulunmak ağ tarafından kabul edilmeyecektir. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Henüz görüntülenmeyen işlemlerden etkilenen veriumleri harcama girişiminde bulunmak ağ tarafından kabul edilmeyecektir. Number of blocks left @@ -1317,7 +1317,7 @@ Ödeme isteği hatası - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Verium başlatılamadı: tıkla-ve-öde yöneticisi @@ -1325,8 +1325,8 @@ URI yönetimi - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' geçerli bir protokol değil. Onun yerine 'bitcoin:' kullanınız. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' geçerli bir protokol değil. Onun yerine 'verium:' kullanınız. Payment request fetch URL is invalid: %1 @@ -1822,7 +1822,7 @@ WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. - UYARI: Verium dolandırıcılarının çok fazla etkin olduğu zamanlarda, dolandırıcılar bazı kullanıcılara buraya komutlar yazmalarını söylerek onların cüzdanlarındaki bitcoinleri çalmışlardır. Bir komutun sonuçlarını tam olarak anlamadan bu konsolu kullanmayın. + UYARI: Verium dolandırıcılarının çok fazla etkin olduğu zamanlarda, dolandırıcılar bazı kullanıcılara buraya komutlar yazmalarını söylerek onların cüzdanlarındaki veriumleri çalmışlardır. Bir komutun sonuçlarını tam olarak anlamadan bu konsolu kullanmayın. Network activity disabled @@ -2320,8 +2320,8 @@ Bu ögeyi kaldır - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - Ücret yollanan tutardan alınacaktır. Alıcı tutar alanına girdiğinizden daha az bitcoin alacaktır. Eğer birden çok alıcı seçiliyse ücret eşit olarak bölünecektir. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + Ücret yollanan tutardan alınacaktır. Alıcı tutar alanına girdiğinizden daha az verium alacaktır. Eğer birden çok alıcı seçiliyse ücret eşit olarak bölünecektir. S&ubtract fee from amount @@ -2348,8 +2348,8 @@ Kullanılmış adres listesine eklemek için bu adrese bir etiket girin - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Referans için bitcoin: URI'siyle iliştirilmiş işlemle birlikte depolanacak bir ileti. Not: Bu mesaj Verium ağı üzerinden gönderilmeyecektir. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Referans için verium: URI'siyle iliştirilmiş işlemle birlikte depolanacak bir ileti. Not: Bu mesaj Verium ağı üzerinden gönderilmeyecektir. Pay To: @@ -2393,8 +2393,8 @@ İleti &imzala - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Adreslerinize yollanan bitcoinleri alabileceğiniz ispatlamak için adreslerinizle iletiler/anlaşmalar imzalayabilirsiniz. Oltalama saldırılarının kimliğinizi imzanızla elde etmeyi deneyebilecekleri için belirsiz ya da rastgele hiçbir şey imzalamamaya dikkat ediniz. Sadece ayrıntılı açıklaması olan ve tümüne katıldığınız ifadeleri imzalayınız. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Adreslerinize yollanan veriumleri alabileceğiniz ispatlamak için adreslerinizle iletiler/anlaşmalar imzalayabilirsiniz. Oltalama saldırılarının kimliğinizi imzanızla elde etmeyi deneyebilecekleri için belirsiz ya da rastgele hiçbir şey imzalamamaya dikkat ediniz. Sadece ayrıntılı açıklaması olan ve tümüne katıldığınız ifadeleri imzalayınız. The Verium address to sign the message with @@ -2668,7 +2668,7 @@ Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Oluşturulan bitcoin'lerin harcanabilmelerinden önce %1 blok beklemeleri gerekmektedir. Bu blok, oluşturduğunuzda, blok zincirine eklenmesi için ağda yayınlandı. Zincire eklenmesi başarısız olursa, durumu "kabul edilmedi" olarak değiştirilecek ve harcanamayacaktır. Bu, bazen başka bir düğüm sizden birkaç saniye önce ya da sonra blok oluşturursa meydana gelebilir. + Oluşturulan verium'lerin harcanabilmelerinden önce %1 blok beklemeleri gerekmektedir. Bu blok, oluşturduğunuzda, blok zincirine eklenmesi için ağda yayınlandı. Zincire eklenmesi başarısız olursa, durumu "kabul edilmedi" olarak değiştirilecek ve harcanamayacaktır. Bu, bazen başka bir düğüm sizden birkaç saniye önce ya da sonra blok oluşturursa meydana gelebilir. Debug information @@ -3072,7 +3072,7 @@ - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s MIT yazılım lisansı altında dağıtılmıştır, beraberindeki %s ya da %s dosyasına bakınız. @@ -3127,7 +3127,7 @@ This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Bu kararlı sürümden önceki bir deneme sürümüdür. - risklerini bilerek kullanma sorumluluğu sizdedir - bitcoin oluşturmak ya da ticari uygulamalar için kullanmayınız + Bu kararlı sürümden önceki bir deneme sürümüdür. - risklerini bilerek kullanma sorumluluğu sizdedir - verium oluşturmak ya da ticari uygulamalar için kullanmayınız Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain @@ -3376,7 +3376,7 @@ The transaction amount is too small to pay the fee - İşlemdeki bitcoin tutarı ücreti ödemek için çok düşük + İşlemdeki verium tutarı ücreti ödemek için çok düşük This is experimental software. diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index 4d88f9811d..40847512b5 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -184,7 +184,7 @@ Введіть стару та нову парольну фразу для гаманця. - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. Пам’ятайте, що шифрування гаманця не може повністю захистити ваші біткоіни від кражі, у випадку якщо ваш комп’ютер буде інфіковано шкідливими програмами. @@ -426,8 +426,8 @@ Панель вкладок - Request payments (generates QR codes and bitcoin: URIs) - Створити запит платежу (генерує QR-код та bitcoin: URI) + Request payments (generates QR codes and verium: URIs) + Створити запит платежу (генерує QR-код та verium: URI) Show the list of used sending addresses and labels @@ -438,8 +438,8 @@ Показати список адрес і міток, що були використані для отримання - Open a bitcoin: URI or payment request - Відкрити bitcoin: URI чи запит платежу + Open a verium: URI or payment request + Відкрити verium: URI чи запит платежу &Command-line options @@ -994,11 +994,11 @@ Форма - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. Нещодавні транзакції ще не відображаються, тому баланс вашого гаманця може бути неточним. Ця інформація буде вірною після того, як ваш гаманець завершить синхронізацію з мережею біткойн, врахровуйте показники нижче. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. Спроба відправити біткоїни, які ще не відображаються, не буде прийнята мережею. @@ -1437,7 +1437,7 @@ Помилка запиту платежу - Cannot start bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler Не вдається запустити біткойн: обробник клацни-плати @@ -1445,8 +1445,8 @@ Обробка URI - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' не вірний URI. Використовуйте 'bitcoin:'. + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' не вірний URI. Використовуйте 'verium:'. You are using a BIP70 URL which will be unsupported in the future. @@ -2295,7 +2295,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Пил: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. Якщо обсяг транзакцій менше, ніж простір у блоках, майнери, а також вузли ретрансляції можуть стягувати мінімальну плату. Сплата лише цієї мінімальної суми може призвести до ніколи не підтверджуваної транзакції, коли буде більше попиту на біткойн-транзакції, ніж мережа може обробити. @@ -2502,7 +2502,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Видалити цей запис - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. Комісію буде знято зі вказаної суми. До отримувача надійде менше біткоінів, ніж було вказано в полі кількості. Якщо ж отримувачів декілька - комісію буде розподілено між ними. @@ -2530,8 +2530,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p Введіть мітку для цієї адреси для додавання її в список використаних адрес - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Повідомлення, що було додане до bitcoin:URI та буде збережено разом з транзакцією для довідки. Примітка: Це повідомлення не буде відправлено в мережу Verium. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Повідомлення, що було додане до verium:URI та буде збережено разом з транзакцією для довідки. Примітка: Це повідомлення не буде відправлено в мережу Verium. Pay To: @@ -2575,7 +2575,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p &Підписати повідомлення - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. Ви можете підписувати повідомлення/угоди своїми адресами, щоб довести можливість отримання біткоінів, що будуть надіслані на них. Остерігайтеся підписувати будь-що нечітке чи неочікуване, так як за допомогою фішинг-атаки вас можуть спробувати ввести в оману для отримання вашого підпису під чужими словами. Підписуйте лише чіткі твердження, з якими ви повністю згодні. @@ -3270,7 +3270,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Розповсюджується за ліцензією на програмне забезпечення MIT, дивіться супровідний файл %s або %s diff --git a/src/qt/locale/bitcoin_ur.ts b/src/qt/locale/bitcoin_ur.ts index 71fd93e994..cda9d29bcf 100644 --- a/src/qt/locale/bitcoin_ur.ts +++ b/src/qt/locale/bitcoin_ur.ts @@ -344,7 +344,7 @@ - bitcoin-core + verium-core Insufficient funds ناکافی فنڈز diff --git a/src/qt/locale/bitcoin_uz@Cyrl.ts b/src/qt/locale/bitcoin_uz@Cyrl.ts index 7db285aad7..eff6bec849 100644 --- a/src/qt/locale/bitcoin_uz@Cyrl.ts +++ b/src/qt/locale/bitcoin_uz@Cyrl.ts @@ -206,8 +206,8 @@ Ички ойналар асбоблар панели - Request payments (generates QR codes and bitcoin: URIs) - Тўловлар (QR кодлари ва bitcoin ёрдамида яратишлар: URI’лар) сўраш + Request payments (generates QR codes and verium: URIs) + Тўловлар (QR кодлари ва verium ёрдамида яратишлар: URI’лар) сўраш Show the list of used sending addresses and labels @@ -218,7 +218,7 @@ Фойдаланилган қабул қилинган манзиллар ва ёрлиқлар рўйхатини кўрсатиш - Open a bitcoin: URI or payment request + Open a verium: URI or payment request Verium’ни очиш: URI ёки тўлов сўрови @@ -1208,7 +1208,7 @@ - bitcoin-core + verium-core Insufficient funds Кам миқдор diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/bitcoin_vi.ts index 27759c7c1e..87719850e3 100644 --- a/src/qt/locale/bitcoin_vi.ts +++ b/src/qt/locale/bitcoin_vi.ts @@ -394,8 +394,8 @@ Các thanh công cụ - Request payments (generates QR codes and bitcoin: URIs) - Yêu cầu thanh toán (tạo QR code và bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + Yêu cầu thanh toán (tạo QR code và verium: URIs) Show the list of used sending addresses and labels @@ -406,8 +406,8 @@ Hiển thị danh sách các địa chỉ và nhãn đã dùng để nhận - Open a bitcoin: URI or payment request - Mở một bitcoin: URI hoặc yêu cầu thanh toán + Open a verium: URI or payment request + Mở một verium: URI hoặc yêu cầu thanh toán &Command-line options @@ -930,12 +930,12 @@ Form - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - Giao dịch gần đây có thể chưa được hiển thị, và vì vậy số dư wallet của bạn có thể không dúng. Thông tin này sẽ được làm đúng khi wallet hoàn thành đồng bộ với bitcoin network, như chi tiết bên dưới. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + Giao dịch gần đây có thể chưa được hiển thị, và vì vậy số dư wallet của bạn có thể không dúng. Thông tin này sẽ được làm đúng khi wallet hoàn thành đồng bộ với verium network, như chi tiết bên dưới. - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - Cố gắng spend các bitcoins bị ảnh hưởng bởi các giao dịch chưa được hiển thị sẽ không được chấp nhận bởi mạng. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + Cố gắng spend các veriums bị ảnh hưởng bởi các giao dịch chưa được hiển thị sẽ không được chấp nhận bởi mạng. Number of blocks left @@ -1365,16 +1365,16 @@ Payment request error - Cannot start bitcoin: click-to-pay handler - Không thể khởi tạo bitcoin: click-to-pay handler + Cannot start verium: click-to-pay handler + Không thể khởi tạo verium: click-to-pay handler URI handling URI handling - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 'bitcoin://' không khả dụng URI. Dùng thay vì 'bitcoin:' . + 'verium://' is not a valid URI. Use 'verium:' instead. + 'verium://' không khả dụng URI. Dùng thay vì 'verium:' . You are using a BIP70 URL which will be unsupported in the future. @@ -2221,8 +2221,8 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Rác: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. - Khi có khối lượng giao dịch ít hơn chổ trống trong các khối, các nhà đào mỏ cũng như các nút chuyển tiếp có thể thực thi chỉ với một khoản phí tối thiểu. Chỉ trả khoản phí tối thiểu này là tốt, nhưng lưu ý rằng điều này có thể dẫn đến một giao dịch không bao giờ xác nhận một khi có nhu cầu giao dịch bitcoin nhiều hơn khả năng mạng có thể xử lý. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. + Khi có khối lượng giao dịch ít hơn chổ trống trong các khối, các nhà đào mỏ cũng như các nút chuyển tiếp có thể thực thi chỉ với một khoản phí tối thiểu. Chỉ trả khoản phí tối thiểu này là tốt, nhưng lưu ý rằng điều này có thể dẫn đến một giao dịch không bao giờ xác nhận một khi có nhu cầu giao dịch verium nhiều hơn khả năng mạng có thể xử lý. A too low fee might result in a never confirming transaction (read the tooltip) @@ -2440,8 +2440,8 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Xóa bỏ entry này - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - The fee sẽ được khấu trừ từ số tiền đang gửi. Người nhận sẽ receive ít bitcoins hơn bạn gõ vào khoảng trống. Nếu nhiều người gửi được chọn, fee sẽ được chia đều. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee sẽ được khấu trừ từ số tiền đang gửi. Người nhận sẽ receive ít veriums hơn bạn gõ vào khoảng trống. Nếu nhiều người gửi được chọn, fee sẽ được chia đều. S&ubtract fee from amount @@ -2468,8 +2468,8 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos Nhập một label cho cái address này để thêm vào danh sách địa chỉ đã sử dụng - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - Một tin nhắn được đính kèm với số bitcoin: URI mà sẽ được lưu giữ với transaction dành cho tài liệu tham khảo. Lưu ý: Tin nhắn này sẽ không được gửi thông qua Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + Một tin nhắn được đính kèm với số verium: URI mà sẽ được lưu giữ với transaction dành cho tài liệu tham khảo. Lưu ý: Tin nhắn này sẽ không được gửi thông qua Verium network. Pay To: @@ -2513,8 +2513,8 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos &Sign Tin nhắn - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Bạn có thể ký/đồng ý với địa chỉ chứng minh bạn có thể receive bitcoins đã gửi đến chúng. Cẩn thận không ký bất cứ không rõ hay random, như các cuộc tấn công lừa đảo có thể cố lừa bạn ký tên vào danh tính của bạn.. Chỉ ký các bản tuyên bố hoàn chỉnh mà bạn đồng ý. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Bạn có thể ký/đồng ý với địa chỉ chứng minh bạn có thể receive veriums đã gửi đến chúng. Cẩn thận không ký bất cứ không rõ hay random, như các cuộc tấn công lừa đảo có thể cố lừa bạn ký tên vào danh tính của bạn.. Chỉ ký các bản tuyên bố hoàn chỉnh mà bạn đồng ý. The Verium address to sign the message with @@ -3204,7 +3204,7 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s Distributed under the MIT software license, see the accompanying file %s or %s diff --git a/src/qt/locale/bitcoin_yo.ts b/src/qt/locale/bitcoin_yo.ts index edd9d7f673..c60d30ed40 100644 --- a/src/qt/locale/bitcoin_yo.ts +++ b/src/qt/locale/bitcoin_yo.ts @@ -204,6 +204,6 @@ WalletView - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_zh-Hans.ts b/src/qt/locale/bitcoin_zh-Hans.ts index 78908115ca..c1861f2143 100644 --- a/src/qt/locale/bitcoin_zh-Hans.ts +++ b/src/qt/locale/bitcoin_zh-Hans.ts @@ -284,6 +284,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index ee7a9b9a33..c2dff7b1e9 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -188,7 +188,7 @@ 输入此钱包的旧密码和新密码。 - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. 请注意,当您的计算机感染恶意软件时,加密钱包并不能完全规避您的比特币被偷窃的可能。 @@ -430,8 +430,8 @@ 标签页工具栏 - Request payments (generates QR codes and bitcoin: URIs) - 请求支付 (生成二维码和 bitcoin: URI) + Request payments (generates QR codes and verium: URIs) + 请求支付 (生成二维码和 verium: URI) Show the list of used sending addresses and labels @@ -442,8 +442,8 @@ 显示用过的收款地址和标签的列表 - Open a bitcoin: URI or payment request - 打开一个 bitcoin: URI 或支付请求 + Open a verium: URI or payment request + 打开一个 verium: URI 或支付请求 &Command-line options @@ -1026,11 +1026,11 @@ 窗体 - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. 近期交易可能尚未显示,因此当前余额可能不准确。以上信息将在与比特币网络完全同步后更正。详情如下 - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. 尝试使用受未可见交易影响的余额将不被网络接受。 @@ -1469,16 +1469,16 @@ 支付请求出错 - Cannot start bitcoin: click-to-pay handler - 无法启动 bitcoin: 协议的“一键支付”处理程序 + Cannot start verium: click-to-pay handler + 无法启动 verium: 协议的“一键支付”处理程序 URI handling URI 处理 - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - ‘bitcoin://’不是合法的URI。请改用'bitcoin:'。 + 'verium://' is not a valid URI. Use 'verium:' instead. + ‘verium://’不是合法的URI。请改用'verium:'。 You are using a BIP70 URL which will be unsupported in the future. @@ -2341,7 +2341,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 粉尘: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. 当交易量小于可用区块空间时,矿工和中继节点可能会执行最低手续费率限制。按照这个最低费率来支付手续费也是可以的,但请注意,一旦交易需求超出比特币网络能处理的限度,你的交易可能永远也无法确认。 @@ -2560,7 +2560,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 移除此项 - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. 交易费将从发送金额中扣除。接收人收到的比特币将会比您在金额框中输入的更少。如果选中了多个收件人,交易费平分。 @@ -2588,8 +2588,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 请为此地址输入一个标签以将它加入已用地址列表 - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. - bitcoin: URI 附带的备注信息,将会和交易一起存储,备查。 注意:该消息不会通过比特币网络传输。 + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + verium: URI 附带的备注信息,将会和交易一起存储,备查。 注意:该消息不会通过比特币网络传输。 Pay To: @@ -2633,7 +2633,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 消息签名(&S) - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. 您可以用你的地址对消息/协议进行签名,以证明您可以接收发送到该地址的比特币。注意不要对任何模棱两可或者随机的消息进行签名,以免遭受钓鱼式攻击。请确保消息内容准确的表达了您的真实意愿。 @@ -3332,7 +3332,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s 在MIT协议下分发,参见附带的 %s 或 %s 文件 diff --git a/src/qt/locale/bitcoin_zh_HK.ts b/src/qt/locale/bitcoin_zh_HK.ts index e13a84bd90..1febc639d2 100644 --- a/src/qt/locale/bitcoin_zh_HK.ts +++ b/src/qt/locale/bitcoin_zh_HK.ts @@ -346,8 +346,8 @@ 說明 &H - Request payments (generates QR codes and bitcoin: URIs) - 要求付款 (產生QR碼 bitcoin: URIs) + Request payments (generates QR codes and verium: URIs) + 要求付款 (產生QR碼 verium: URIs) Indexing blocks on disk... @@ -662,6 +662,6 @@ - bitcoin-core + verium-core \ No newline at end of file diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index 040e071063..839922e577 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -176,7 +176,7 @@ 錢包已加密 - Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Remember that encrypting your wallet cannot fully protect your veriums from being stolen by malware infecting your computer. 請記得, 即使將錢包加密, 也不能完全防止因惡意軟體入侵, 而導致位元幣被偷. @@ -398,8 +398,8 @@ 分頁工具列 - Request payments (generates QR codes and bitcoin: URIs) - 要求付款(產生 QR Code 和 bitcoin 付款協議的資源識別碼: URI) + Request payments (generates QR codes and verium: URIs) + 要求付款(產生 QR Code 和 verium 付款協議的資源識別碼: URI) Show the list of used sending addresses and labels @@ -410,8 +410,8 @@ 顯示已使用過的收款位址和標記的清單 - Open a bitcoin: URI or payment request - 開啓 bitcoin 協議的資源識別碼(URI)或付款要求 + Open a verium: URI or payment request + 開啓 verium 協議的資源識別碼(URI)或付款要求 &Command-line options @@ -934,12 +934,12 @@ 表單 - Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below. - 最近的交易可能還看不到,因此錢包餘額可能不正確。在錢包軟體完成跟 bitcoin 網路的同步後,這裡的資訊就會正確。詳情請見下面。 + Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the verium network, as detailed below. + 最近的交易可能還看不到,因此錢包餘額可能不正確。在錢包軟體完成跟 verium 網路的同步後,這裡的資訊就會正確。詳情請見下面。 - Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network. - 使用還沒顯示出來的交易所影響到的 bitcoin 可能會不被網路所接受。 + Attempting to spend veriums that are affected by not-yet-displayed transactions will not be accepted by the network. + 使用還沒顯示出來的交易所影響到的 verium 可能會不被網路所接受。 Number of blocks left @@ -1369,16 +1369,16 @@ 要求付款時發生錯誤 - Cannot start bitcoin: click-to-pay handler - 沒辦法啟動 bitcoin 協議的「按就付」處理器 + Cannot start verium: click-to-pay handler + 沒辦法啟動 verium 協議的「按就付」處理器 URI handling URI 處理 - 'bitcoin://' is not a valid URI. Use 'bitcoin:' instead. - 字首為 bitcoin:// 不是有效的 URI,請改用 bitcoin: 開頭。 + 'verium://' is not a valid URI. Use 'verium:' instead. + 字首為 verium:// 不是有效的 URI,請改用 verium: 開頭。 You are using a BIP70 URL which will be unsupported in the future. @@ -2233,7 +2233,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 零散錢: - When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for verium transactions than the network can process. 当交易量小于可用区块空间时,矿工和中继节点可能会执行最低手续费率限制。按照这个最低费率来支付手续费也是可以的,但请注意,一旦交易需求超出比特币网络能处理的限度,你的交易可能永远也无法确认。 @@ -2452,8 +2452,8 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 刪掉這個項目 - The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally. - 手續費會從要付款出去的金額中扣掉。因此收款人會收到比輸入的金額還要少的 bitcoin。如果有多個收款人的話,手續費會平均分配來扣除。 + The fee will be deducted from the amount being sent. The recipient will receive less veriums than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + 手續費會從要付款出去的金額中扣掉。因此收款人會收到比輸入的金額還要少的 verium。如果有多個收款人的話,手續費會平均分配來扣除。 S&ubtract fee from amount @@ -2480,7 +2480,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 請輸入這個位址的標記,來把它加進去已使用過位址的清單。 - A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. + A message that was attached to the verium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Verium network. 附加在 Verium 付款協議的資源識別碼(URI)中的訊息,會和交易內容一起存起來,給你自己做參考。注意: 這個訊息不會送到 Verium 網路上。 @@ -2525,7 +2525,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p 簽署訊息(&S) - You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages/agreements with your addresses to prove you can receive veriums sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. 你可以用自己的位址簽署訊息或合約,來證明你可以從該位址收款。但是請小心,不要簽署語意含糊不清,或隨機產生的內容,因為釣魚式詐騙可能會用騙你簽署的手法來冒充是你。只有在語句中的細節你都同意時才簽署。 @@ -3216,7 +3216,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p - bitcoin-core + verium-core Distributed under the MIT software license, see the accompanying file %s or %s 依據 MIT 軟體授權條款散布,詳情請見附帶的 %s 檔案或是 %s diff --git a/src/qt/macos_appnap.mm b/src/qt/macos_appnap.mm index 22a88782ab..826c23c5b5 100644 --- a/src/qt/macos_appnap.mm +++ b/src/qt/macos_appnap.mm @@ -30,7 +30,7 @@ void disableAppNap() id processInfo = [NSProcessInfo processInfo]; if ([processInfo respondsToSelector:@selector(beginActivityWithOptions:reason:)]) { - activityId = [processInfo beginActivityWithOptions: activityOptions reason:@"Temporarily disable App Nap for bitcoin-qt."]; + activityId = [processInfo beginActivityWithOptions: activityOptions reason:@"Temporarily disable App Nap for verium-qt."]; [activityId retain]; } } diff --git a/src/qt/main.cpp b/src/qt/main.cpp index 999c434d23..376b44dad7 100644 --- a/src/qt/main.cpp +++ b/src/qt/main.cpp @@ -13,7 +13,7 @@ /** Translate string to current locale using Qt. */ extern const std::function G_TRANSLATION_FUN = [](const char* psz) { - return QCoreApplication::translate("bitcoin-core", psz).toStdString(); + return QCoreApplication::translate("verium-core", psz).toStdString(); }; int main(int argc, char* argv[]) { return GuiMain(argc, argv); } diff --git a/src/qt/networkstyle.cpp b/src/qt/networkstyle.cpp index 5c039a939e..99529bccdd 100644 --- a/src/qt/networkstyle.cpp +++ b/src/qt/networkstyle.cpp @@ -29,7 +29,7 @@ NetworkStyle::NetworkStyle(const QString &_appName, const int iconColorHueShift, titleAddText(qApp->translate("SplashScreen", _titleAddText)) { // load pixmap - QPixmap pixmap(":/icons/bitcoin"); + QPixmap pixmap(":/icons/verium"); if(iconColorHueShift != 0 && iconColorSaturationReduction != 0) { diff --git a/src/qt/openuridialog.cpp b/src/qt/openuridialog.cpp index 48db95679f..73b17a6582 100644 --- a/src/qt/openuridialog.cpp +++ b/src/qt/openuridialog.cpp @@ -15,7 +15,7 @@ OpenURIDialog::OpenURIDialog(QWidget *parent) : ui(new Ui::OpenURIDialog) { ui->setupUi(this); - ui->uriEdit->setPlaceholderText("bitcoin:"); + ui->uriEdit->setPlaceholderText("verium:"); } OpenURIDialog::~OpenURIDialog() @@ -46,5 +46,5 @@ void OpenURIDialog::on_selectFileButton_clicked() if(filename.isEmpty()) return; QUrl fileUri = QUrl::fromLocalFile(filename); - ui->uriEdit->setText("bitcoin:?r=" + QUrl::toPercentEncoding(fileUri.toString())); + ui->uriEdit->setText("verium:?r=" + QUrl::toPercentEncoding(fileUri.toString())); } diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index 07ffff0126..76dae8d527 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -242,7 +242,7 @@ void OverviewPage::setWalletModel(WalletModel *model) }); } - // update the display unit, to not use the default ("BTC") + // update the display unit, to not use the default ("VRM") updateDisplayUnit(); } diff --git a/src/qt/paymentrequest.proto b/src/qt/paymentrequest.proto index d2721a34bd..215051c487 100644 --- a/src/qt/paymentrequest.proto +++ b/src/qt/paymentrequest.proto @@ -12,7 +12,7 @@ package payments; option java_package = "org.bitcoin.protocols.payments"; option java_outer_classname = "Protos"; -// Generalized form of "send payment to this/these bitcoin addresses" +// Generalized form of "send payment to this/these verium addresses" message Output { optional uint64 amount = 1 [default = 0]; // amount is integer-number-of-satoshis required bytes script = 2; // usually one of the standard Script forms diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index 3b6617e29d..cb4ce2f406 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -48,15 +48,15 @@ #include const int BITCOIN_IPC_CONNECT_TIMEOUT = 1000; // milliseconds -const QString BITCOIN_IPC_PREFIX("bitcoin:"); +const QString BITCOIN_IPC_PREFIX("verium:"); #ifdef ENABLE_BIP70 // BIP70 payment protocol messages const char* BIP70_MESSAGE_PAYMENTACK = "PaymentACK"; const char* BIP70_MESSAGE_PAYMENTREQUEST = "PaymentRequest"; // BIP71 payment protocol media types -const char* BIP71_MIMETYPE_PAYMENT = "application/bitcoin-payment"; -const char* BIP71_MIMETYPE_PAYMENTACK = "application/bitcoin-paymentack"; -const char* BIP71_MIMETYPE_PAYMENTREQUEST = "application/bitcoin-paymentrequest"; +const char* BIP71_MIMETYPE_PAYMENT = "application/verium-payment"; +const char* BIP71_MIMETYPE_PAYMENTACK = "application/verium-paymentack"; +const char* BIP71_MIMETYPE_PAYMENTREQUEST = "application/verium-paymentrequest"; #endif // @@ -105,7 +105,7 @@ void PaymentServer::ipcParseCommandLine(interfaces::Node& node, int argc, char* // network as that would require fetching and parsing the payment request. // That means clicking such an URI which contains a testnet payment request // will start a mainnet instance and throw a "wrong network" error. - if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // bitcoin: URI + if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // verium: URI { if (savedPaymentRequests.contains(arg)) continue; savedPaymentRequests.insert(arg); @@ -209,7 +209,7 @@ PaymentServer::PaymentServer(QObject* parent, bool startLocalServer) : #endif // Install global event filter to catch QFileOpenEvents - // on Mac: sent when you click bitcoin: links + // on Mac: sent when you click verium: links // other OSes: helpful when dealing with payment request files if (parent) parent->installEventFilter(this); @@ -226,7 +226,7 @@ PaymentServer::PaymentServer(QObject* parent, bool startLocalServer) : if (!uriServer->listen(name)) { // constructor is called early in init, so don't use "Q_EMIT message()" here QMessageBox::critical(nullptr, tr("Payment request error"), - tr("Cannot start bitcoin: click-to-pay handler")); + tr("Cannot start verium: click-to-pay handler")); } else { connect(uriServer, &QLocalServer::newConnection, this, &PaymentServer::handleURIConnection); @@ -245,7 +245,7 @@ PaymentServer::~PaymentServer() } // -// OSX-specific way of handling bitcoin: URIs and PaymentRequest mime types. +// OSX-specific way of handling verium: URIs and PaymentRequest mime types. // Also used by paymentservertests.cpp and when opening a payment request file // via "Open URI..." menu entry. // @@ -286,12 +286,12 @@ void PaymentServer::handleURIOrFile(const QString& s) return; } - if (s.startsWith("bitcoin://", Qt::CaseInsensitive)) + if (s.startsWith("verium://", Qt::CaseInsensitive)) { - Q_EMIT message(tr("URI handling"), tr("'bitcoin://' is not a valid URI. Use 'bitcoin:' instead."), + Q_EMIT message(tr("URI handling"), tr("'verium://' is not a valid URI. Use 'verium:' instead."), CClientUIInterface::MSG_ERROR); } - else if (s.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // bitcoin: URI + else if (s.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // verium: URI { QUrlQuery uri((QUrl(s))); #ifdef ENABLE_BIP70 @@ -512,7 +512,7 @@ void PaymentServer::initNetManager() return; delete netManager; - // netManager is used to fetch paymentrequests given in bitcoin: URIs + // netManager is used to fetch paymentrequests given in verium: URIs netManager = new QNetworkAccessManager(this); QNetworkProxy proxy; @@ -597,7 +597,7 @@ bool PaymentServer::processPaymentRequest(const PaymentRequestPlus& request, Sen addresses.append(QString::fromStdString(EncodeDestination(dest))); } else if (!recipient.authenticatedMerchant.isEmpty()) { - // Unauthenticated payment requests to custom bitcoin addresses are not supported + // Unauthenticated payment requests to custom verium addresses are not supported // (there is no good way to tell the user where they are paying in a way they'd // have a chance of understanding). Q_EMIT message(tr("Payment request rejected"), diff --git a/src/qt/paymentserver.h b/src/qt/paymentserver.h index 30b5bc3b6d..f4173dab6e 100644 --- a/src/qt/paymentserver.h +++ b/src/qt/paymentserver.h @@ -6,7 +6,7 @@ #define BITCOIN_QT_PAYMENTSERVER_H // This class handles payment requests from clicking on -// bitcoin: URIs +// verium: URIs // // This is somewhat tricky, because we have to deal with // the situation where the user clicks on a link during diff --git a/src/qt/res/bitcoin-qt-res.rc b/src/qt/res/bitcoin-qt-res.rc index d87f2811c2..556b3de09a 100644 --- a/src/qt/res/bitcoin-qt-res.rc +++ b/src/qt/res/bitcoin-qt-res.rc @@ -1,5 +1,5 @@ -IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico" -IDI_ICON2 ICON DISCARDABLE "icons/bitcoin_testnet.ico" +IDI_ICON1 ICON DISCARDABLE "icons/verium.ico" +IDI_ICON2 ICON DISCARDABLE "icons/verium_testnet.ico" #include // needed for VERSIONINFO #include "../../clientversion.h" // holds the needed client version information @@ -22,10 +22,10 @@ BEGIN VALUE "CompanyName", "Verium" VALUE "FileDescription", PACKAGE_NAME " (GUI node for Verium)" VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "InternalName", "bitcoin-qt" + VALUE "InternalName", "verium-qt" VALUE "LegalCopyright", COPYRIGHT_STR VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." - VALUE "OriginalFilename", "bitcoin-qt.exe" + VALUE "OriginalFilename", "verium-qt.exe" VALUE "ProductName", PACKAGE_NAME VALUE "ProductVersion", VER_PRODUCTVERSION_STR END diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp index 7324d759fb..2d30a383a2 100644 --- a/src/qt/sendcoinsentry.cpp +++ b/src/qt/sendcoinsentry.cpp @@ -110,7 +110,7 @@ void SendCoinsEntry::clear() ui->memoTextLabel_s->clear(); ui->payAmount_s->clear(); - // update the display unit, to not use the default ("BTC") + // update the display unit, to not use the default ("VRM") updateDisplayUnit(); } diff --git a/src/qt/test/addressbooktests.cpp b/src/qt/test/addressbooktests.cpp index 4fe440a679..b55bb6b3b3 100644 --- a/src/qt/test/addressbooktests.cpp +++ b/src/qt/test/addressbooktests.cpp @@ -146,7 +146,7 @@ void AddressBookTests::addressBookTests() // and fails to handle returned nulls // (https://bugreports.qt.io/browse/QTBUG-49686). QWARN("Skipping AddressBookTests on mac build with 'minimal' platform set due to Qt bugs. To run AppTests, invoke " - "with 'QT_QPA_PLATFORM=cocoa test_bitcoin-qt' on mac, or else use a linux or windows build."); + "with 'QT_QPA_PLATFORM=cocoa test_verium-qt' on mac, or else use a linux or windows build."); return; } #endif diff --git a/src/qt/test/apptests.cpp b/src/qt/test/apptests.cpp index e730c8f6d5..f6056e6a72 100644 --- a/src/qt/test/apptests.cpp +++ b/src/qt/test/apptests.cpp @@ -57,7 +57,7 @@ void AppTests::appTests() // and fails to handle returned nulls // (https://bugreports.qt.io/browse/QTBUG-49686). QWARN("Skipping AppTests on mac build with 'minimal' platform set due to Qt bugs. To run AppTests, invoke " - "with 'QT_QPA_PLATFORM=cocoa test_bitcoin-qt' on mac, or else use a linux or windows build."); + "with 'QT_QPA_PLATFORM=cocoa test_verium-qt' on mac, or else use a linux or windows build."); return; } #endif diff --git a/src/qt/test/paymentrequestdata.h b/src/qt/test/paymentrequestdata.h index 7f45d30973..badb2583d6 100644 --- a/src/qt/test/paymentrequestdata.h +++ b/src/qt/test/paymentrequestdata.h @@ -438,7 +438,7 @@ d2hj739GDLz0b5KuJ2SG6VknMRQM976w/m2qlq0ccVGaaZ2zMIGfpzL3p6adwx/5\ "; // -// Payment request with amount overflow (amount is set to 21000001 BTC) +// Payment request with amount overflow (amount is set to 21000001 VRM) // const char* paymentrequest5_cert2_BASE64 = "\ diff --git a/src/qt/test/paymentservertests.cpp b/src/qt/test/paymentservertests.cpp index eca468a6ab..8ff85433e4 100644 --- a/src/qt/test/paymentservertests.cpp +++ b/src/qt/test/paymentservertests.cpp @@ -193,7 +193,7 @@ void PaymentServerTests::paymentServerTests() // compares 50001 <= BIP70_MAX_PAYMENTREQUEST_SIZE == false QCOMPARE(PaymentServer::verifySize(tempFile.size()), false); - // Payment request with amount overflow (amount is set to 21000001 BTC): + // Payment request with amount overflow (amount is set to 21000001 VRM): data = DecodeBase64(paymentrequest5_cert2_BASE64); byteArray = QByteArray((const char*)data.data(), data.size()); r.paymentRequest.parse(byteArray); diff --git a/src/qt/test/uritests.cpp b/src/qt/test/uritests.cpp index b87d3b21ca..51a39b9275 100644 --- a/src/qt/test/uritests.cpp +++ b/src/qt/test/uritests.cpp @@ -13,54 +13,54 @@ void URITests::uriTests() { SendCoinsRecipient rv; QUrl uri; - uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist=")); + uri.setUrl(QString("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist=")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist=")); + uri.setUrl(QString("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist=")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 0); - uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=Wikipedia Example Address")); + uri.setUrl(QString("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=Wikipedia Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.label == QString("Wikipedia Example Address")); QVERIFY(rv.amount == 0); - uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001")); + uri.setUrl(QString("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 100000); - uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001")); + uri.setUrl(QString("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 100100000); - uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&label=Wikipedia Example")); + uri.setUrl(QString("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&label=Wikipedia Example")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.amount == 10000000000LL); QVERIFY(rv.label == QString("Wikipedia Example")); - uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address")); + uri.setUrl(QString("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.label == QString()); - QVERIFY(GUIUtil::parseBitcoinURI("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address", &rv)); + QVERIFY(GUIUtil::parseBitcoinURI("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address", &rv)); QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); QVERIFY(rv.label == QString()); - uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-message=Wikipedia Example Address")); + uri.setUrl(QString("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-message=Wikipedia Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000&label=Wikipedia Example")); + uri.setUrl(QString("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000&label=Wikipedia Example")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000.0&label=Wikipedia Example")); + uri.setUrl(QString("verium:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000.0&label=Wikipedia Example")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); } diff --git a/src/qt/test/wallettests.cpp b/src/qt/test/wallettests.cpp index eea874c0d4..26cb72d512 100644 --- a/src/qt/test/wallettests.cpp +++ b/src/qt/test/wallettests.cpp @@ -123,9 +123,9 @@ void BumpFee(TransactionView& view, const uint256& txid, bool expectDisabled, st // // This also requires overriding the default minimal Qt platform: // -// QT_QPA_PLATFORM=xcb src/qt/test/test_bitcoin-qt # Linux -// QT_QPA_PLATFORM=windows src/qt/test/test_bitcoin-qt # Windows -// QT_QPA_PLATFORM=cocoa src/qt/test/test_bitcoin-qt # macOS +// QT_QPA_PLATFORM=xcb src/qt/test/test_verium-qt # Linux +// QT_QPA_PLATFORM=windows src/qt/test/test_verium-qt # Windows +// QT_QPA_PLATFORM=cocoa src/qt/test/test_verium-qt # macOS void TestGUI() { // Set up wallet and chain with 105 blocks (5 mature blocks for spending). @@ -218,7 +218,7 @@ void TestGUI() QString paymentText = rlist->toPlainText(); QStringList paymentTextList = paymentText.split('\n'); QCOMPARE(paymentTextList.at(0), QString("Payment information")); - QVERIFY(paymentTextList.at(1).indexOf(QString("URI: bitcoin:")) != -1); + QVERIFY(paymentTextList.at(1).indexOf(QString("URI: verium:")) != -1); QVERIFY(paymentTextList.at(2).indexOf(QString("Address:")) != -1); QCOMPARE(paymentTextList.at(3), QString("Amount: 0.00000001 ") + QString::fromStdString(CURRENCY_UNIT)); QCOMPARE(paymentTextList.at(4), QString("Label: TEST_LABEL_1")); @@ -256,7 +256,7 @@ void WalletTests::walletTests() // and fails to handle returned nulls // (https://bugreports.qt.io/browse/QTBUG-49686). QWARN("Skipping WalletTests on mac build with 'minimal' platform set due to Qt bugs. To run AppTests, invoke " - "with 'QT_QPA_PLATFORM=cocoa test_bitcoin-qt' on mac, or else use a linux or windows build."); + "with 'QT_QPA_PLATFORM=cocoa test_verium-qt' on mac, or else use a linux or windows build."); return; } #endif diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp index 648fdb7673..73ad91dc45 100644 --- a/src/qt/transactiondesc.cpp +++ b/src/qt/transactiondesc.cpp @@ -284,7 +284,7 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall strHTML += "" + tr("Transaction virtual size") + ": " + QString::number(GetVirtualTransactionSize(*wtx.tx)) + " bytes
"; strHTML += "" + tr("Output index") + ": " + QString::number(rec->getOutputIndex()) + "
"; - // Message from normal bitcoin:URI (bitcoin:123...?message=example) + // Message from normal verium:URI (verium:123...?message=example) for (const std::pair& r : orderForm) { if (r.first == "Message") strHTML += "
" + tr("Message") + ":
" + GUIUtil::HtmlEscape(r.second, true) + "
"; diff --git a/src/qt/utilitydialog.cpp b/src/qt/utilitydialog.cpp index 6509a701f3..cd8443f642 100644 --- a/src/qt/utilitydialog.cpp +++ b/src/qt/utilitydialog.cpp @@ -68,7 +68,7 @@ HelpMessageDialog::HelpMessageDialog(interfaces::Node& node, QWidget *parent, bo ui->helpMessage->setVisible(false); } else { setWindowTitle(tr("Command-line options")); - QString header = "Usage: bitcoin-qt [command-line options] \n"; + QString header = "Usage: verium-qt [command-line options] \n"; QTextCursor cursor(ui->helpMessage->document()); cursor.insertText(version); cursor.insertBlock(); diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index cb8dd3cc10..63a654aecf 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -258,7 +258,7 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(WalletModelTransaction &tran } else #endif - if (!rcp.message.isEmpty()) // Message from normal bitcoin:URI (bitcoin:123...?message=example) + if (!rcp.message.isEmpty()) // Message from normal verium:URI (verium:123...?message=example) vOrderForm.emplace_back("Message", rcp.message.toStdString()); } diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index ad5be71e21..7ed3b52b81 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -373,7 +373,7 @@ static UniValue getdifficulty(const JSONRPCRequest& request) static std::string EntryDescriptionString() { return " \"vsize\" : n, (numeric) virtual transaction size as defined in BIP 141. This is different from actual serialized size for witness transactions as witness data is discounted.\n" - " \"size\" : n, (numeric) (DEPRECATED) same as vsize. Only returned if bitcoind is started with -deprecatedrpc=size\n" + " \"size\" : n, (numeric) (DEPRECATED) same as vsize. Only returned if veriumd is started with -deprecatedrpc=size\n" " size will be completely removed in v0.20.\n" " \"weight\" : n, (numeric) transaction weight as defined in BIP 141.\n" " \"fee\" : n, (numeric) transaction fee in " + CURRENCY_UNIT + " (DEPRECATED)\n" @@ -1030,8 +1030,8 @@ UniValue gettxout(const JSONRPCRequest& request) " \"hex\" : \"hex\", (string) \n" " \"reqSigs\" : n, (numeric) Number of required signatures\n" " \"type\" : \"pubkeyhash\", (string) The type, eg pubkeyhash\n" - " \"addresses\" : [ (array of string) array of bitcoin addresses\n" - " \"address\" (string) bitcoin address\n" + " \"addresses\" : [ (array of string) array of verium addresses\n" + " \"address\" (string) verium address\n" " ,...\n" " ]\n" " },\n" diff --git a/src/rpc/mining.cpp b/src/rpc/mining.cpp index 07c2958635..79016cdc82 100644 --- a/src/rpc/mining.cpp +++ b/src/rpc/mining.cpp @@ -146,7 +146,7 @@ static UniValue generatetoaddress(const JSONRPCRequest& request) "\nMine blocks immediately to a specified address (before the RPC call returns)\n", { {"nblocks", RPCArg::Type::NUM, RPCArg::Optional::NO, "How many blocks are generated immediately."}, - {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The address to send the newly generated bitcoin to."}, + {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The address to send the newly generated verium to."}, {"maxtries", RPCArg::Type::NUM, /* default */ "1000000", "How many iterations to try."}, }, RPCResult{ @@ -155,7 +155,7 @@ static UniValue generatetoaddress(const JSONRPCRequest& request) RPCExamples{ "\nGenerate 11 blocks to myaddress\n" + HelpExampleCli("generatetoaddress", "11 \"myaddress\"") - + "If you are running the bitcoin core wallet, you can get a new address to send the newly generated bitcoin to with:\n" + + "If you are running the verium core wallet, you can get a new address to send the newly generated verium to with:\n" + HelpExampleCli("getnewaddress", "") }, }.Check(request); @@ -214,7 +214,7 @@ static UniValue getmininginfo(const JSONRPCRequest& request) } -// NOTE: Unlike wallet RPC (which use BTC values), mining RPCs follow GBT (BIP 22) in using satoshi amounts +// NOTE: Unlike wallet RPC (which use VRM values), mining RPCs follow GBT (BIP 22) in using satoshi amounts static UniValue prioritisetransaction(const JSONRPCRequest& request) { RPCHelpMan{"prioritisetransaction", diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp index 1516007201..10939fc89d 100644 --- a/src/rpc/misc.cpp +++ b/src/rpc/misc.cpp @@ -26,14 +26,14 @@ static UniValue validateaddress(const JSONRPCRequest& request) { RPCHelpMan{"validateaddress", - "\nReturn information about the given bitcoin address.\n", + "\nReturn information about the given verium address.\n", { - {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The bitcoin address to validate"}, + {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The verium address to validate"}, }, RPCResult{ "{\n" " \"isvalid\" : true|false, (boolean) If the address is valid or not. If not, this is the only property returned.\n" - " \"address\" : \"address\", (string) The bitcoin address validated\n" + " \"address\" : \"address\", (string) The verium address validated\n" " \"scriptPubKey\" : \"hex\", (string) The hex-encoded scriptPubKey generated by the address\n" " \"isscript\" : true|false, (boolean) If the key is a script\n" " \"iswitness\" : true|false, (boolean) If the address is a witness address\n" @@ -246,7 +246,7 @@ static UniValue verifymessage(const JSONRPCRequest& request) RPCHelpMan{"verifymessage", "\nVerify a signed message\n", { - {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The bitcoin address to use for the signature."}, + {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The verium address to use for the signature."}, {"signature", RPCArg::Type::STR, RPCArg::Optional::NO, "The signature provided by the signer in base 64 encoding (see signmessage)."}, {"message", RPCArg::Type::STR, RPCArg::Optional::NO, "The message that was signed."}, }, @@ -542,7 +542,7 @@ static UniValue echo(const JSONRPCRequest& request) RPCHelpMan{"echo|echojson ...", "\nSimply echo back the input arguments. This command is for testing.\n" "\nThe difference between echo and echojson is that echojson has argument conversion enabled in the client-side table in " - "bitcoin-cli and the GUI. There is no server-side difference.", + "verium-cli and the GUI. There is no server-side difference.", {}, RPCResults{}, RPCExamples{""}, diff --git a/src/rpc/net.cpp b/src/rpc/net.cpp index 7c4b3d0cc6..1461f70d36 100644 --- a/src/rpc/net.cpp +++ b/src/rpc/net.cpp @@ -320,7 +320,7 @@ static UniValue getaddednodeinfo(const JSONRPCRequest& request) " \"connected\" : true|false, (boolean) If connected\n" " \"addresses\" : [ (list of objects) Only when connected = true\n" " {\n" - " \"address\" : \"192.168.0.201:8333\", (string) The bitcoin server IP and port we're connected to\n" + " \"address\" : \"192.168.0.201:8333\", (string) The verium server IP and port we're connected to\n" " \"connected\" : \"outbound\" (string) connection, inbound or outbound\n" " }\n" " ]\n" diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index 25baed1246..8577012b59 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -130,7 +130,7 @@ static UniValue getrawtransaction(const JSONRPCRequest& request) " \"reqSigs\" : n, (numeric) The required sigs\n" " \"type\" : \"pubkeyhash\", (string) The type, eg 'pubkeyhash'\n" " \"addresses\" : [ (json array of string)\n" - " \"address\" (string) bitcoin address\n" + " \"address\" (string) verium address\n" " ,...\n" " ]\n" " }\n" @@ -375,7 +375,7 @@ static UniValue createrawtransaction(const JSONRPCRequest& request) { {"", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED, "", { - {"address", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "A key-value pair. The key (string) is the bitcoin address, the value (float or string) is the amount in " + CURRENCY_UNIT}, + {"address", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "A key-value pair. The key (string) is the verium address, the value (float or string) is the amount in " + CURRENCY_UNIT}, }, }, {"", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED, "", @@ -463,7 +463,7 @@ static UniValue decoderawtransaction(const JSONRPCRequest& request) " \"reqSigs\" : n, (numeric) The required sigs\n" " \"type\" : \"pubkeyhash\", (string) The type, eg 'pubkeyhash'\n" " \"addresses\" : [ (json array of string)\n" - " \"12tvKAXCxZjSmdNbao16dKXC8tRWfcF5oc\" (string) bitcoin address\n" + " \"12tvKAXCxZjSmdNbao16dKXC8tRWfcF5oc\" (string) verium address\n" " ,...\n" " ]\n" " }\n" @@ -518,7 +518,7 @@ static UniValue decodescript(const JSONRPCRequest& request) " \"type\":\"type\", (string) The output type (e.g. "+GetAllOutputTypes()+")\n" " \"reqSigs\": n, (numeric) The required signatures\n" " \"addresses\": [ (json array of string)\n" - " \"address\" (string) bitcoin address\n" + " \"address\" (string) verium address\n" " ,...\n" " ],\n" " \"p2sh\":\"str\" (string) address of P2SH script wrapping this redeem script (not returned if the script is already a P2SH).\n" @@ -1355,7 +1355,7 @@ UniValue createpsbt(const JSONRPCRequest& request) { {"", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED, "", { - {"address", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "A key-value pair. The key (string) is the bitcoin address, the value (float or string) is the amount in " + CURRENCY_UNIT}, + {"address", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "A key-value pair. The key (string) is the verium address, the value (float or string) is the amount in " + CURRENCY_UNIT}, }, }, {"", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED, "", diff --git a/src/rpc/util.cpp b/src/rpc/util.cpp index adda90c104..070988d6ba 100644 --- a/src/rpc/util.cpp +++ b/src/rpc/util.cpp @@ -110,7 +110,7 @@ std::vector ParseHexO(const UniValue& o, std::string strKey) std::string HelpExampleCli(const std::string& methodname, const std::string& args) { - return "> bitcoin-cli " + methodname + " " + args + "\n"; + return "> verium-cli " + methodname + " " + args + "\n"; } std::string HelpExampleRpc(const std::string& methodname, const std::string& args) diff --git a/src/test/README.md b/src/test/README.md index 96dcb072bc..ad77181404 100644 --- a/src/test/README.md +++ b/src/test/README.md @@ -6,7 +6,7 @@ sense to simply use this framework rather than require developers to configure some other framework (we want as few impediments to creating unit tests as possible). -The build system is set up to compile an executable called `test_bitcoin` +The build system is set up to compile an executable called `test_verium` that runs all of the unit tests. The main source file is called `setup_common.cpp`. @@ -17,32 +17,32 @@ and tests weren't explicitly disabled. After configuring, they can be run with `make check`. -To run the bitcoind tests manually, launch `src/test/test_bitcoin`. To recompile +To run the veriumd tests manually, launch `src/test/test_verium`. To recompile after a test file was modified, run `make` and then run the test again. If you modify a non-test file, use `make -C src/test` to recompile only what's needed -to run the bitcoind tests. +to run the veriumd tests. -To add more bitcoind tests, add `BOOST_AUTO_TEST_CASE` functions to the existing +To add more veriumd tests, add `BOOST_AUTO_TEST_CASE` functions to the existing .cpp files in the `test/` directory or add new .cpp files that implement new `BOOST_AUTO_TEST_SUITE` sections. -To run the bitcoin-qt tests manually, launch `src/qt/test/test_bitcoin-qt` +To run the verium-qt tests manually, launch `src/qt/test/test_verium-qt` -To add more bitcoin-qt tests, add them to the `src/qt/test/` directory and +To add more verium-qt tests, add them to the `src/qt/test/` directory and the `src/qt/test/test_main.cpp` file. ### Running individual tests -test_bitcoin has some built-in command-line arguments; for +test_verium has some built-in command-line arguments; for example, to run just the getarg_tests verbosely: - test_bitcoin --log_level=all --run_test=getarg_tests + test_verium --log_level=all --run_test=getarg_tests ... or to run just the doubledash test: - test_bitcoin --run_test=getarg_tests/doubledash + test_verium --run_test=getarg_tests/doubledash -Run `test_bitcoin --help` for the full list. +Run `test_verium --help` for the full list. ### Adding test cases @@ -59,9 +59,9 @@ see `uint256_tests.cpp`. To write to logs from unit tests you need to use specific message methods provided by Boost. The simplest is `BOOST_TEST_MESSAGE`. -For debugging you can launch the test_bitcoin executable with `gdb`or `lldb` and -start debugging, just like you would with bitcoind: +For debugging you can launch the test_verium executable with `gdb`or `lldb` and +start debugging, just like you would with veriumd: ```bash -gdb src/test/test_bitcoin +gdb src/test/test_verium ``` diff --git a/src/test/amount_tests.cpp b/src/test/amount_tests.cpp index 378fe285d5..2b21b65c97 100644 --- a/src/test/amount_tests.cpp +++ b/src/test/amount_tests.cpp @@ -98,7 +98,7 @@ BOOST_AUTO_TEST_CASE(BinaryOperatorTest) BOOST_CHECK(a <= a); BOOST_CHECK(b >= a); BOOST_CHECK(b >= b); - // a should be 0.00000002 BTC/kB now + // a should be 0.00000002 VRM/kB now a += a; BOOST_CHECK(a == b); } @@ -107,7 +107,7 @@ BOOST_AUTO_TEST_CASE(ToStringTest) { CFeeRate feeRate; feeRate = CFeeRate(1); - BOOST_CHECK_EQUAL(feeRate.ToString(), "0.00000001 BTC/kB"); + BOOST_CHECK_EQUAL(feeRate.ToString(), "0.00000001 VRM/kB"); } BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/data/tx_valid.json b/src/test/data/tx_valid.json index 4a1c77166d..3952a39ab8 100644 --- a/src/test/data/tx_valid.json +++ b/src/test/data/tx_valid.json @@ -516,7 +516,7 @@ [[["9628667ad48219a169b41b020800162287d2c0f713c04157e95c484a8dcb7592", 7500, "0x00 0x20 0x9b66c15b4e0b4eb49fa877982cafded24859fe5b0e2dbfbe4f0df1de7743fd52", 200000]], "010000000001019275cb8d4a485ce95741c013f7c0d28722160008021bb469a11982d47a6628964c1d000000ffffffff0101000000000000000007004830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0148304502205286f726690b2e9b0207f0345711e63fa7012045b9eb0f19c2458ce1db90cf43022100e89f17f86abc5b149eba4115d4f128bcf45d77fb3ecdd34f594091340c0395960101022102966f109c54e85d3aee8321301136cedeb9fc710fdef58a9de8a73942f8e567c021034ffc99dd9a79dd3cb31e2ab3e0b09e0e67db41ac068c625cd1f491576016c84e9552af4830450220487fb382c4974de3f7d834c1b617fe15860828c7f96454490edd6d891556dcc9022100baf95feb48f845d5bfc9882eb6aeefa1bc3790e39f59eaa46ff7f15ae626c53e0148304502205286f726690b2e9b0207f0345711e63fa7012045b9eb0f19c2458ce1db90cf43022100e89f17f86abc5b149eba4115d4f128bcf45d77fb3ecdd34f594091340c039596017500000000", "P2SH,WITNESS,CONST_SCRIPTCODE"], -["Test long outputs, which are streamed using length-prefixed bitcoin strings. This might be surprising."], +["Test long outputs, which are streamed using length-prefixed verium strings. This might be surprising."], [[["1111111111111111111111111111111111111111111111111111111111111111", 0, "0x00 0x14 0x751e76e8199196d454941c45d1b3a323f1433bd6", 5000000]], "0100000000010111111111111111111111111111111111111111111111111111111111111111110000000000ffffffff0130244c0000000000fd02014cdc1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111175210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ac02483045022100c1a4a6581996a7fdfea77d58d537955a5655c1d619b6f3ab6874f28bb2e19708022056402db6fede03caae045a3be616a1a2d0919a475ed4be828dc9ff21f24063aa01210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179800000000", "P2SH,WITNESS"], diff --git a/src/test/fs_tests.cpp b/src/test/fs_tests.cpp index b504a3cbb1..d97b7113e4 100644 --- a/src/test/fs_tests.cpp +++ b/src/test/fs_tests.cpp @@ -18,13 +18,13 @@ BOOST_AUTO_TEST_CASE(fsbridge_fstream) fs::path tmpfile2 = tmpfolder / "fs_tests_₿_🏃"; { fsbridge::ofstream file(tmpfile1); - file << "bitcoin"; + file << "verium"; } { fsbridge::ifstream file(tmpfile2); std::string input_buffer; file >> input_buffer; - BOOST_CHECK_EQUAL(input_buffer, "bitcoin"); + BOOST_CHECK_EQUAL(input_buffer, "verium"); } { fsbridge::ifstream file(tmpfile1, std::ios_base::in | std::ios_base::ate); @@ -40,17 +40,17 @@ BOOST_AUTO_TEST_CASE(fsbridge_fstream) fsbridge::ifstream file(tmpfile1); std::string input_buffer; file >> input_buffer; - BOOST_CHECK_EQUAL(input_buffer, "bitcointests"); + BOOST_CHECK_EQUAL(input_buffer, "veriumtests"); } { fsbridge::ofstream file(tmpfile2, std::ios_base::out | std::ios_base::trunc); - file << "bitcoin"; + file << "verium"; } { fsbridge::ifstream file(tmpfile1); std::string input_buffer; file >> input_buffer; - BOOST_CHECK_EQUAL(input_buffer, "bitcoin"); + BOOST_CHECK_EQUAL(input_buffer, "verium"); } } diff --git a/src/test/miner_tests.cpp b/src/test/miner_tests.cpp index c9661b730d..2205277498 100644 --- a/src/test/miner_tests.cpp +++ b/src/test/miner_tests.cpp @@ -172,7 +172,7 @@ static void TestPackageSelection(const CChainParams& chainparams, const CScript& tx.vin[0].prevout.hash = txFirst[2]->GetHash(); tx.vout.resize(2); tx.vout[0].nValue = 5000000000LL - 100000000; - tx.vout[1].nValue = 100000000; // 1BTC output + tx.vout[1].nValue = 100000000; // 1VRM output uint256 hashFreeTx2 = tx.GetHash(); mempool.addUnchecked(entry.Fee(0).SpendsCoinbase(true).FromTx(tx)); diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp index 5ae0812243..be5dfdcbe8 100644 --- a/src/test/rpc_tests.cpp +++ b/src/test/rpc_tests.cpp @@ -228,7 +228,7 @@ BOOST_AUTO_TEST_CASE(json_parse_errors) // Invalid, trailing garbage BOOST_CHECK_THROW(ParseNonRFCJSONValue("1.0sds"), std::runtime_error); BOOST_CHECK_THROW(ParseNonRFCJSONValue("1.0]"), std::runtime_error); - // BTC addresses should fail parsing + // VRM addresses should fail parsing BOOST_CHECK_THROW(ParseNonRFCJSONValue("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"), std::runtime_error); BOOST_CHECK_THROW(ParseNonRFCJSONValue("3J98t1WpEZ73CNmQviecrnyiWrnqRhWNL"), std::runtime_error); } diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index e4804856aa..ad78f20847 100644 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -809,7 +809,7 @@ BOOST_FIXTURE_TEST_CASE(util_ArgsMerge, ArgsMergeTestingSetup) // If check below fails, should manually dump the results with: // - // ARGS_MERGE_TEST_OUT=results.txt ./test_bitcoin --run_test=util_tests/util_ArgsMerge + // ARGS_MERGE_TEST_OUT=results.txt ./test_verium --run_test=util_tests/util_ArgsMerge // // And verify diff against previous results to make sure the changes are expected. // @@ -911,7 +911,7 @@ BOOST_FIXTURE_TEST_CASE(util_ChainMerge, ChainMergeTestingSetup) // If check below fails, should manually dump the results with: // - // CHAIN_MERGE_TEST_OUT=results.txt ./test_bitcoin --run_test=util_tests/util_ChainMerge + // CHAIN_MERGE_TEST_OUT=results.txt ./test_verium --run_test=util_tests/util_ChainMerge // // And verify diff against previous results to make sure the changes are expected. // @@ -1573,7 +1573,7 @@ BOOST_AUTO_TEST_CASE(test_ToUpper) BOOST_AUTO_TEST_CASE(test_Capitalize) { BOOST_CHECK_EQUAL(Capitalize(""), ""); - BOOST_CHECK_EQUAL(Capitalize("bitcoin"), "Verium"); + BOOST_CHECK_EQUAL(Capitalize("verium"), "Verium"); BOOST_CHECK_EQUAL(Capitalize("\x00\xfe\xff"), "\x00\xfe\xff"); } diff --git a/src/util/system.cpp b/src/util/system.cpp index 30b6614a44..47fba7fa77 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -69,7 +69,7 @@ // Application startup time (used for uptime calculation) const int64_t nStartupTime = GetTime(); -const char * const BITCOIN_CONF_FILENAME = "bitcoin.conf"; +const char * const BITCOIN_CONF_FILENAME = "verium.conf"; ArgsManager gArgs; @@ -219,7 +219,7 @@ class ArgsManagerHelper { std::pair found_result(false, std::string()); // We pass "true" to GetArgHelper in order to return the last - // argument value seen from the command line (so "bitcoind -foo=bar + // argument value seen from the command line (so "veriumd -foo=bar // -foo=baz" gives GetArg(am,"foo")=={true,"baz"} found_result = GetArgHelper(am.m_override_args, arg, true); if (found_result.first) { @@ -390,7 +390,7 @@ bool ArgsManager::ParseParameters(int argc, const char* const argv[], std::strin if (key.substr(0, 5) == "-psn_") continue; #endif - if (key == "-") break; //bitcoin-tx using stdin + if (key == "-") break; //verium-tx using stdin std::string val; size_t is_index = key.find('='); if (is_index != std::string::npos) { @@ -676,7 +676,7 @@ static std::string FormatException(const std::exception* pex, const char* pszThr char pszModule[MAX_PATH] = ""; GetModuleFileNameA(nullptr, pszModule, sizeof(pszModule)); #else - const char* pszModule = "bitcoin"; + const char* pszModule = "verium"; #endif if (pex) return strprintf( @@ -698,7 +698,7 @@ fs::path GetDefaultDataDir() // Windows < Vista: C:\Documents and Settings\Username\Application Data\Verium // Windows >= Vista: C:\Users\Username\AppData\Roaming\Verium // Mac: ~/Library/Application Support/Verium - // Unix: ~/.bitcoin + // Unix: ~/.verium #ifdef WIN32 // Windows return GetSpecialFolderPath(CSIDL_APPDATA) / "Verium"; @@ -714,7 +714,7 @@ fs::path GetDefaultDataDir() return pathRet / "Library/Application Support/Verium"; #else // Unix - return pathRet / ".bitcoin"; + return pathRet / ".verium"; #endif #endif } diff --git a/src/validation.cpp b/src/validation.cpp index da4d97ade5..c031be62b5 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -989,7 +989,7 @@ bool MemPoolAccept::Finalize(ATMPArgs& args, Workspace& ws) // Remove conflicting transactions from the mempool for (CTxMemPool::txiter it : allConflicting) { - LogPrint(BCLog::MEMPOOL, "replacing tx %s with %s for %s BTC additional fees, %d delta bytes\n", + LogPrint(BCLog::MEMPOOL, "replacing tx %s with %s for %s VRM additional fees, %d delta bytes\n", it->GetTx().GetHash().ToString(), hash.ToString(), FormatMoney(nModifiedFees - nConflictingFees), diff --git a/src/wallet/db.cpp b/src/wallet/db.cpp index 26aeb754ad..1f2b2fb337 100644 --- a/src/wallet/db.cpp +++ b/src/wallet/db.cpp @@ -174,7 +174,7 @@ bool BerkeleyEnvironment::Open(bool retry) fs::path pathIn = strPath; TryCreateDirectories(pathIn); if (!LockDirectory(pathIn, ".walletlock")) { - LogPrintf("Cannot obtain a lock on wallet directory %s. Another instance of bitcoin may be using it.\n", strPath); + LogPrintf("Cannot obtain a lock on wallet directory %s. Another instance of verium may be using it.\n", strPath); return false; } diff --git a/src/wallet/rpcdump.cpp b/src/wallet/rpcdump.cpp index 336a4cb75e..1a2165d8af 100644 --- a/src/wallet/rpcdump.cpp +++ b/src/wallet/rpcdump.cpp @@ -695,7 +695,7 @@ UniValue dumpprivkey(const JSONRPCRequest& request) "\nReveals the private key corresponding to 'address'.\n" "Then the importprivkey can be used with this output\n", { - {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The bitcoin address for the private key"}, + {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The verium address for the private key"}, }, RPCResult{ "\"key\" (string) The private key\n" @@ -743,7 +743,7 @@ UniValue dumpwallet(const JSONRPCRequest& request) "Note that if your wallet contains keys which are not derived from your HD seed (e.g. imported keys), these are not covered by\n" "only backing up the seed itself, and must be backed up too (e.g. ensure you back up the whole dumpfile).\n", { - {"filename", RPCArg::Type::STR, RPCArg::Optional::NO, "The filename with path (either absolute or relative to bitcoind)"}, + {"filename", RPCArg::Type::STR, RPCArg::Optional::NO, "The filename with path (either absolute or relative to veriumd)"}, }, RPCResult{ "{ (json object)\n" @@ -1436,7 +1436,7 @@ UniValue importmulti(const JSONRPCRequest& mainRequest) "block from time %d, which is after or within %d seconds of key creation, and " "could contain transactions pertaining to the key. As a result, transactions " "and coins using this key may not appear in the wallet. This error could be " - "caused by pruning or data corruption (see bitcoind log for details) and could " + "caused by pruning or data corruption (see veriumd log for details) and could " "be dealt with by downloading and rescanning the relevant blocks (see -reindex " "and -rescan options).", GetImportTimestamp(request, now), scannedTime - TIMESTAMP_WINDOW - 1, TIMESTAMP_WINDOW))); diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 4ca23776a9..01a1939bba 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -193,7 +193,7 @@ static UniValue getnewaddress(const JSONRPCRequest& request) {"address_type", RPCArg::Type::STR, /* default */ "set by -addresstype", "The address type to use. Options are \"legacy\", \"p2sh-segwit\", and \"bech32\"."}, }, RPCResult{ - "\"address\" (string) The new bitcoin address\n" + "\"address\" (string) The new verium address\n" }, RPCExamples{ HelpExampleCli("getnewaddress", "") @@ -286,7 +286,7 @@ static UniValue setlabel(const JSONRPCRequest& request) RPCHelpMan{"setlabel", "\nSets the label associated with the given address.\n", { - {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The bitcoin address to be associated with a label."}, + {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The verium address to be associated with a label."}, {"label", RPCArg::Type::STR, RPCArg::Optional::NO, "The label to assign to the address."}, }, RPCResults{}, @@ -363,7 +363,7 @@ static UniValue sendtoaddress(const JSONRPCRequest& request) "\nSend an amount to a given address." + HelpRequiringPassphrase(pwallet) + "\n", { - {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The bitcoin address to send to."}, + {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The verium address to send to."}, {"amount", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "The amount in " + CURRENCY_UNIT + " to send. eg 0.1"}, {"comment", RPCArg::Type::STR, RPCArg::Optional::OMITTED_NAMED_ARG, "A comment used to store what the transaction is for.\n" " This is not part of the transaction, just kept in your wallet."}, @@ -371,7 +371,7 @@ static UniValue sendtoaddress(const JSONRPCRequest& request) " to which you're sending the transaction. This is not part of the \n" " transaction, just kept in your wallet."}, {"subtractfeefromamount", RPCArg::Type::BOOL, /* default */ "false", "The fee will be deducted from the amount being sent.\n" - " The recipient will receive less bitcoins than you enter in the amount field."}, + " The recipient will receive less veriums than you enter in the amount field."}, {"replaceable", RPCArg::Type::BOOL, /* default */ "wallet default", "Allow this transaction to be replaced by a transaction with higher fees via BIP 125"}, {"conf_target", RPCArg::Type::NUM, /* default */ "wallet default", "Confirmation target (in blocks)"}, {"estimate_mode", RPCArg::Type::STR, /* default */ "UNSET", "The fee estimate mode, must be one of:\n" @@ -464,7 +464,7 @@ static UniValue listaddressgroupings(const JSONRPCRequest& request) "[\n" " [\n" " [\n" - " \"address\", (string) The bitcoin address\n" + " \"address\", (string) The verium address\n" " amount, (numeric) The amount in " + CURRENCY_UNIT + "\n" " \"label\" (string, optional) The label\n" " ]\n" @@ -520,7 +520,7 @@ static UniValue signmessage(const JSONRPCRequest& request) "\nSign a message with the private key of an address" + HelpRequiringPassphrase(pwallet) + "\n", { - {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The bitcoin address to use for the private key."}, + {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The verium address to use for the private key."}, {"message", RPCArg::Type::STR, RPCArg::Optional::NO, "The message to create a signature of."}, }, RPCResult{ @@ -585,7 +585,7 @@ static UniValue getreceivedbyaddress(const JSONRPCRequest& request) RPCHelpMan{"getreceivedbyaddress", "\nReturns the total amount received by the given address in transactions with at least minconf confirmations.\n", { - {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The bitcoin address for transactions."}, + {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The verium address for transactions."}, {"minconf", RPCArg::Type::NUM, /* default */ "1", "Only include transactions confirmed at least this many times."}, }, RPCResult{ @@ -812,14 +812,14 @@ static UniValue sendmany(const JSONRPCRequest& request) {"dummy", RPCArg::Type::STR, RPCArg::Optional::NO, "Must be set to \"\" for backwards compatibility.", "\"\""}, {"amounts", RPCArg::Type::OBJ, RPCArg::Optional::NO, "A json object with addresses and amounts", { - {"address", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "The bitcoin address is the key, the numeric amount (can be string) in " + CURRENCY_UNIT + " is the value"}, + {"address", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "The verium address is the key, the numeric amount (can be string) in " + CURRENCY_UNIT + " is the value"}, }, }, {"minconf", RPCArg::Type::NUM, RPCArg::Optional::OMITTED_NAMED_ARG, "Ignored dummy value"}, {"comment", RPCArg::Type::STR, RPCArg::Optional::OMITTED_NAMED_ARG, "A comment"}, {"subtractfeefrom", RPCArg::Type::ARR, RPCArg::Optional::OMITTED_NAMED_ARG, "A json array with addresses.\n" " The fee will be equally deducted from the amount of each selected address.\n" - " Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n" + " Those recipients will receive less veriums than you enter in their corresponding amount field.\n" " If no addresses are specified here, the sender pays the fee.", { {"address", RPCArg::Type::STR, RPCArg::Optional::OMITTED, "Subtract fee from this address"}, @@ -953,9 +953,9 @@ static UniValue addmultisigaddress(const JSONRPCRequest& request) "If 'label' is specified, assign address to that label.\n", { {"nrequired", RPCArg::Type::NUM, RPCArg::Optional::NO, "The number of required signatures out of the n keys or addresses."}, - {"keys", RPCArg::Type::ARR, RPCArg::Optional::NO, "A json array of bitcoin addresses or hex-encoded public keys", + {"keys", RPCArg::Type::ARR, RPCArg::Optional::NO, "A json array of verium addresses or hex-encoded public keys", { - {"key", RPCArg::Type::STR, RPCArg::Optional::OMITTED, "bitcoin address or hex-encoded public key"}, + {"key", RPCArg::Type::STR, RPCArg::Optional::OMITTED, "verium address or hex-encoded public key"}, }, }, {"label", RPCArg::Type::STR, RPCArg::Optional::OMITTED_NAMED_ARG, "A label to assign the addresses to."}, @@ -1381,7 +1381,7 @@ UniValue listtransactions(const JSONRPCRequest& request) RPCResult{ "[\n" " {\n" - " \"address\":\"address\", (string) The bitcoin address of the transaction.\n" + " \"address\":\"address\", (string) The verium address of the transaction.\n" " \"category\": (string) The transaction category.\n" " \"send\" Transactions sent.\n" " \"receive\" Non-coinbase transactions received.\n" @@ -1515,7 +1515,7 @@ static UniValue listsinceblock(const JSONRPCRequest& request) RPCResult{ "{\n" " \"transactions\": [\n" - " \"address\":\"address\", (string) The bitcoin address of the transaction.\n" + " \"address\":\"address\", (string) The verium address of the transaction.\n" " \"category\": (string) The transaction category.\n" " \"send\" Transactions sent.\n" " \"receive\" Non-coinbase transactions received.\n" @@ -1669,7 +1669,7 @@ static UniValue gettransaction(const JSONRPCRequest& request) " may be unknown for unconfirmed transactions not in the mempool\n" " \"details\" : [\n" " {\n" - " \"address\" : \"address\", (string) The bitcoin address involved in the transaction\n" + " \"address\" : \"address\", (string) The verium address involved in the transaction\n" " \"category\" : (string) The transaction category.\n" " \"send\" Transactions sent.\n" " \"receive\" Non-coinbase transactions received.\n" @@ -1891,7 +1891,7 @@ static UniValue walletpassphrase(const JSONRPCRequest& request) RPCHelpMan{"walletpassphrase", "\nStores the wallet decryption key in memory for 'timeout' seconds.\n" - "This is needed prior to performing transactions related to private keys such as sending bitcoins\n" + "This is needed prior to performing transactions related to private keys such as sending veriums\n" "\nNote:\n" "Issuing the walletpassphrase command while the wallet is already unlocked will set a new unlock\n" "time that overrides the old one.\n", @@ -2078,7 +2078,7 @@ static UniValue encryptwallet(const JSONRPCRequest& request) RPCExamples{ "\nEncrypt your wallet\n" + HelpExampleCli("encryptwallet", "\"my pass phrase\"") + - "\nNow set the passphrase to use the wallet, such as for signing or sending bitcoin\n" + "\nNow set the passphrase to use the wallet, such as for signing or sending verium\n" + HelpExampleCli("walletpassphrase", "\"my pass phrase\"") + "\nNow we can do something like sign\n" + HelpExampleCli("signmessage", "\"address\" \"test message\"") + @@ -2130,7 +2130,7 @@ static UniValue lockunspent(const JSONRPCRequest& request) "\nUpdates list of temporarily unspendable outputs.\n" "Temporarily lock (unlock=false) or unlock (unlock=true) specified transaction outputs.\n" "If no transaction outputs are specified when unlocking then all current locked transaction outputs are unlocked.\n" - "A locked transaction output will not be chosen by automatic coin selection, when spending bitcoins.\n" + "A locked transaction output will not be chosen by automatic coin selection, when spending veriums.\n" "Locks are stored in memory only. Nodes start with zero locked outputs, and the locked output list\n" "is always cleared (by virtue of process exit) when a node stops or fails.\n" "Also see the listunspent call\n", @@ -2558,7 +2558,7 @@ static UniValue loadwallet(const JSONRPCRequest& request) { RPCHelpMan{"loadwallet", "\nLoads a wallet from a wallet file or directory." - "\nNote that all wallet command-line options used when starting bitcoind will be" + "\nNote that all wallet command-line options used when starting veriumd will be" "\napplied to the new wallet (eg -zapwallettxes, upgradewallet, rescan, etc).\n", { {"filename", RPCArg::Type::STR, RPCArg::Optional::NO, "The wallet directory or .dat file."}, @@ -2797,9 +2797,9 @@ static UniValue listunspent(const JSONRPCRequest& request) { {"minconf", RPCArg::Type::NUM, /* default */ "1", "The minimum confirmations to filter"}, {"maxconf", RPCArg::Type::NUM, /* default */ "9999999", "The maximum confirmations to filter"}, - {"addresses", RPCArg::Type::ARR, /* default */ "empty array", "A json array of bitcoin addresses to filter", + {"addresses", RPCArg::Type::ARR, /* default */ "empty array", "A json array of verium addresses to filter", { - {"address", RPCArg::Type::STR, RPCArg::Optional::OMITTED, "bitcoin address"}, + {"address", RPCArg::Type::STR, RPCArg::Optional::OMITTED, "verium address"}, }, }, {"include_unsafe", RPCArg::Type::BOOL, /* default */ "true", "Include outputs that are not safe to spend\n" @@ -2818,7 +2818,7 @@ static UniValue listunspent(const JSONRPCRequest& request) " {\n" " \"txid\" : \"txid\", (string) the transaction id \n" " \"vout\" : n, (numeric) the vout value\n" - " \"address\" : \"address\", (string) the bitcoin address\n" + " \"address\" : \"address\", (string) the veriumaddress\n" " \"label\" : \"label\", (string) The associated label, or \"\" for the default label\n" " \"scriptPubKey\" : \"key\", (string) the script key\n" " \"amount\" : x.xxx, (numeric) the transaction output amount in " + CURRENCY_UNIT + "\n" @@ -3027,7 +3027,7 @@ void FundTransaction(CWallet* const pwallet, CMutableTransaction& tx, CAmount& f CTxDestination dest = DecodeDestination(options["changeAddress"].get_str()); if (!IsValidDestination(dest)) { - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "changeAddress must be a valid bitcoin address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "changeAddress must be a valid verium address"); } coinControl.destChange = dest; @@ -3132,7 +3132,7 @@ static UniValue fundrawtransaction(const JSONRPCRequest& request) {"hexstring", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, "The hex string of the raw transaction"}, {"options", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED_NAMED_ARG, "for backward compatibility: passing in a true instead of an object will result in {\"includeWatching\":true}", { - {"changeAddress", RPCArg::Type::STR, /* default */ "pool address", "The bitcoin address to receive the change"}, + {"changeAddress", RPCArg::Type::STR, /* default */ "pool address", "The verium address to receive the change"}, {"changePosition", RPCArg::Type::NUM, /* default */ "random", "The index of the change output"}, {"change_type", RPCArg::Type::STR, /* default */ "set by -changetype", "The output type to use. Only valid if changeAddress is not specified. Options are \"legacy\", \"p2sh-segwit\", and \"bech32\"."}, {"includeWatching", RPCArg::Type::BOOL, /* default */ "true for watch-only wallets, otherwise false", "Also select inputs which are watch only.\n" @@ -3142,7 +3142,7 @@ static UniValue fundrawtransaction(const JSONRPCRequest& request) {"feeRate", RPCArg::Type::AMOUNT, /* default */ "not set: makes wallet determine the fee", "Set a specific fee rate in " + CURRENCY_UNIT + "/kB"}, {"subtractFeeFromOutputs", RPCArg::Type::ARR, /* default */ "empty array", "A json array of integers.\n" " The fee will be equally deducted from the amount of each specified output.\n" - " Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n" + " Those recipients will receive less veriums than you enter in their corresponding amount field.\n" " If no outputs are specified here, the sender pays the fee.", { {"vout_index", RPCArg::Type::NUM, RPCArg::Optional::OMITTED, "The zero-based output index, before a change output is added."}, @@ -3323,7 +3323,7 @@ static UniValue bumpfee(const JSONRPCRequest& request) " the dust threshold."}, {"fee_rate", RPCArg::Type::NUM, /* default */ "fallback to 'confTarget'", "FeeRate (NOT total fee) to pay, in " + CURRENCY_UNIT + " per kB\n" " Specify a fee rate instead of relying on the built-in fee estimator.\n" - " Must be at least 0.0001 BTC per kB higher than the current transaction fee rate.\n"}, + " Must be at least 0.0001 VRM per kB higher than the current transaction fee rate.\n"}, {"replaceable", RPCArg::Type::BOOL, /* default */ "true", "Whether the new transaction should still be\n" " marked bip-125 replaceable. If true, the sequence numbers in the transaction will\n" " be left unchanged from the original. If false, any input sequence numbers in the\n" @@ -3679,14 +3679,14 @@ UniValue getaddressinfo(const JSONRPCRequest& request) } RPCHelpMan{"getaddressinfo", - "\nReturn information about the given bitcoin address. Some information requires the address\n" + "\nReturn information about the given verium address. Some information requires the address\n" "to be in the wallet.\n", { - {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The bitcoin address to get the information of."}, + {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The verium address to get the information of."}, }, RPCResult{ "{\n" - " \"address\" : \"address\", (string) The bitcoin address validated\n" + " \"address\" : \"address\", (string) The verium address validated\n" " \"scriptPubKey\" : \"hex\", (string) The hex-encoded scriptPubKey generated by the address\n" " \"ismine\" : true|false, (boolean) If the address is yours or not\n" " \"iswatchonly\" : true|false, (boolean) If the address is watchonly\n" @@ -4080,7 +4080,7 @@ UniValue walletcreatefundedpsbt(const JSONRPCRequest& request) { {"", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED, "", { - {"address", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "A key-value pair. The key (string) is the bitcoin address, the value (float or string) is the amount in " + CURRENCY_UNIT + ""}, + {"address", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "A key-value pair. The key (string) is the verium address, the value (float or string) is the amount in " + CURRENCY_UNIT + ""}, }, }, {"", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED, "", @@ -4093,7 +4093,7 @@ UniValue walletcreatefundedpsbt(const JSONRPCRequest& request) {"locktime", RPCArg::Type::NUM, /* default */ "0", "Raw locktime. Non-0 value also locktime-activates inputs"}, {"options", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED_NAMED_ARG, "", { - {"changeAddress", RPCArg::Type::STR_HEX, /* default */ "pool address", "The bitcoin address to receive the change"}, + {"changeAddress", RPCArg::Type::STR_HEX, /* default */ "pool address", "The verium address to receive the change"}, {"changePosition", RPCArg::Type::NUM, /* default */ "random", "The index of the change output"}, {"change_type", RPCArg::Type::STR, /* default */ "set by -changetype", "The output type to use. Only valid if changeAddress is not specified. Options are \"legacy\", \"p2sh-segwit\", and \"bech32\"."}, {"includeWatching", RPCArg::Type::BOOL, /* default */ "true for watch-only wallets, otherwise false", "Also select inputs which are watch only"}, @@ -4101,7 +4101,7 @@ UniValue walletcreatefundedpsbt(const JSONRPCRequest& request) {"feeRate", RPCArg::Type::AMOUNT, /* default */ "not set: makes wallet determine the fee", "Set a specific fee rate in " + CURRENCY_UNIT + "/kB"}, {"subtractFeeFromOutputs", RPCArg::Type::ARR, /* default */ "empty array", "A json array of integers.\n" " The fee will be equally deducted from the amount of each specified output.\n" - " Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n" + " Those recipients will receive less veriums than you enter in their corresponding amount field.\n" " If no outputs are specified here, the sender pays the fee.", { {"vout_index", RPCArg::Type::NUM, RPCArg::Optional::OMITTED, "The zero-based output index, before a change output is added."}, diff --git a/src/wallet/test/coinselector_tests.cpp b/src/wallet/test/coinselector_tests.cpp index 9e7f0ed773..803fcb706f 100644 --- a/src/wallet/test/coinselector_tests.cpp +++ b/src/wallet/test/coinselector_tests.cpp @@ -377,11 +377,11 @@ BOOST_AUTO_TEST_CASE(knapsack_solver_test) add_coin( 3*COIN); add_coin( 4*COIN); // now we have 5+6+7+8+18+20+30+100+200+300+400 = 1094 cents BOOST_CHECK( testWallet.SelectCoinsMinConf(95 * CENT, filter_confirmed, GroupCoins(vCoins), setCoinsRet, nValueRet, coin_selection_params, bnb_used)); - BOOST_CHECK_EQUAL(nValueRet, 1 * COIN); // we should get 1 BTC in 1 coin + BOOST_CHECK_EQUAL(nValueRet, 1 * COIN); // we should get 1 VRM in 1 coin BOOST_CHECK_EQUAL(setCoinsRet.size(), 1U); BOOST_CHECK( testWallet.SelectCoinsMinConf(195 * CENT, filter_confirmed, GroupCoins(vCoins), setCoinsRet, nValueRet, coin_selection_params, bnb_used)); - BOOST_CHECK_EQUAL(nValueRet, 2 * COIN); // we should get 2 BTC in 1 coin + BOOST_CHECK_EQUAL(nValueRet, 2 * COIN); // we should get 2 VRM in 1 coin BOOST_CHECK_EQUAL(setCoinsRet.size(), 1U); // empty the wallet and start again, now with fractions of a cent, to test small change avoidance diff --git a/src/wallet/test/wallet_tests.cpp b/src/wallet/test/wallet_tests.cpp index fc3be2b6ab..3de0cc5667 100644 --- a/src/wallet/test/wallet_tests.cpp +++ b/src/wallet/test/wallet_tests.cpp @@ -159,7 +159,7 @@ BOOST_FIXTURE_TEST_CASE(importmulti_rescan, TestChain100Setup) "timestamp %d. There was an error reading a block from time %d, which is after or within %d " "seconds of key creation, and could contain transactions pertaining to the key. As a result, " "transactions and coins using this key may not appear in the wallet. This error could be caused " - "by pruning or data corruption (see bitcoind log for details) and could be dealt with by " + "by pruning or data corruption (see veriumd log for details) and could be dealt with by " "downloading and rescanning the relevant blocks (see -reindex and -rescan " "options).\"}},{\"success\":true}]", 0, oldTip->GetBlockTimeMax(), TIMESTAMP_WINDOW)); From 559c93c58c18c95680336a4c277f692b5d882cf4 Mon Sep 17 00:00:00 2001 From: Matthieu 'JP' DERASSE Date: Mon, 11 May 2020 23:13:16 +0200 Subject: [PATCH 081/388] Rename Bitcoin in main / Implement travis --- .appveyor.yml | 4 +- .gitignore | 11 ++ .travis.yml | 119 ++++++++------- .tx/config | 7 - CONTRIBUTING.md | 140 ++++++------------ INSTALL.md | 4 +- Makefile.am | 50 +++---- README.md | 38 +++-- SECURITY.md | 20 --- ci/README.md | 15 +- ci/extended_lint/04_install.sh | 12 -- ci/extended_lint/06_script.sh | 9 -- ci/lint/04_install.sh | 3 +- ci/lint/05_before_script.sh | 2 +- ci/lint/06_script.sh | 20 +-- ci/retry/README.md | 4 +- ci/retry/retry | 6 +- ci/test/00_setup_env.sh | 40 +++-- ci/test/00_setup_env_amd64_asan.sh | 13 -- ci/test/00_setup_env_amd64_fuzz.sh | 16 -- ci/test/00_setup_env_amd64_trusty.sh | 15 -- ci/test/00_setup_env_amd64_tsan.sh | 14 -- ci/test/00_setup_env_arm.sh | 16 +- ci/test/00_setup_env_arm_host.sh | 30 ++++ ci/test/00_setup_env_i686.sh | 14 -- ci/test/00_setup_env_i686_centos.sh | 15 ++ ci/test/00_setup_env_mac.sh | 7 +- ci/test/00_setup_env_mac_host.sh | 17 +++ ...d64_nowallet.sh => 00_setup_env_native.sh} | 6 +- ...md64_qt5.sh => 00_setup_env_native_qt5.sh} | 10 +- ci/test/00_setup_env_win64.sh | 1 + ci/test/03_before_install.sh | 2 +- ci/test/04_install.sh | 97 +++++++++--- ci/test/05_before_script.sh | 31 ++-- ci/test/06_script_a.sh | 29 ++-- ci/test/06_script_b.sh | 31 ++-- ci/test/wrap-qemu.sh | 18 +++ configure.ac | 38 ++--- src/Makefile.am | 80 +++++----- src/Makefile.bench.include | 30 ++-- src/Makefile.qt.include | 40 ++--- src/Makefile.qttest.include | 34 ++--- src/Makefile.test.include | 40 ++--- src/qt/Makefile | 10 +- src/qt/test/Makefile | 6 +- src/test/Makefile | 6 +- 46 files changed, 611 insertions(+), 559 deletions(-) delete mode 100644 .tx/config delete mode 100644 SECURITY.md delete mode 100755 ci/extended_lint/04_install.sh delete mode 100755 ci/extended_lint/06_script.sh delete mode 100644 ci/test/00_setup_env_amd64_asan.sh delete mode 100644 ci/test/00_setup_env_amd64_fuzz.sh delete mode 100644 ci/test/00_setup_env_amd64_trusty.sh delete mode 100644 ci/test/00_setup_env_amd64_tsan.sh create mode 100644 ci/test/00_setup_env_arm_host.sh delete mode 100644 ci/test/00_setup_env_i686.sh create mode 100644 ci/test/00_setup_env_i686_centos.sh create mode 100644 ci/test/00_setup_env_mac_host.sh rename ci/test/{00_setup_env_amd64_nowallet.sh => 00_setup_env_native.sh} (80%) rename ci/test/{00_setup_env_amd64_qt5.sh => 00_setup_env_native_qt5.sh} (52%) create mode 100755 ci/test/wrap-qemu.sh diff --git a/.appveyor.yml b/.appveyor.yml index dacfba658b..6a0220a3ac 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -79,8 +79,8 @@ after_build: - ps: clcache -z #- 7z a bitcoin-%APPVEYOR_BUILD_VERSION%.zip %APPVEYOR_BUILD_FOLDER%\build_msvc\%platform%\%configuration%\*.exe test_script: -- cmd: src\test_bitcoin.exe -k stdout -e stdout 2> NUL -- cmd: src\bench_bitcoin.exe -evals=1 -scaling=0 > NUL +- cmd: src\test_verium.exe -k stdout -e stdout 2> NUL +- cmd: src\bench_verium.exe -evals=1 -scaling=0 > NUL - ps: python test\util\bitcoin-util-test.py - cmd: python test\util\rpcauth-test.py # Fee estimation test failing on appveyor with: WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted. diff --git a/.gitignore b/.gitignore index 809e851ff1..f17fb00b4a 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,14 @@ src/bitcoin-wallet src/test/test_bitcoin src/test/test_bitcoin_fuzzy src/qt/test/test_bitcoin-qt +src/verium +src/veriumd +src/verium-cli +src/verium-tx +src/verium-wallet +src/test/test_verium +src/test/test_verium_fuzzy +src/qt/test/test_verium-qt # autoreconf Makefile.in @@ -89,6 +97,7 @@ src/qt/bitcoin-qt.includes Makefile !depends/Makefile bitcoin-qt +verium-qt Bitcoin-Qt.app background.tiff* @@ -98,6 +107,7 @@ Makefile.am.user # Unit-tests Makefile.test bitcoin-qt_test +verium-qt_test # Resources cpp qrc_*.cpp @@ -111,6 +121,7 @@ build *.gcda /*.info test_bitcoin.coverage/ +test_verium.coverage/ total.coverage/ coverage_percent.txt diff --git a/.travis.yml b/.travis.yml index 3467103d10..557eec7bb6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,34 +14,40 @@ # # These caches can be manually removed if necessary. This is one of the very # few manual operations that is possible with Travis, and it can be done by a -# Bitcoin Core GitHub member via the Travis web interface [0]. +# Verium Core GitHub member via the Travis web interface [0]. # # Travis CI uploads the cache after the script phase of the build [1]. # However, the build is terminated without saving the cache if it takes over # 50 minutes [2]. Thus, if we spent too much time in early build stages, fail # with an error and save the cache. # -# [0] https://travis-ci.org/bitcoin/bitcoin/caches +# [0] https://travis-ci.org/VeriumReserve/verium/caches # [1] https://docs.travis-ci.com/user/caching/#build-phases # [2] https://docs.travis-ci.com/user/customizing-the-build#build-timeouts +version: ~> 1.0 + dist: xenial os: linux language: minimal +arch: amd64 cache: ccache: true directories: - $TRAVIS_BUILD_DIR/depends/built - $TRAVIS_BUILD_DIR/depends/sdk-sources - $TRAVIS_BUILD_DIR/ci/scratch/.ccache + - $TRAVIS_BUILD_DIR/releases/$HOST +before_cache: + - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi stages: - lint - test - - extended-lint env: global: - CI_RETRY_EXE="travis_retry" - - CACHE_ERR_MSG="Error! Initial build successful, but not enough time remains to run later build stages and tests. Please manually re-run this job by using the travis restart button or asking a bitcoin maintainer to restart. The next run should not time out because the build cache has been saved." + - CI_WAIT="while sleep 500; do echo .; done" + - CACHE_ERR_MSG="Error! Initial build successful, but not enough time remains to run later build stages and tests. See https://docs.travis-ci.com/user/customizing-the-build#build-timeouts . Please manually re-run this job by using the travis restart button. The next run should not time out because the build cache has been saved." before_install: - set -o errexit; source ./ci/test/00_setup_env.sh - set -o errexit; source ./ci/test/03_before_install.sh @@ -51,18 +57,16 @@ before_script: - set -o errexit; source ./ci/test/05_before_script.sh script: - export CONTINUE=1 - - if [ $SECONDS -gt 1200 ]; then export CONTINUE=0; fi # Likely the depends build took very long - - if [ $TRAVIS_REPO_SLUG = "bitcoin/bitcoin" ]; then export CONTINUE=1; fi # Whitelisted repo (90 minutes build time) + - if [ $SECONDS -gt 2400 ]; then export CONTINUE=0; fi # Likely the depends build took very long - if [ $CONTINUE = "1" ]; then set -o errexit; source ./ci/test/06_script_a.sh; else set +o errexit; echo "$CACHE_ERR_MSG"; false; fi - if [ $SECONDS -gt 2000 ]; then export CONTINUE=0; fi # Likely the build took very long; The tests take about 1000s, so we should abort if we have less than 50*60-1000=2000s left - - if [ $TRAVIS_REPO_SLUG = "bitcoin/bitcoin" ]; then export CONTINUE=1; fi # Whitelisted repo (90 minutes build time) - if [ $CONTINUE = "1" ]; then set -o errexit; source ./ci/test/06_script_b.sh; else set +o errexit; echo "$CACHE_ERR_MSG"; false; fi after_script: - echo $TRAVIS_COMMIT_RANGE jobs: include: - - - stage: lint + # We keep the lint even if we do nothing with it, at least, for now ... + - stage: lint name: 'lint' env: cache: false @@ -75,66 +79,75 @@ jobs: script: - set -o errexit; source ./ci/lint/06_script.sh - - stage: extended-lint - name: 'extended lint [runtime >= 60 seconds]' - env: - cache: false - language: python - python: '3.5' - install: - - set -o errexit; source ./ci/extended_lint/04_install.sh - before_script: - - set -o errexit; source ./ci/lint/05_before_script.sh - script: - - set -o errexit; source ./ci/extended_lint/06_script.sh - - stage: test - name: 'ARM [GOAL: install] [no unit or functional tests]' + name: 'ARM [GOAL: install] [buster] [gui and system packages]' + arch: arm64 # Can disable QEMU_USER_CMD and run the tests natively without qemu env: >- - FILE_ENV="./ci/test/00_setup_env_arm.sh" + FILE_ENV="./ci/test/00_setup_env_arm_host.sh" + QEMU_USER_CMD="" - stage: test - name: 'Win64 [GOAL: deploy] [no gui or functional tests]' + name: 'ARM [GOAL: install] [buster] []' + arch: arm64 # Can disable QEMU_USER_CMD and run the tests natively without qemu env: >- - FILE_ENV="./ci/test/00_setup_env_win64.sh" - - - stage: test - name: '32-bit + dash [GOAL: install] [GUI: BIP70 enabled]' - env: >- - FILE_ENV="./ci/test/00_setup_env_i686.sh" + FILE_ENV="./ci/test/00_setup_env_arm.sh" + QEMU_USER_CMD="" - - stage: test - name: 'x86_64 Linux [GOAL: install] [bionic] [uses qt5 dev package instead of depends Qt to speed up build and avoid timeout] [unsigned char]' - env: >- - FILE_ENV="./ci/test/00_setup_env_amd64_qt5.sh" +# - stage: test +# name: 'Win64 [GOAL: deploy] [unit tests, no gui, no functional tests]' +# env: >- +# FILE_ENV="./ci/test/00_setup_env_win64.sh" - stage: test - name: 'x86_64 Linux [GOAL: install] [trusty] [no functional tests, no depends, only system libs]' + name: '32-bit + dash [GOAL: install] [CentOS 7] [gui]' env: >- - FILE_ENV="./ci/test/00_setup_env_amd64_trusty.sh" + FILE_ENV="./ci/test/00_setup_env_i686_centos.sh" - stage: test - name: 'x86_64 Linux [GOAL: install] [xenial] [no depends, only system libs, sanitizers: thread (TSan), no wallet]' + name: 'x86_64 Linux [GOAL: install] [bionic] [uses qt5 and system packages] [unsigned char]' env: >- - FILE_ENV="./ci/test/00_setup_env_amd64_tsan.sh" - TEST_RUNNER_EXTRA="--exclude feature_block" # Not enough memory on travis machines + FILE_ENV="./ci/test/00_setup_env_native_qt5.sh" - stage: test - name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer]' + name: 'x86_64 Linux [GOAL: install] [bionic]' env: >- - FILE_ENV="./ci/test/00_setup_env_amd64_asan.sh" + FILE_ENV="./ci/test/00_setup_env_native.sh" - - stage: test - name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: fuzzer,address,undefined]' - env: >- - FILE_ENV="./ci/test/00_setup_env_amd64_fuzz.sh" - - - stage: test - name: 'x86_64 Linux [GOAL: install] [bionic] [no wallet]' - env: >- - FILE_ENV="./ci/test/00_setup_env_amd64_nowallet.sh" +# - stage: test +# name: 'macOS 10.12 [GOAL: deploy] [no functional tests]' +# env: >- +# FILE_ENV="./ci/test/00_setup_env_mac.sh" +# - stage: test - name: 'macOS 10.10 [GOAL: deploy] [no functional tests]' + name: 'macOS 10.14 native [GOAL: install] [GUI] [no depends]' + os: osx + # Use the most recent version: + # Xcode 11.3.1, macOS 10.14, SDK 10.15 + # https://docs.travis-ci.com/user/reference/osx/#macos-version + osx_image: xcode11.3 + cache: + directories: + - $TRAVIS_BUILD_DIR/ci/scratch/.ccache + - $TRAVIS_BUILD_DIR/releases/$HOST + - $HOME/Library/Caches/Homebrew + - /usr/local/Homebrew + addons: + homebrew: + packages: + - libtool + - berkeley-db4 + - boost + - miniupnpc + - qt + - qrencode + - python3 + - ccache + - zeromq + - minizip + - curl + - openssl env: >- - FILE_ENV="./ci/test/00_setup_env_mac.sh" + DANGER_RUN_CI_ON_HOST=true + CI_USE_APT_INSTALL=no + FILE_ENV="./ci/test/00_setup_env_mac_host.sh" diff --git a/.tx/config b/.tx/config deleted file mode 100644 index 0e18a0df98..0000000000 --- a/.tx/config +++ /dev/null @@ -1,7 +0,0 @@ -[main] -host = https://www.transifex.com - -[bitcoin.qt-translation-019x] -file_filter = src/qt/locale/bitcoin_.ts -source_file = src/qt/locale/bitcoin_en.ts -source_lang = en diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1f4a2c081e..49b482400b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,7 @@ -Contributing to Bitcoin Core +Contributing to Verium Core ============================ -The Bitcoin Core project operates an open contributor model where anyone is +The Verium Core project operates an open contributor model where anyone is welcome to contribute towards development in the form of peer review, testing and patches. This document explains the practical process and guidelines for contributing. @@ -14,28 +14,6 @@ purposes. As such there are repository "maintainers" who are responsible for merging pull requests as well as a "lead maintainer" who is responsible for the release cycle, overall merging, moderation and appointment of maintainers. -If you're looking for somewhere to start contributing, check out the -[good first issue](https://github.com/bitcoin/bitcoin/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) -list. - -Communication Channels ----------------------- - -Most communication about Bitcoin Core development happens on IRC, in the -#bitcoin-core-dev channel on Freenode. The easiest way to participate on IRC is -with the web client, [webchat.freenode.net](https://webchat.freenode.net/). Chat -history logs can be found -on [http://www.erisian.com.au/bitcoin-core-dev/](http://www.erisian.com.au/bitcoin-core-dev/) -and [http://gnusha.org/bitcoin-core-dev/](http://gnusha.org/bitcoin-core-dev/). - -Discussion about code base improvements happens in GitHub issues and on pull -requests. - -The developer -[mailing list](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev) -should be used to discuss complicated or controversial changes before working on -a patch set. - Contributor Workflow -------------------- @@ -62,14 +40,12 @@ Commit messages should be verbose by default consisting of a short subject line paragraph(s), unless the title alone is self-explanatory (like "Corrected typo in init.cpp") in which case a single title line is sufficient. Commit messages should be helpful to people reading your code in the future, so explain the reasoning for -your decisions. Further explanation [here](https://chris.beams.io/posts/git-commit/). +your decisions. Further explanation [here](http://chris.beams.io/posts/git-commit/). If a particular commit references another issue, please add the reference. For example: `refs #1234` or `fixes #4321`. Using the `fixes` or `closes` keywords will cause the corresponding issue to be closed when the pull request is merged. -Commit messages should never contain any `@` mentions. - Please refer to the [Git manual](https://git-scm.com/doc) for more information about Git. @@ -79,30 +55,31 @@ about Git. The title of the pull request should be prefixed by the component or area that the pull request affects. Valid areas as: - - `consensus` for changes to consensus critical code - - `doc` for changes to the documentation - - `qt` or `gui` for changes to bitcoin-qt - - `log` for changes to log messages - - `mining` for changes to the mining code - - `net` or `p2p` for changes to the peer-to-peer network code - - `refactor` for structural changes that do not change behavior - - `rpc`, `rest` or `zmq` for changes to the RPC, REST or ZMQ APIs - - `script` for changes to the scripts and tools - - `test` for changes to the bitcoin unit tests or QA tests - - `util` or `lib` for changes to the utils or libraries - - `wallet` for changes to the wallet code - - `build` for changes to the GNU Autotools, reproducible builds or CI code + - *Consensus* for changes to consensus critical code + - *Docs* for changes to the documentation + - *Qt* for changes to verium-qt + - *Mining* for changes to the mining code + - *Net* or *P2P* for changes to the peer-to-peer network code + - *RPC/REST/ZMQ* for changes to the RPC, REST or ZMQ APIs + - *Scripts and tools* for changes to the scripts and tools + - *Tests* for changes to the verium unit tests or QA tests + - *Trivial* should **only** be used for PRs that do not change generated + executable code. Notably, refactors (change of function arguments and code + reorganization) and changes in behavior should **not** be marked as trivial. + Examples of trivial PRs are changes to: + - comments + - whitespace + - variable names + - logging and messages + - *Utils and libraries* for changes to the utils and libraries + - *Wallet* for changes to the wallet code Examples: - consensus: Add new opcode for BIP-XXXX OP_CHECKAWESOMESIG - net: Automatically create hidden service, listen on Tor - qt: Add feed bump button - log: Fix typo in log message - -Note that translations should not be submitted as pull requests, please see -[Translation Process](https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md) -for more information on helping with translations. + Consensus: Add new opcode for BIP-XXXX OP_CHECKAWESOMESIG + Net: Automatically create hidden service, listen on Tor + Qt: Add feed bump button + Trivial: Fix typo in init.cpp If a pull request is not to be considered for merging (yet), please prefix the title with [WIP] or use [Tasks Lists](https://help.github.com/articles/basic-writing-and-formatting-syntax/#task-lists) @@ -117,8 +94,6 @@ At this stage one should expect comments and review from other contributors. You can add more commits to your pull request by committing them locally and pushing to your fork until you have satisfied all feedback. -Note: Code review is a burdensome but important part of the development process, and as such, certain types of pull requests are rejected. In general, if the **improvements** do not warrant the **review effort** required, the PR has a high chance of being rejected. It is up to the PR author to convince the reviewers that the changes warrant the review effort, and if reviewers are "Concept NAK'ing" the PR, the author may need to present arguments and/or do research backing their suggested changes. - Squashing Commits --------------------------- If your pull request is accepted for merging, you may be asked by a maintainer @@ -127,16 +102,12 @@ before it will be merged. The basic squashing workflow is shown below. git checkout your_branch_name git rebase -i HEAD~n - # n is normally the number of commits in the pull request. - # Set commits (except the one in the first line) from 'pick' to 'squash', save and quit. - # On the next screen, edit/refine commit messages. - # Save and quit. + # n is normally the number of commits in the pull + # set commits from 'pick' to 'squash', save and quit + # on the next screen, edit/refine commit messages + # save and quit git push -f # (force push to GitHub) -Please update the resulting commit message if needed, it should read as a -coherent message. In most cases this means that you should not just list the -interim commits. - If you have problems with squashing (or other workflows with `git`), you can alternatively enable "Allow edits from maintainers" in the right GitHub sidebar and ask for help in the pull request. @@ -194,11 +165,11 @@ workload on reviewing. "Decision Making" Process ------------------------- -The following applies to code changes to the Bitcoin Core project (and related -projects such as libsecp256k1), and is not to be confused with overall Bitcoin +The following applies to code changes to the Verium Core project (and related +projects such as libsecp256k1), and is not to be confused with overall Verium Network Protocol consensus changes. -Whether a pull request is merged into Bitcoin Core rests with the project merge +Whether a pull request is merged into Verium Core rests with the project merge maintainers and ultimately the project lead. Maintainers will take into consideration if a patch is in line with the general @@ -215,9 +186,8 @@ In general, all pull requests must: - Not break the existing test suite; - Where bugs are fixed, where possible, there should be unit tests demonstrating the bug and also proving the fix. This helps prevent regression. - - Change relevant comments and documentation when behaviour of code changes. -Patches that change Bitcoin consensus rules are considerably more involved than +Patches that change Verium consensus rules are considerably more involved than normal because they affect the entire ecosystem and so must be preceded by extensive mailing list discussions and have a numbered BIP. While each case will be different, one should be prepared to expend more time and effort than for @@ -232,35 +202,21 @@ request. Typically reviewers will review the code for obvious errors, as well as test out the patch set and opine on the technical merits of the patch. Project maintainers take into account the peer review when determining if there is consensus to merge a pull request (remember that discussions may have been -spread out over GitHub, mailing list and IRC discussions). - -#### Conceptual Review - -A review can be a conceptual review, where the reviewer leaves a comment - * `Concept (N)ACK`, meaning "I do (not) agree in the general goal of this pull - request", - * `Approach (N)ACK`, meaning `Concept ACK`, but "I do (not) agree with the - approach of this change". - -A `NACK` needs to include a rationale why the change is not worthwhile. -NACKs without accompanying reasoning may be disregarded. - -#### Code Review - -After conceptual agreement on the change, code review can be provided. It is -starting with `ACK BRANCH_COMMIT`, where `BRANCH_COMMIT` is the top of the -topic branch. The review is followed by a description of how the reviewer did -the review. The following +spread out over GitHub, mailing list and IRC discussions). The following language is used within pull-request comments: - - "I have tested the code", involving - change-specific manual testing in addition to running the unit and functional - tests, and in case it is not obvious how the manual testing was done, it should - be described; - - "I have not tested the code, but I have reviewed it and it looks + - ACK means "I have tested the code and I agree it should be merged"; + - NACK means "I disagree this should be merged", and must be accompanied by + sound technical justification (or in certain cases of copyright/patent/licensing + issues, legal justification). NACKs without accompanying reasoning may be + disregarded; + - utACK means "I have not tested the code, but I have reviewed it and it looks OK, I agree it can be merged"; + - Concept ACK means "I agree in the general principle of this pull request"; - Nit refers to trivial, often non-blocking issues. +Reviewers should include the commit hash which they reviewed in their comments. + Project maintainers reserve the right to weigh the opinions of peer reviewers using common sense judgement and also may weight based on meritocracy: Those that have demonstrated a deeper commitment and understanding towards the project @@ -272,7 +228,7 @@ higher in terms of discussion and peer review requirements, keeping in mind that mistakes could be very costly to the wider community. This includes refactoring of consensus critical code. -Where a patch set proposes to change the Bitcoin consensus, it must have been +Where a patch set proposes to change the Verium consensus, it must have been discussed extensively on the mailing list and IRC, be accompanied by a widely discussed BIP and have a generally widely perceived technical consensus of being a worthwhile change based on the judgement of the maintainers. @@ -312,12 +268,12 @@ about: Release Policy -------------- -The project leader is the release manager for each Bitcoin Core release. +The project leader is the release manager for each Verium Core release. Copyright --------- -By contributing to this repository, you agree to license your work under the -MIT license unless specified otherwise in `contrib/debian/copyright` or at -the top of the file itself. Any work contributed where you are not the original +By contributing to this repository, you agree to license your work under the +MIT license unless specified otherwise in `contrib/debian/copyright` or at +the top of the file itself. Any work contributed where you are not the original author must contain its license header with the original author(s) and source. diff --git a/INSTALL.md b/INSTALL.md index 520a47d960..4380619f0a 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,5 +1,5 @@ -Building Bitcoin +Building Verium ================ See doc/build-*.md for instructions on building the various -elements of the Bitcoin Core reference implementation of Bitcoin. +elements of the Verium Core reference implementation of Verium. diff --git a/Makefile.am b/Makefile.am index 8b1e2a6b5b..9c928a0776 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,7 +26,7 @@ BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win$(WINDOWS_BITS)-setup$(EX empty := space := $(empty) $(empty) -OSX_APP=Bitcoin-Qt.app +OSX_APP=Verium-Qt.app OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME)) OSX_DMG = $(OSX_VOLNAME).dmg OSX_BACKGROUND_SVG=background.svg @@ -35,14 +35,14 @@ OSX_BACKGROUND_IMAGE_DPIS=36 72 OSX_DSSTORE_GEN=$(top_srcdir)/contrib/macdeploy/custom_dsstore.py OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus OSX_FANCY_PLIST=$(top_srcdir)/contrib/macdeploy/fancy.plist -OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns +OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/verium.icns OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed OSX_QT_TRANSLATIONS = da,de,es,hu,ru,uk,zh_CN,zh_TW DIST_DOCS = $(wildcard doc/*.md) $(wildcard doc/release-notes/*.md) -DIST_CONTRIB = $(top_srcdir)/contrib/bitcoin-cli.bash-completion \ - $(top_srcdir)/contrib/bitcoin-tx.bash-completion \ - $(top_srcdir)/contrib/bitcoind.bash-completion \ +DIST_CONTRIB = $(top_srcdir)/contrib/verium-cli.bash-completion \ + $(top_srcdir)/contrib/verium-tx.bash-completion \ + $(top_srcdir)/contrib/veriumd.bash-completion \ $(top_srcdir)/contrib/debian/copyright \ $(top_srcdir)/contrib/init \ $(top_srcdir)/contrib/install_db4.sh @@ -53,7 +53,7 @@ DIST_SHARE = \ BIN_CHECKS=$(top_srcdir)/contrib/devtools/symbol-check.py \ $(top_srcdir)/contrib/devtools/security-check.py -WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/bitcoin.ico \ +WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/verium.ico \ $(top_srcdir)/share/pixmaps/nsis-header.bmp \ $(top_srcdir)/share/pixmaps/nsis-wizard.bmp \ $(top_srcdir)/doc/README_windows.txt @@ -65,9 +65,9 @@ OSX_PACKAGING = $(OSX_DEPLOY_SCRIPT) $(OSX_FANCY_PLIST) $(OSX_INSTALLER_ICONS) \ $(top_srcdir)/contrib/macdeploy/detached-sig-create.sh COVERAGE_INFO = baseline.info \ - test_bitcoin_filtered.info total_coverage.info \ + test_verium_filtered.info total_coverage.info \ baseline_filtered.info functional_test.info functional_test_filtered.info \ - test_bitcoin_coverage.info test_bitcoin.info + test_verium_coverage.info test_verium.info dist-hook: -$(GIT) archive --format=tar HEAD -- src/clientversion.cpp | $(AMTAR) -C $(top_distdir) -xf - @@ -95,11 +95,11 @@ $(OSX_APP)/Contents/Info.plist: $(OSX_PLIST) $(MKDIR_P) $(@D) $(INSTALL_DATA) $< $@ -$(OSX_APP)/Contents/Resources/bitcoin.icns: $(OSX_INSTALLER_ICONS) +$(OSX_APP)/Contents/Resources/verium.icns: $(OSX_INSTALLER_ICONS) $(MKDIR_P) $(@D) $(INSTALL_DATA) $< $@ -$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: all-recursive +$(OSX_APP)/Contents/MacOS/Verium-Qt: all-recursive $(MKDIR_P) $(@D) STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $(BITCOIN_QT_BIN) $@ @@ -108,8 +108,8 @@ $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings: echo '{ CFBundleDisplayName = "$(PACKAGE_NAME)"; CFBundleName = "$(PACKAGE_NAME)"; }' > $@ OSX_APP_BUILT=$(OSX_APP)/Contents/PkgInfo $(OSX_APP)/Contents/Resources/empty.lproj \ - $(OSX_APP)/Contents/Resources/bitcoin.icns $(OSX_APP)/Contents/Info.plist \ - $(OSX_APP)/Contents/MacOS/Bitcoin-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings + $(OSX_APP)/Contents/Resources/verium.icns $(OSX_APP)/Contents/Info.plist \ + $(OSX_APP)/Contents/MacOS/Verium-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings osx_volname: echo $(OSX_VOLNAME) >$@ @@ -134,7 +134,7 @@ $(APP_DIST_DIR)/Applications: @rm -f $@ @cd $(@D); $(LN_S) /Applications $(@F) -$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt +$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Verium-Qt $(OSX_DMG): $(APP_DIST_EXTRAS) $(GENISOIMAGE) -no-cache-inodes -D -l -probe -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -apple -o $@ dist @@ -149,7 +149,7 @@ $(APP_DIST_DIR)/.background/$(OSX_BACKGROUND_IMAGE): $(OSX_BACKGROUND_IMAGE_DPIF $(APP_DIST_DIR)/.DS_Store: $(OSX_DSSTORE_GEN) $(PYTHON) $< "$@" "$(OSX_VOLNAME)" -$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING) +$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Verium-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING) INSTALLNAMETOOL=$(INSTALLNAMETOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) -translations-dir=$(QT_TRANSLATION_DIR) -add-qt-tr $(OSX_QT_TRANSLATIONS) -verbose 2 deploydir: $(APP_DIST_EXTRAS) @@ -188,16 +188,16 @@ baseline_filtered.info: baseline.info $(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@ $(LCOV) -a $@ $(LCOV_OPTS) -o $@ -test_bitcoin.info: baseline_filtered.info +test_verium.info: baseline_filtered.info $(MAKE) -C src/ check - $(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src -t test_bitcoin -o $@ + $(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src -t test_verium -o $@ $(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src -test_bitcoin_filtered.info: test_bitcoin.info +test_verium_filtered.info: test_verium.info $(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@ $(LCOV) -a $@ $(LCOV_OPTS) -o $@ -functional_test.info: test_bitcoin_filtered.info +functional_test.info: test_verium_filtered.info @TIMEOUT=15 test/functional/test_runner.py $(EXTENDED_FUNCTIONAL_TESTS) $(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src --t functional-tests -o $@ $(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src @@ -206,13 +206,13 @@ functional_test_filtered.info: functional_test.info $(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@ $(LCOV) -a $@ $(LCOV_OPTS) -o $@ -test_bitcoin_coverage.info: baseline_filtered.info test_bitcoin_filtered.info - $(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_bitcoin_filtered.info -o $@ +test_verium_coverage.info: baseline_filtered.info test_verium_filtered.info + $(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_verium_filtered.info -o $@ -total_coverage.info: test_bitcoin_filtered.info functional_test_filtered.info - $(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_bitcoin_filtered.info -a functional_test_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt +total_coverage.info: test_verium_filtered.info functional_test_filtered.info + $(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_verium_filtered.info -a functional_test_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt -test_bitcoin.coverage/.dirstamp: test_bitcoin_coverage.info +test_verium.coverage/.dirstamp: test_verium_coverage.info $(GENHTML) -s $(LCOV_OPTS) $< -o $(@D) @touch $@ @@ -220,7 +220,7 @@ total.coverage/.dirstamp: total_coverage.info $(GENHTML) -s $(LCOV_OPTS) $< -o $(@D) @touch $@ -cov: test_bitcoin.coverage/.dirstamp total.coverage/.dirstamp +cov: test_verium.coverage/.dirstamp total.coverage/.dirstamp endif @@ -308,7 +308,7 @@ clean-docs: rm -rf doc/doxygen clean-local: clean-docs - rm -rf coverage_percent.txt test_bitcoin.coverage/ total.coverage/ test/tmp/ cache/ $(OSX_APP) + rm -rf coverage_percent.txt test_verium.coverage/ total.coverage/ test/tmp/ cache/ $(OSX_APP) rm -rf test/functional/__pycache__ test/functional/test_framework/__pycache__ test/cache share/rpcauth/__pycache__ rm -rf osx_volname dist/ dpi36.background.tiff dpi72.background.tiff diff --git a/README.md b/README.md index 28ee95ee7c..f6dacd3e36 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,42 @@ -Bitcoin Core integration/staging tree +Verium Core integration/staging tree ===================================== -https://bitcoincore.org +[![Build Status](https://travis-ci.org/VeriumReserve/verium.svg?branch=0.16)](https://travis-ci.org/VeriumReserve/verium) +Ubuntu Server Xenial 18.04 -What is Bitcoin? +https://www.vericonomy.com + +What is Verium? ---------------- -Bitcoin is an experimental digital currency that enables instant payments to -anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate +Verium is an experimental digital currency that enables instant payments to +anyone, anywhere in the world. Verium uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried -out collectively by the network. Bitcoin Core is the name of open source +out collectively by the network. Verium Core is the name of open source software which enables the use of this currency. For more information, as well as an immediately useable, binary version of -the Bitcoin Core software, see https://bitcoincore.org/en/download/, or read the -[original whitepaper](https://bitcoincore.org/bitcoin.pdf). - +the Verium Core software, see https://www.vericonomy.com. License ------- -Bitcoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more +Verium Core is released under the terms of the MIT license. See [COPYING](COPYING) for more information or see https://opensource.org/licenses/MIT. Development Process ------------------- The `master` branch is regularly built and tested, but is not guaranteed to be -completely stable. [Tags](https://github.com/bitcoin/bitcoin/tags) are created -regularly to indicate new official, stable release versions of Bitcoin Core. +completely stable. [Tags](https://github.com/veriumreserve/verium/tags) are created +regularly to indicate new official, stable release versions of Verium Core. + +The contribution workflow is described in [CONTRIBUTING.md](CONTRIBUTING.md). + +The developer [mailing list](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev) +should be used to discuss complicated or controversial changes before working +on a patch set. -The contribution workflow is described in [CONTRIBUTING.md](CONTRIBUTING.md) -and useful hints for developers can be found in [doc/developer-notes.md](doc/developer-notes.md). +Developer IRC can be found on Freenode at #verium-core-dev. Testing ------- @@ -51,7 +57,7 @@ There are also [regression and integration tests](/test), written in Python, that are run automatically on the build server. These tests can be run (if the [test dependencies](/test) are installed) with: `test/functional/test_runner.py` -The Travis CI system makes sure that every pull request is built for Windows, Linux, and macOS, and that unit/sanity tests are run automatically. +The Travis CI system makes sure that every pull request is built for Windows, Linux, and OS X, and that unit/sanity tests are run automatically. ### Manual Quality Assurance (QA) Testing @@ -64,7 +70,7 @@ Translations ------------ Changes to translations as well as new translations can be submitted to -[Bitcoin Core's Transifex page](https://www.transifex.com/bitcoin/bitcoin/). +[Verium Core's Transifex page](https://www.transifex.com/projects/p/bitcoin/). Translations are periodically pulled from Transifex and merged into the git repository. See the [translation process](doc/translation_process.md) for details on how this works. diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 7ed96c7cea..0000000000 --- a/SECURITY.md +++ /dev/null @@ -1,20 +0,0 @@ -# Security Policy - -## Supported Versions - -See our website for versions of Bitcoin Core that are currently supported with -security updates: https://bitcoincore.org/en/lifecycle/#schedule - -## Reporting a Vulnerability - -To report security issues send an email to security@bitcoincore.org (not for support). - -The following keys may be used to communicate sensitive information to developers: - -| Name | Fingerprint | -|------|-------------| -| Wladimir van der Laan | 71A3 B167 3540 5025 D447 E8F2 7481 0B01 2346 C9A6 | -| Jonas Schnelli | 32EE 5C4C 3FA1 5CCA DB46 ABE5 29D4 BCB6 416F 53EC | -| Pieter Wuille | 133E AC17 9436 F14A 5CF1 B794 860F EB80 4E66 9320 | - -You can import a key by running the following command with that individual’s fingerprint: `gpg --recv-keys ""` Ensure that you put quotes around fingerprints containing spaces. diff --git a/ci/README.md b/ci/README.md index 16c481158f..d2ea255b4b 100644 --- a/ci/README.md +++ b/ci/README.md @@ -8,11 +8,21 @@ and numbered according to which stage and lifecycle step it belongs to. ### Running a stage locally +Be aware that the tests will be built and run in-place, so please run at your own risk. +If the repository is not a fresh git clone, you might have to clean files from previous builds or test runs first. + +The ci needs to perform various sysadmin tasks such as installing packages or writing to the user's home directory. +While most of the actions are done inside a docker container, this is not possible for all. Thus, cache directories, +such as the depends cache, previous release binaries, or ccache, are mounted as read-write into the docker container. While it should be fine to run +the ci system locally on you development box, the ci scripts can generally be assumed to have received less review and +testing compared to other parts of the codebase. If you want to keep the work tree clean, you might want to run the ci +system in a virtual machine with a Linux operating system of your choice. + To allow for a wide range of tested environments, but also ensure reproducibility to some extent, the test stage requires `docker` to be installed. To install all requirements on Ubuntu, run ``` -sudo apt install docker.io ccache bash git +sudo apt install docker.io bash ``` To run the default test stage, @@ -26,6 +36,3 @@ To run the test stage with a specific configuration, ``` FILE_ENV="./ci/test/00_setup_env_arm.sh" ./ci/test_run_all.sh ``` - -Be aware that the tests will be build and run in-place, so please run at your own risk. -If the repository is not a fresh git clone, you might have to clean files from previous builds or test runs first. diff --git a/ci/extended_lint/04_install.sh b/ci/extended_lint/04_install.sh deleted file mode 100755 index 123d874a84..0000000000 --- a/ci/extended_lint/04_install.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2019 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C - -CPPCHECK_VERSION=1.86 -curl -s https://codeload.github.com/danmar/cppcheck/tar.gz/${CPPCHECK_VERSION} | tar -zxf - --directory /tmp/ -(cd /tmp/cppcheck-${CPPCHECK_VERSION}/ && make CFGDIR=/tmp/cppcheck-${CPPCHECK_VERSION}/cfg/ > /dev/null) -export PATH="$PATH:/tmp/cppcheck-${CPPCHECK_VERSION}/" diff --git a/ci/extended_lint/06_script.sh b/ci/extended_lint/06_script.sh deleted file mode 100755 index e8228c9c4d..0000000000 --- a/ci/extended_lint/06_script.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2019 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C - -test/lint/extended-lint-all.sh diff --git a/ci/lint/04_install.sh b/ci/lint/04_install.sh index 12c3bfce45..085f98a7ef 100755 --- a/ci/lint/04_install.sh +++ b/ci/lint/04_install.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Copyright (c) 2018 The Bitcoin Core developers +# Copyright (c) 2018-2019 The Verium Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -8,6 +8,7 @@ export LC_ALL=C travis_retry pip3 install codespell==1.15.0 travis_retry pip3 install flake8==3.7.8 +travis_retry pip3 install yq SHELLCHECK_VERSION=v0.6.0 curl -s "https://storage.googleapis.com/shellcheck/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | tar --xz -xf - --directory /tmp/ diff --git a/ci/lint/05_before_script.sh b/ci/lint/05_before_script.sh index 28bcbb47f7..fa3d155bbd 100755 --- a/ci/lint/05_before_script.sh +++ b/ci/lint/05_before_script.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Copyright (c) 2018 The Bitcoin Core developers +# Copyright (c) 2018-2019 The Verium Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/ci/lint/06_script.sh b/ci/lint/06_script.sh index c7dea599dc..47a4a73c13 100755 --- a/ci/lint/06_script.sh +++ b/ci/lint/06_script.sh @@ -1,25 +1,7 @@ #!/usr/bin/env bash # -# Copyright (c) 2018 The Bitcoin Core developers +# Copyright (c) 2018-2019 The Verium Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. export LC_ALL=C - -if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then - test/lint/commit-script-check.sh $TRAVIS_COMMIT_RANGE -fi - -test/lint/git-subtree-check.sh src/crypto/ctaes -test/lint/git-subtree-check.sh src/secp256k1 -test/lint/git-subtree-check.sh src/univalue -test/lint/git-subtree-check.sh src/leveldb -test/lint/check-doc.py -test/lint/check-rpc-mappings.py . -test/lint/lint-all.sh - -if [ "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" ] && [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then - git log --merges --before="2 days ago" -1 --format='%H' > ./contrib/verify-commits/trusted-sha512-root-commit - travis_retry gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $(&2 } -# Paramters: max_tries min_sleep max_sleep constant_sleep fail_script EXECUTION_COMMAND +# Parameters: max_tries min_sleep max_sleep constant_sleep fail_script EXECUTION_COMMAND retry() { local max_tries="$1"; shift @@ -83,8 +83,8 @@ Usage: $retry [options] -- execute command -v, --verbose Verbose output -t, --tries=# Set max retries: Default 10 -s, --sleep=secs Constant sleep amount (seconds) - -m, --min=secs Exponenetial Backoff: minimum sleep amount (seconds): Default 0.3 - -x, --max=secs Exponenetial Backoff: maximum sleep amount (seconds): Default 60 + -m, --min=secs Exponential Backoff: minimum sleep amount (seconds): Default 0.3 + -x, --max=secs Exponential Backoff: maximum sleep amount (seconds): Default 60 -f, --fail="script +cmds" Fail Script: run in case of final failure EOF } diff --git a/ci/test/00_setup_env.sh b/ci/test/00_setup_env.sh index 94598835ac..f5c9f0402d 100755 --- a/ci/test/00_setup_env.sh +++ b/ci/test/00_setup_env.sh @@ -6,6 +6,12 @@ export LC_ALL=C.UTF-8 +# The root dir. +# The ci system copies this folder. +# This is where the build is done (depends and dist). +BASE_ROOT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../ >/dev/null 2>&1 && pwd ) +export BASE_ROOT_DIR + echo "Setting specific values in env" if [ -n "${FILE_ENV}" ]; then set -o errexit; @@ -13,34 +19,42 @@ if [ -n "${FILE_ENV}" ]; then source "${FILE_ENV}" fi -BASE_ROOT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../ >/dev/null 2>&1 && pwd ) -export BASE_ROOT_DIR - echo "Fallback to default values in env (if not yet set)" # The number of parallel jobs to pass down to make and test_runner.py export MAKEJOBS=${MAKEJOBS:--j4} # A folder for the ci system to put temporary files (ccache, datadirs for tests, ...) +# This folder only exists on the ci host. export BASE_SCRATCH_DIR=${BASE_SCRATCH_DIR:-$BASE_ROOT_DIR/ci/scratch/} -export HOST=${HOST:-x86_64-unknown-linux-gnu} -export RUN_UNIT_TESTS=${RUN_UNIT_TESTS:-true} -export RUN_FUNCTIONAL_TESTS=${RUN_FUNCTIONAL_TESTS:-true} +# What host to compile for. See also ./depends/README.md +# Tests that need cross-compilation export the appropriate HOST. +# Tests that run natively guess the host +export HOST=${HOST:-$("$BASE_ROOT_DIR/depends/config.guess")} +# Whether to prefer BusyBox over GNU utilities +export USE_BUSY_BOX=${USE_BUSY_BOX:-false} +export RUN_UNIT_TESTS=${RUN_UNIT_TESTS:-false} +export RUN_FUNCTIONAL_TESTS=${RUN_FUNCTIONAL_TESTS:-false} export RUN_FUZZ_TESTS=${RUN_FUZZ_TESTS:-false} +export CONTAINER_NAME=${CONTAINER_NAME:-ci_unnamed} export DOCKER_NAME_TAG=${DOCKER_NAME_TAG:-ubuntu:18.04} # Randomize test order. # See https://www.boost.org/doc/libs/1_71_0/libs/test/doc/html/boost_test/utf_reference/rt_param_reference/random.html export BOOST_TEST_RANDOM=${BOOST_TEST_RANDOM:-1} -export CCACHE_SIZE=${CCACHE_SIZE:-100M} +export CCACHE_SIZE=${CCACHE_SIZE:-900M} export CCACHE_TEMPDIR=${CCACHE_TEMPDIR:-/tmp/.ccache-temp} export CCACHE_COMPRESS=${CCACHE_COMPRESS:-1} +# The cache dir. +# This folder exists on the ci host and ci guest. Changes are propagated back and forth. export CCACHE_DIR=${CCACHE_DIR:-$BASE_SCRATCH_DIR/.ccache} -# Folder where the build is done (depends and dist). Can not be changed and is equal to the root of the git repo -export BASE_BUILD_DIR=${BASE_BUILD_DIR:-$BASE_ROOT_DIR} -# Folder where the build is done (bin and lib). Can not be changed. -export BASE_OUTDIR=${BASE_OUTDIR:-$BASE_BUILD_DIR/out/$HOST} +# The depends dir. +# This folder exists on the ci host and ci guest. Changes are propagated back and forth. +export DEPENDS_DIR=${DEPENDS_DIR:-$BASE_ROOT_DIR/depends} +# Folder where the build is done (bin and lib). +export BASE_OUTDIR=${BASE_OUTDIR:-$BASE_SCRATCH_DIR/out/$HOST} export SDK_URL=${SDK_URL:-https://bitcoincore.org/depends-sources/sdks} export WINEDEBUG=${WINEDEBUG:-fixme-all} -export DOCKER_PACKAGES=${DOCKER_PACKAGES:-build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3} +export DOCKER_PACKAGES=${DOCKER_PACKAGES:-build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps} export GOAL=${GOAL:-install} -export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_BUILD_DIR}/qa-assets} +export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_SCRATCH_DIR}/qa-assets} export PATH=${BASE_ROOT_DIR}/ci/retry:$PATH export CI_RETRY_EXE=${CI_RETRY_EXE:retry} +export INSTALL_DB4=${INSTALL_DB4:-false} \ No newline at end of file diff --git a/ci/test/00_setup_env_amd64_asan.sh b/ci/test/00_setup_env_amd64_asan.sh deleted file mode 100644 index 46b870e145..0000000000 --- a/ci/test/00_setup_env_amd64_asan.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2019 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C.UTF-8 - -export HOST=x86_64-unknown-linux-gnu -export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev" -export NO_DEPENDS=1 -export GOAL="install" -export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=address,integer,undefined CC=clang CXX=clang++" diff --git a/ci/test/00_setup_env_amd64_fuzz.sh b/ci/test/00_setup_env_amd64_fuzz.sh deleted file mode 100644 index 7bdfc2c320..0000000000 --- a/ci/test/00_setup_env_amd64_fuzz.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2019 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C.UTF-8 - -export HOST=x86_64-unknown-linux-gnu -export PACKAGES="clang llvm python3 libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev" -export NO_DEPENDS=1 -export RUN_UNIT_TESTS=false -export RUN_FUNCTIONAL_TESTS=false -export RUN_FUZZ_TESTS=true -export GOAL="install" -export BITCOIN_CONFIG="--enable-fuzz --with-sanitizers=fuzzer,address,undefined CC=clang CXX=clang++" diff --git a/ci/test/00_setup_env_amd64_trusty.sh b/ci/test/00_setup_env_amd64_trusty.sh deleted file mode 100644 index 51e98788c7..0000000000 --- a/ci/test/00_setup_env_amd64_trusty.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2019 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C.UTF-8 - -export HOST=x86_64-unknown-linux-gnu -export DOCKER_NAME_TAG=ubuntu:14.04 -export PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libicu-dev libpng-dev libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.1++-dev libzmq3-dev libqrencode-dev" -export NO_DEPENDS=1 -export RUN_FUNCTIONAL_TESTS=false -export GOAL="install" -export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=no" diff --git a/ci/test/00_setup_env_amd64_tsan.sh b/ci/test/00_setup_env_amd64_tsan.sh deleted file mode 100644 index 82ac988c41..0000000000 --- a/ci/test/00_setup_env_amd64_tsan.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2019 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C.UTF-8 - -export HOST=x86_64-unknown-linux-gnu -export DOCKER_NAME_TAG=ubuntu:16.04 -export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev" -export NO_DEPENDS=1 -export GOAL="install" -export BITCOIN_CONFIG="--enable-zmq --disable-wallet --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=thread --disable-hardening --disable-asm CC=clang CXX=clang++" diff --git a/ci/test/00_setup_env_arm.sh b/ci/test/00_setup_env_arm.sh index ac7ace8c3b..22a527537e 100644 --- a/ci/test/00_setup_env_arm.sh +++ b/ci/test/00_setup_env_arm.sh @@ -7,10 +7,22 @@ export LC_ALL=C.UTF-8 export HOST=arm-linux-gnueabihf -export PACKAGES="python3 g++-arm-linux-gnueabihf" +# The host arch is unknown, so we run the tests through qemu. +# If the host is arm and wants to run the tests natively, it can set QEMU_USER_CMD to the empty string. +if [ -z ${QEMU_USER_CMD+x} ]; then export QEMU_USER_CMD="${QEMU_USER_CMD:-"qemu-arm -L /usr/arm-linux-gnueabihf/"}"; fi +export DPKG_ADD_ARCH="armhf" +export PACKAGES="python3-zmq g++-arm-linux-gnueabihf busybox libc6:armhf libstdc++6:armhf libfontconfig1:armhf libxcb1:armhf" +if [ -n "$QEMU_USER_CMD" ]; then + # Likely cross-compiling, so install the needed gcc and qemu-user + export PACKAGES="$PACKAGES qemu-user" +fi +export CONTAINER_NAME=ci_arm_linux +# Use debian to avoid 404 apt errors when cross compiling +export DOCKER_NAME_TAG="debian:buster" +export USE_BUSY_BOX=true export RUN_UNIT_TESTS=false export RUN_FUNCTIONAL_TESTS=false export GOAL="install" # -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1" # This could be removed once the ABI change warning does not show up by default -export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi" +export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi --enable-werror --with-gui=no" diff --git a/ci/test/00_setup_env_arm_host.sh b/ci/test/00_setup_env_arm_host.sh new file mode 100644 index 0000000000..40d729797d --- /dev/null +++ b/ci/test/00_setup_env_arm_host.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C.UTF-8 + +export HOST=arm-linux-gnueabihf +# The host arch is unknown, so we run the tests through qemu. +# If the host is arm and wants to run the tests natively, it can set QEMU_USER_CMD to the empty string. +if [ -z ${QEMU_USER_CMD+x} ]; then export QEMU_USER_CMD="${QEMU_USER_CMD:-"qemu-arm -L /usr/arm-linux-gnueabihf/"}"; fi +export DPKG_ADD_ARCH="armhf" +export PACKAGES="python3-zmq libssl-dev libevent-dev bsdmainutils python3 libcurl4-openssl-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libminizip-dev zlib1g-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev" +if [ -n "$QEMU_USER_CMD" ]; then + # Likely cross-compiling, so install the needed gcc and qemu-user + export PACKAGES="$PACKAGES qemu-user" +fi +export CONTAINER_NAME=ci_arm_linux +# Use debian to avoid 404 apt errors when cross compiling +export DOCKER_NAME_TAG="debian:buster" +export USE_BUSY_BOX=false +export RUN_UNIT_TESTS=false +export RUN_FUNCTIONAL_TESTS=false +export GOAL="install" +export NO_DEPENDS=1 +export INSTALL_DB4="true" +# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1" +# This could be removed once the ABI change warning does not show up by default +export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi --enable-werror" diff --git a/ci/test/00_setup_env_i686.sh b/ci/test/00_setup_env_i686.sh deleted file mode 100644 index 63068dc95d..0000000000 --- a/ci/test/00_setup_env_i686.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2019 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C.UTF-8 - -export HOST=i686-pc-linux-gnu -export DEP_OPTS="PROTOBUF=1" -export PACKAGES="g++-multilib python3-zmq" -export GOAL="install" -export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-bip70 --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" -export CONFIG_SHELL="/bin/dash" diff --git a/ci/test/00_setup_env_i686_centos.sh b/ci/test/00_setup_env_i686_centos.sh new file mode 100644 index 0000000000..5688799f9e --- /dev/null +++ b/ci/test/00_setup_env_i686_centos.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2020 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C.UTF-8 + +export HOST=i686-pc-linux-gnu +export CONTAINER_NAME=ci_i686_centos_7 +export DOCKER_NAME_TAG=centos:7 +export DOCKER_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python36-zmq which patch lbzip2 dash" +export GOAL="install" +export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-reduce-exports" +export CONFIG_SHELL="/bin/dash" diff --git a/ci/test/00_setup_env_mac.sh b/ci/test/00_setup_env_mac.sh index f384ba9263..c56b2ab676 100644 --- a/ci/test/00_setup_env_mac.sh +++ b/ci/test/00_setup_env_mac.sh @@ -6,10 +6,11 @@ export LC_ALL=C.UTF-8 -export HOST=x86_64-apple-darwin14 +export CONTAINER_NAME=ci_macos_cross +export HOST=x86_64-apple-darwin16 export PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools" -export OSX_SDK=10.11 +export OSX_SDK=10.14 export RUN_UNIT_TESTS=false export RUN_FUNCTIONAL_TESTS=false export GOAL="deploy" -export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --enable-werror" +export BITCOIN_CONFIG="--enable-reduce-exports --enable-werror" diff --git a/ci/test/00_setup_env_mac_host.sh b/ci/test/00_setup_env_mac_host.sh new file mode 100644 index 0000000000..7c78afcc0f --- /dev/null +++ b/ci/test/00_setup_env_mac_host.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C.UTF-8 + +export HOST=x86_64-apple-darwin16 +export PIP_PACKAGES="zmq" +export RUN_UNIT_TESTS=false +export RUN_FUNCTIONAL_TESTS=false +export GOAL="install" +export BITCOIN_CONFIG="--with-gui=qt5 --enable-reduce-exports --enable-werror" +# Run without depends +export NO_DEPENDS=1 +export OSX_SDK="" diff --git a/ci/test/00_setup_env_amd64_nowallet.sh b/ci/test/00_setup_env_native.sh similarity index 80% rename from ci/test/00_setup_env_amd64_nowallet.sh rename to ci/test/00_setup_env_native.sh index d5a2ba3111..5b040b9c3a 100644 --- a/ci/test/00_setup_env_amd64_nowallet.sh +++ b/ci/test/00_setup_env_native.sh @@ -6,8 +6,8 @@ export LC_ALL=C.UTF-8 -export HOST=x86_64-unknown-linux-gnu +export CONTAINER_NAME=ci_native export PACKAGES="python3-zmq" -export DEP_OPTS="NO_WALLET=1" export GOAL="install" -export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports" +export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports --with-gui=no" +export INSTALL_DB4="true" \ No newline at end of file diff --git a/ci/test/00_setup_env_amd64_qt5.sh b/ci/test/00_setup_env_native_qt5.sh similarity index 52% rename from ci/test/00_setup_env_amd64_qt5.sh rename to ci/test/00_setup_env_native_qt5.sh index 55820ea835..eb796dc64a 100644 --- a/ci/test/00_setup_env_amd64_qt5.sh +++ b/ci/test/00_setup_env_native_qt5.sh @@ -6,9 +6,13 @@ export LC_ALL=C.UTF-8 -export HOST=x86_64-unknown-linux-gnu -export PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libdbus-1-dev libharfbuzz-dev" -export DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1" +export CONTAINER_NAME=ci_native_qt5 +export PACKAGES="python3-zmq libssl-dev libevent-dev bsdmainutils python3 libcurl4-openssl-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libminizip-dev zlib1g-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev" +export DEP_OPTS="" export TEST_RUNNER_EXTRA="--coverage --extended --exclude feature_dbcrash" # Run extended tests so that coverage does not fail, but exclude the very slow dbcrash +export RUN_UNIT_TESTS_SEQUENTIAL="false" +export RUN_UNIT_TESTS="false" export GOAL="install" +export INSTALL_DB4="true" +export NO_DEPENDS=1 export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --enable-debug CFLAGS=\"-g0 -O2 -funsigned-char\" CXXFLAGS=\"-g0 -O2 -funsigned-char\"" diff --git a/ci/test/00_setup_env_win64.sh b/ci/test/00_setup_env_win64.sh index 1e04c4287a..a34933731c 100644 --- a/ci/test/00_setup_env_win64.sh +++ b/ci/test/00_setup_env_win64.sh @@ -6,6 +6,7 @@ export LC_ALL=C.UTF-8 +export CONTAINER_NAME=ci_win64 export HOST=x86_64-w64-mingw32 export PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64" export RUN_FUNCTIONAL_TESTS=false diff --git a/ci/test/03_before_install.sh b/ci/test/03_before_install.sh index 5086114ba1..e939b9eeeb 100755 --- a/ci/test/03_before_install.sh +++ b/ci/test/03_before_install.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Copyright (c) 2018 The Bitcoin Core developers +# Copyright (c) 2018-2019 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/ci/test/04_install.sh b/ci/test/04_install.sh index 54d7a9b814..0c526ef3b7 100755 --- a/ci/test/04_install.sh +++ b/ci/test/04_install.sh @@ -1,50 +1,107 @@ #!/usr/bin/env bash # -# Copyright (c) 2018 The Bitcoin Core developers +# Copyright (c) 2018-2020 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. export LC_ALL=C.UTF-8 -mkdir -p "${BASE_SCRATCH_DIR}" -ccache echo "Creating ccache dir if it didn't already exist" +if [[ $DOCKER_NAME_TAG == centos* ]]; then + export LC_ALL=en_US.utf8 +fi +if [[ $QEMU_USER_CMD == qemu-s390* ]]; then + export LC_ALL=C +fi -if [ ! -d ${DIR_QA_ASSETS} ]; then - git clone https://github.com/bitcoin-core/qa-assets ${DIR_QA_ASSETS} +if [ "$TRAVIS_OS_NAME" == "osx" ]; then + export PATH="/usr/local/opt/ccache/libexec:$PATH" + ${CI_RETRY_EXE} pip3 install $PIP_PACKAGES fi -export DIR_FUZZ_IN=${DIR_QA_ASSETS}/fuzz_seed_corpus/ -mkdir -p "${BASE_BUILD_DIR}/sanitizer-output/" -export ASAN_OPTIONS="" -export LSAN_OPTIONS="suppressions=${BASE_BUILD_DIR}/test/sanitizer_suppressions/lsan" -export TSAN_OPTIONS="suppressions=${BASE_BUILD_DIR}/test/sanitizer_suppressions/tsan:log_path=${BASE_BUILD_DIR}/sanitizer-output/tsan" -export UBSAN_OPTIONS="suppressions=${BASE_BUILD_DIR}/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1" -env | grep -E '^(BITCOIN_CONFIG|CCACHE_|WINEDEBUG|LC_ALL|BOOST_TEST_RANDOM|CONFIG_SHELL|(ASAN|LSAN|TSAN|UBSAN)_OPTIONS)' | tee /tmp/env +mkdir -p "${BASE_SCRATCH_DIR}" +mkdir -p "${CCACHE_DIR}" + +export ASAN_OPTIONS="detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1" +export LSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/lsan" +export TSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/tsan:log_path=${BASE_SCRATCH_DIR}/sanitizer-output/tsan" +export UBSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1:report_error_type=1" +env | grep -E '^(BITCOIN_CONFIG|BASE_|QEMU_|CCACHE_|WINEDEBUG|LC_ALL|BOOST_TEST_RANDOM|CONFIG_SHELL|(ASAN|LSAN|TSAN|UBSAN)_OPTIONS)' | tee /tmp/env if [[ $HOST = *-mingw32 ]]; then DOCKER_ADMIN="--cap-add SYS_ADMIN" elif [[ $BITCOIN_CONFIG = *--with-sanitizers=*address* ]]; then # If ran with (ASan + LSan), Docker needs access to ptrace (https://github.com/google/sanitizers/issues/764) DOCKER_ADMIN="--cap-add SYS_PTRACE" fi -if [ -z "$RUN_CI_ON_HOST" ]; then +export P_CI_DIR="$PWD" + +if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then echo "Creating $DOCKER_NAME_TAG container to run in" ${CI_RETRY_EXE} docker pull "$DOCKER_NAME_TAG" - DOCKER_ID=$(docker run $DOCKER_ADMIN -idt --mount type=bind,src=$BASE_BUILD_DIR,dst=$BASE_BUILD_DIR --mount type=bind,src=$CCACHE_DIR,dst=$CCACHE_DIR -w $BASE_BUILD_DIR --env-file /tmp/env $DOCKER_NAME_TAG) + DOCKER_ID=$(docker run $DOCKER_ADMIN -idt \ + --mount type=bind,src=$BASE_ROOT_DIR,dst=/ro_base,readonly \ + --mount type=bind,src=$CCACHE_DIR,dst=$CCACHE_DIR \ + --mount type=bind,src=$DEPENDS_DIR,dst=$DEPENDS_DIR \ + -w $BASE_ROOT_DIR \ + --env-file /tmp/env \ + --name $CONTAINER_NAME \ + $DOCKER_NAME_TAG) DOCKER_EXEC () { - docker exec $DOCKER_ID bash -c "cd $PWD && $*" + docker exec $DOCKER_ID bash -c "export PATH=$BASE_SCRATCH_DIR/bins/:\$PATH && cd $P_CI_DIR && $*" } else echo "Running on host system without docker wrapper" DOCKER_EXEC () { - bash -c "cd $PWD && $*" + bash -c "export PATH=$BASE_SCRATCH_DIR/bins/:\$PATH && cd $P_CI_DIR && $*" } fi -DOCKER_EXEC free -m -h -DOCKER_EXEC echo "Number of CPUs \(nproc\): $(nproc)" +if [ -n "$DPKG_ADD_ARCH" ]; then + DOCKER_EXEC dpkg --add-architecture "$DPKG_ADD_ARCH" +fi -${CI_RETRY_EXE} DOCKER_EXEC apt-get update -${CI_RETRY_EXE} DOCKER_EXEC apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES $DOCKER_PACKAGES +if [[ $DOCKER_NAME_TAG == centos* ]]; then + ${CI_RETRY_EXE} DOCKER_EXEC yum -y install epel-release + ${CI_RETRY_EXE} DOCKER_EXEC yum -y install $DOCKER_PACKAGES $PACKAGES +elif [ "$CI_USE_APT_INSTALL" != "no" ]; then + ${CI_RETRY_EXE} DOCKER_EXEC apt-get update + ${CI_RETRY_EXE} DOCKER_EXEC apt-get install --no-install-recommends --no-upgrade -y $PACKAGES $DOCKER_PACKAGES +fi +if [ "$TRAVIS_OS_NAME" == "osx" ]; then + top -l 1 -s 0 | awk ' /PhysMem/ {print}' + echo "Number of CPUs: $(sysctl -n hw.logicalcpu)" +else + DOCKER_EXEC free -m -h + DOCKER_EXEC echo "Number of CPUs \(nproc\):" \$\(nproc\) + DOCKER_EXEC echo $(lscpu | grep Endian) + DOCKER_EXEC echo "Free disk space:" + DOCKER_EXEC df -h +fi + +if [ ! -d ${DIR_QA_ASSETS} ]; then + if [ "$RUN_FUZZ_TESTS" = "true" ]; then + DOCKER_EXEC git clone https://github.com/bitcoin-core/qa-assets ${DIR_QA_ASSETS} + fi +fi +export DIR_FUZZ_IN=${DIR_QA_ASSETS}/fuzz_seed_corpus/ + +DOCKER_EXEC mkdir -p "${BASE_SCRATCH_DIR}/sanitizer-output/" + +if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then + echo "Create $BASE_ROOT_DIR" + DOCKER_EXEC rsync -a /ro_base/ $BASE_ROOT_DIR +fi + +if [ "$USE_BUSY_BOX" = "true" ]; then + echo "Setup to use BusyBox utils" + DOCKER_EXEC mkdir -p $BASE_SCRATCH_DIR/bins/ + # tar excluded for now because it requires passing in the exact archive type in ./depends (fixed in later BusyBox version) + # find excluded for now because it does not recognize the -delete option in ./depends (fixed in later BusyBox version) + # ar excluded for now because it does not recognize the -q option in ./depends (unknown if fixed) + # shellcheck disable=SC1010 + DOCKER_EXEC for util in \$\(busybox --list \| grep -v "^ar$" \| grep -v "^tar$" \| grep -v "^find$"\)\; do ln -s \$\(command -v busybox\) $BASE_SCRATCH_DIR/bins/\$util\; done + # Print BusyBox version + DOCKER_EXEC patch --help +fi diff --git a/ci/test/05_before_script.sh b/ci/test/05_before_script.sh index 516d3fc042..835f80a32c 100755 --- a/ci/test/05_before_script.sh +++ b/ci/test/05_before_script.sh @@ -1,24 +1,37 @@ #!/usr/bin/env bash # -# Copyright (c) 2018 The Bitcoin Core developers +# Copyright (c) 2018-2019 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. export LC_ALL=C.UTF-8 -DOCKER_EXEC echo \> \$HOME/.bitcoin # Make sure default datadir does not exist and is never read by creating a dummy file +# Make sure default datadir does not exist and is never read by creating a dummy file +if [ "$TRAVIS_OS_NAME" == "osx" ]; then + echo > $HOME/Library/Application\ Support/Verium +else + DOCKER_EXEC echo \> \$HOME/.verium +fi -mkdir -p depends/SDKs depends/sdk-sources +DOCKER_EXEC mkdir -p ${DEPENDS_DIR}/SDKs ${DEPENDS_DIR}/sdk-sources -if [ -n "$OSX_SDK" ] && [ ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then - curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz +if [ -n "$OSX_SDK" ] && [ ! -f ${DEPENDS_DIR}/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then + curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o ${DEPENDS_DIR}/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz fi -if [ -n "$OSX_SDK" ] && [ -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then - tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz +if [ -n "$OSX_SDK" ] && [ -f ${DEPENDS_DIR}/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then + DOCKER_EXEC tar -C ${DEPENDS_DIR}/SDKs -xf ${DEPENDS_DIR}/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz fi if [[ $HOST = *-mingw32 ]]; then DOCKER_EXEC update-alternatives --set $HOST-g++ \$\(which $HOST-g++-posix\) fi if [ -z "$NO_DEPENDS" ]; then - DOCKER_EXEC CONFIG_SHELL= make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS -fi + if [[ $DOCKER_NAME_TAG == centos* ]]; then + # CentOS has problems building the depends if the config shell is not explicitly set + # (i.e. for libevent a Makefile with an empty SHELL variable is generated, leading to + # an error as the first command is executed) + SHELL_OPTS="CONFIG_SHELL=/bin/bash" + else + SHELL_OPTS="CONFIG_SHELL=" + fi + DOCKER_EXEC $SHELL_OPTS make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS +fi \ No newline at end of file diff --git a/ci/test/06_script_a.sh b/ci/test/06_script_a.sh index eb6ade7919..cb847e5f50 100755 --- a/ci/test/06_script_a.sh +++ b/ci/test/06_script_a.sh @@ -1,46 +1,53 @@ #!/usr/bin/env bash # -# Copyright (c) 2018 The Bitcoin Core developers +# Copyright (c) 2018-2019 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. export LC_ALL=C.UTF-8 -BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$BASE_BUILD_DIR/depends/$HOST --bindir=$BASE_OUTDIR/bin --libdir=$BASE_OUTDIR/lib" +BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$DEPENDS_DIR/$HOST --bindir=$BASE_OUTDIR/bin --libdir=$BASE_OUTDIR/lib" if [ -z "$NO_DEPENDS" ]; then DOCKER_EXEC ccache --max-size=$CCACHE_SIZE fi +if [ "$INSTALL_DB4" = "true" ]; then + BEGIN_FOLD db4 + DOCKER_EXEC ./contrib/install_db4.sh $DEPENDS_DIR > /dev/null # only error log + BITCOIN_CONFIG_ALL+=" BDB_LIBS=\"-L${DEPENDS_DIR}/db4/lib -ldb_cxx-4.8\" BDB_CFLAGS=\"-I${DEPENDS_DIR}/db4/include\"" + END_FOLD +fi + BEGIN_FOLD autogen if [ -n "$CONFIG_SHELL" ]; then - DOCKER_EXEC "$CONFIG_SHELL" -c "./autogen.sh" + DOCKER_EXEC "$CONFIG_SHELL" -c "./autogen.sh" else DOCKER_EXEC ./autogen.sh fi END_FOLD -mkdir -p build -cd build || (echo "could not enter build directory"; exit 1) +DOCKER_EXEC mkdir -p build +export P_CI_DIR="$P_CI_DIR/build" BEGIN_FOLD configure -DOCKER_EXEC ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false) +DOCKER_EXEC ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( (DOCKER_EXEC cat config.log) && false) END_FOLD BEGIN_FOLD distdir +# Create folder on host and docker, so that `cd` works +mkdir -p "verium-$HOST" DOCKER_EXEC make distdir VERSION=$HOST END_FOLD -cd "bitcoin-$HOST" || (echo "could not enter distdir bitcoin-$HOST"; exit 1) +export P_CI_DIR="$P_CI_DIR/verium-$HOST" BEGIN_FOLD configure -DOCKER_EXEC ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false) +DOCKER_EXEC ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( (DOCKER_EXEC cat config.log) && false) END_FOLD set -o errtrace -trap 'DOCKER_EXEC "cat ${BASE_BUILD_DIR}/sanitizer-output/* 2> /dev/null"' ERR +trap 'DOCKER_EXEC "cat ${BASE_SCRATCH_DIR}/sanitizer-output/* 2> /dev/null"' ERR BEGIN_FOLD build DOCKER_EXEC make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && DOCKER_EXEC make $GOAL V=1 ; false ) END_FOLD - -cd ${BASE_BUILD_DIR} || (echo "could not enter travis build dir $BASE_BUILD_DIR"; exit 1) diff --git a/ci/test/06_script_b.sh b/ci/test/06_script_b.sh index ea7beae85f..cde531ab81 100755 --- a/ci/test/06_script_b.sh +++ b/ci/test/06_script_b.sh @@ -1,29 +1,36 @@ #!/usr/bin/env bash # -# Copyright (c) 2018 The Bitcoin Core developers +# Copyright (c) 2018-2019 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. export LC_ALL=C.UTF-8 -cd "build/bitcoin-$HOST" || (echo "could not enter distdir build/bitcoin-$HOST"; exit 1) +if [ -n "$QEMU_USER_CMD" ]; then + BEGIN_FOLD wrap-qemu + # Generate all binaries, so that they can be wrapped + DOCKER_EXEC make $MAKEJOBS -C src/secp256k1 VERBOSE=1 + DOCKER_EXEC make $MAKEJOBS -C src/univalue VERBOSE=1 + DOCKER_EXEC "${BASE_ROOT_DIR}/ci/test/wrap-qemu.sh" + END_FOLD +fi + +bash -c "${CI_WAIT}" & # Print dots in case the tests take a long time to run if [ "$RUN_UNIT_TESTS" = "true" ]; then BEGIN_FOLD unit-tests - DOCKER_EXEC LD_LIBRARY_PATH=$BASE_BUILD_DIR/depends/$HOST/lib make $MAKEJOBS check VERBOSE=1 + DOCKER_EXEC LD_LIBRARY_PATH=$DEPENDS_DIR/$HOST/lib make $MAKEJOBS check VERBOSE=1 END_FOLD fi -if [ "$RUN_FUNCTIONAL_TESTS" = "true" ]; then - BEGIN_FOLD functional-tests - DOCKER_EXEC test/functional/test_runner.py --ci $MAKEJOBS --tmpdirprefix "${BASE_SCRATCH_DIR}/test_runner/" --ansi --combinedlogslen=4000 ${TEST_RUNNER_EXTRA} --quiet --failfast +if [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]; then + BEGIN_FOLD unit-tests-seq + DOCKER_EXEC LD_LIBRARY_PATH=$DEPENDS_DIR/$HOST/lib "${BASE_ROOT_DIR}/build/verium-*/src/test/test_bitcoin" --catch_system_errors=no -l test_suite END_FOLD fi -if [ "$RUN_FUZZ_TESTS" = "true" ]; then - BEGIN_FOLD fuzz-tests - DOCKER_EXEC test/fuzz/test_runner.py -l DEBUG ${DIR_FUZZ_IN} +if [ "$RUN_FUNCTIONAL_TESTS" = "true" ]; then + BEGIN_FOLD functional-tests + DOCKER_EXEC test/functional/test_runner.py --ci $MAKEJOBS --tmpdirprefix "${BASE_SCRATCH_DIR}/test_runner/" --ansi --combinedlogslen=4000 ${TEST_RUNNER_EXTRA} --quiet --failfast END_FOLD -fi - -cd ${BASE_BUILD_DIR} || (echo "could not enter travis build dir $BASE_BUILD_DIR"; exit 1) +fi \ No newline at end of file diff --git a/ci/test/wrap-qemu.sh b/ci/test/wrap-qemu.sh new file mode 100755 index 0000000000..f1d3088748 --- /dev/null +++ b/ci/test/wrap-qemu.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2018 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C.UTF-8 + +for b_name in {"${BASE_OUTDIR}/bin"/*,src/secp256k1/*tests,src/univalue/{no_nul,test_json,unitester,object}}; do + # shellcheck disable=SC2044 + for b in $(find "${BASE_ROOT_DIR}" -executable -type f -name $(basename $b_name)); do + echo "Wrap $b ..." + mv "$b" "${b}_orig" + echo '#!/usr/bin/env bash' > "$b" + echo "$QEMU_USER_CMD \"${b}_orig\" \"\$@\"" >> "$b" + chmod +x "$b" + done +done diff --git a/configure.ac b/configure.ac index 6c07cdfb16..06ec3d636e 100644 --- a/configure.ac +++ b/configure.ac @@ -6,21 +6,21 @@ define(_CLIENT_VERSION_REVISION, 1) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_IS_RELEASE, true) -define(_COPYRIGHT_YEAR, 2019) +define(_COPYRIGHT_YEAR, 2020) define(_COPYRIGHT_HOLDERS,[The %s developers]) -define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]]) -AC_INIT([Bitcoin Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_REVISION, m4_if(_CLIENT_VERSION_BUILD, [0], [], _CLIENT_VERSION_BUILD))m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/bitcoin/bitcoin/issues],[bitcoin],[https://bitcoincore.org/]) +define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Verium Core]]) +AC_INIT([Verium Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_REVISION, m4_if(_CLIENT_VERSION_BUILD, [0], [], _CLIENT_VERSION_BUILD))m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/VeriumReserve/verium/issues],[verium],[https://vericoin.info/]) AC_CONFIG_SRCDIR([src/validation.cpp]) AC_CONFIG_HEADERS([src/config/bitcoin-config.h]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([build-aux/m4]) AM_PROG_AS -BITCOIN_DAEMON_NAME=bitcoind -BITCOIN_GUI_NAME=bitcoin-qt -BITCOIN_CLI_NAME=bitcoin-cli -BITCOIN_TX_NAME=bitcoin-tx -BITCOIN_WALLET_TOOL_NAME=bitcoin-wallet +BITCOIN_DAEMON_NAME=veriumd +BITCOIN_GUI_NAME=verium-qt +BITCOIN_CLI_NAME=verium-cli +BITCOIN_TX_NAME=verium-tx +BITCOIN_WALLET_TOOL_NAME=verium-wallet dnl Unless the user specified ARFLAGS, force it to be cr AC_ARG_VAR(ARFLAGS, [Flags for the archiver, defaults to if not set]) @@ -436,25 +436,25 @@ CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS" AC_ARG_WITH([utils], [AS_HELP_STRING([--with-utils], - [build bitcoin-cli bitcoin-tx bitcoin-wallet (default=yes)])], + [build verium-cli verium-tx verium-wallet (default=yes)])], [build_bitcoin_utils=$withval], [build_bitcoin_utils=yes]) AC_ARG_ENABLE([util-cli], [AS_HELP_STRING([--enable-util-cli], - [build bitcoin-cli])], + [build verium-cli])], [build_bitcoin_cli=$enableval], [build_bitcoin_cli=$build_bitcoin_utils]) AC_ARG_ENABLE([util-tx], [AS_HELP_STRING([--enable-util-tx], - [build bitcoin-tx])], + [build verium-tx])], [build_bitcoin_tx=$enableval], [build_bitcoin_tx=$build_bitcoin_utils]) AC_ARG_ENABLE([util-wallet], [AS_HELP_STRING([--enable-util-wallet], - [build bitcoin-wallet])], + [build verium-wallet])], [build_bitcoin_wallet=$enableval], [build_bitcoin_wallet=$build_bitcoin_utils]) @@ -466,7 +466,7 @@ AC_ARG_WITH([libs], AC_ARG_WITH([daemon], [AS_HELP_STRING([--with-daemon], - [build bitcoind daemon (default=yes)])], + [build veriumd daemon (default=yes)])], [build_bitcoind=$withval], [build_bitcoind=yes]) @@ -1379,19 +1379,19 @@ if test x$have_protobuf != xno && BITCOIN_QT_PATH_PROGS([PROTOC], [protoc],$protoc_bin_path) fi -AC_MSG_CHECKING([whether to build bitcoind]) +AC_MSG_CHECKING([whether to build veriumd]) AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes]) AC_MSG_RESULT($build_bitcoind) -AC_MSG_CHECKING([whether to build bitcoin-cli]) +AC_MSG_CHECKING([whether to build verium-cli]) AM_CONDITIONAL([BUILD_BITCOIN_CLI], [test x$build_bitcoin_cli = xyes]) AC_MSG_RESULT($build_bitcoin_cli) -AC_MSG_CHECKING([whether to build bitcoin-tx]) +AC_MSG_CHECKING([whether to build verium-tx]) AM_CONDITIONAL([BUILD_BITCOIN_TX], [test x$build_bitcoin_tx = xyes]) AC_MSG_RESULT($build_bitcoin_tx) -AC_MSG_CHECKING([whether to build bitcoin-wallet]) +AC_MSG_CHECKING([whether to build verium-wallet]) AM_CONDITIONAL([BUILD_BITCOIN_WALLET], [test x$build_bitcoin_wallet = xyes]) AC_MSG_RESULT($build_bitcoin_wallet) @@ -1493,7 +1493,7 @@ if test x$bitcoin_enable_qt != xno; then AC_MSG_WARN("xgettext is required to update qt translations") fi - AC_MSG_CHECKING([whether to build test_bitcoin-qt]) + AC_MSG_CHECKING([whether to build test_verium-qt]) if test x$use_gui_tests$bitcoin_enable_qt_test = xyesyes; then AC_MSG_RESULT([yes]) BUILD_TEST_QT="yes" @@ -1521,7 +1521,7 @@ fi AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"]) -AC_MSG_CHECKING([whether to build test_bitcoin]) +AC_MSG_CHECKING([whether to build test_verium]) if test x$use_tests = xyes; then AC_MSG_RESULT([yes]) BUILD_TEST="yes" diff --git a/src/Makefile.am b/src/Makefile.am index 06a8469046..7a4dd1f4fc 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -82,18 +82,18 @@ TESTS = BENCHMARKS = if BUILD_BITCOIND - bin_PROGRAMS += bitcoind + bin_PROGRAMS += veriumd endif if BUILD_BITCOIN_CLI - bin_PROGRAMS += bitcoin-cli + bin_PROGRAMS += verium-cli endif if BUILD_BITCOIN_TX - bin_PROGRAMS += bitcoin-tx + bin_PROGRAMS += verium-tx endif if ENABLE_WALLET if BUILD_BITCOIN_WALLET - bin_PROGRAMS += bitcoin-wallet + bin_PROGRAMS += verium-wallet endif endif @@ -251,7 +251,7 @@ obj/build.h: FORCE "$(abs_top_srcdir)" libbitcoin_util_a-clientversion.$(OBJEXT): obj/build.h -# server: shared between bitcoind and bitcoin-qt +# server: shared between veriumd and verium-qt # Contains code accessing mempool and chain state that is meant to be separated # from wallet and gui code (see node/README.md). Shared code should go in # libbitcoin_common or libbitcoin_util libraries, instead. @@ -324,7 +324,7 @@ libbitcoin_zmq_a_SOURCES = \ endif -# wallet: shared between bitcoind and bitcoin-qt, but only linked +# wallet: shared between veriumd and verium-qt, but only linked # when wallet enabled libbitcoin_wallet_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) libbitcoin_wallet_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) @@ -451,7 +451,7 @@ libbitcoin_consensus_a_SOURCES = \ util/strencodings.h \ version.h -# common: shared between bitcoind, and bitcoin-qt and non-server tools +# common: shared between veriumd, and verium-qt and non-server tools libbitcoin_common_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) libbitcoin_common_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) libbitcoin_common_a_SOURCES = \ @@ -526,7 +526,7 @@ libbitcoin_util_a_SOURCES += compat/glibc_compat.cpp AM_LDFLAGS += $(COMPAT_LDFLAGS) endif -# cli: shared between bitcoin-cli and bitcoin-qt +# cli: shared between verium-cli and verium-qt libbitcoin_cli_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) libbitcoin_cli_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) libbitcoin_cli_a_SOURCES = \ @@ -536,19 +536,19 @@ libbitcoin_cli_a_SOURCES = \ nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h # -# bitcoind binary # -bitcoind_SOURCES = bitcoind.cpp -bitcoind_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -bitcoind_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoind_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +# veriumd binary # +veriumd_SOURCES = bitcoind.cpp +veriumd_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +veriumd_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +veriumd_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) if TARGET_WINDOWS -bitcoind_SOURCES += bitcoind-res.rc +veriumd_SOURCES += bitcoind-res.rc endif # Libraries below may be listed more than once to resolve circular dependencies (see # https://eli.thegreenplace.net/2013/07/09/library-order-in-static-linking#circular-dependency) -bitcoind_LDADD = \ +veriumd_LDADD = \ $(LIBBITCOIN_SERVER) \ $(LIBBITCOIN_WALLET) \ $(LIBBITCOIN_SERVER) \ @@ -563,38 +563,38 @@ bitcoind_LDADD = \ $(LIBMEMENV) \ $(LIBSECP256K1) -bitcoind_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) +veriumd_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) -# bitcoin-cli binary # -bitcoin_cli_SOURCES = bitcoin-cli.cpp -bitcoin_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS) -bitcoin_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +# verium-cli binary # +verium_cli_SOURCES = bitcoin-cli.cpp +verium_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS) +verium_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +verium_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) if TARGET_WINDOWS -bitcoin_cli_SOURCES += bitcoin-cli-res.rc +verium_cli_SOURCES += bitcoin-cli-res.rc endif -bitcoin_cli_LDADD = \ +verium_cli_LDADD = \ $(LIBBITCOIN_CLI) \ $(LIBUNIVALUE) \ $(LIBBITCOIN_UTIL) \ $(LIBBITCOIN_CRYPTO) -bitcoin_cli_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS) $(EVENT_LIBS) +verium_cli_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS) $(EVENT_LIBS) # -# bitcoin-tx binary # -bitcoin_tx_SOURCES = bitcoin-tx.cpp -bitcoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -bitcoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +# verium-tx binary # +verium_tx_SOURCES = bitcoin-tx.cpp +verium_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +verium_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +verium_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) if TARGET_WINDOWS -bitcoin_tx_SOURCES += bitcoin-tx-res.rc +verium_tx_SOURCES += bitcoin-tx-res.rc endif -bitcoin_tx_LDADD = \ +verium_tx_LDADD = \ $(LIBUNIVALUE) \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UTIL) \ @@ -602,20 +602,20 @@ bitcoin_tx_LDADD = \ $(LIBBITCOIN_CRYPTO) \ $(LIBSECP256K1) -bitcoin_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS) +verium_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS) # -# bitcoin-wallet binary # -bitcoin_wallet_SOURCES = bitcoin-wallet.cpp -bitcoin_wallet_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -bitcoin_wallet_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_wallet_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +# verium-wallet binary # +verium_wallet_SOURCES = bitcoin-wallet.cpp +verium_wallet_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +verium_wallet_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +verium_wallet_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) if TARGET_WINDOWS -bitcoin_wallet_SOURCES += bitcoin-wallet-res.rc +verium_wallet_SOURCES += bitcoin-wallet-res.rc endif -bitcoin_wallet_LDADD = \ +verium_wallet_LDADD = \ $(LIBBITCOIN_WALLET_TOOL) \ $(LIBBITCOIN_WALLET) \ $(LIBBITCOIN_COMMON) \ @@ -629,7 +629,7 @@ bitcoin_wallet_LDADD = \ $(LIBSECP256K1) \ $(LIBUNIVALUE) -bitcoin_wallet_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(CRYPTO_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(MINIUPNPC_LIBS) $(ZMQ_LIBS) +verium_wallet_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(CRYPTO_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(MINIUPNPC_LIBS) $(ZMQ_LIBS) # # bitcoinconsensus library # diff --git a/src/Makefile.bench.include b/src/Makefile.bench.include index e421b377a0..32bb0f1eba 100644 --- a/src/Makefile.bench.include +++ b/src/Makefile.bench.include @@ -2,15 +2,15 @@ # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -bin_PROGRAMS += bench/bench_bitcoin +bin_PROGRAMS += bench/bench_verium BENCH_SRCDIR = bench -BENCH_BINARY = bench/bench_bitcoin$(EXEEXT) +BENCH_BINARY = bench/bench_verium$(EXEEXT) RAW_BENCH_FILES = \ bench/data/block413567.raw GENERATED_BENCH_FILES = $(RAW_BENCH_FILES:.raw=.raw.h) -bench_bench_bitcoin_SOURCES = \ +bench_bench_verium_SOURCES = \ $(RAW_BENCH_FILES) \ bench/bench_bitcoin.cpp \ bench/bench.cpp \ @@ -44,11 +44,11 @@ bench_bench_bitcoin_SOURCES = \ test/util.h \ test/util.cpp -nodist_bench_bench_bitcoin_SOURCES = $(GENERATED_BENCH_FILES) +nodist_bench_bench_verium_SOURCES = $(GENERATED_BENCH_FILES) -bench_bench_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CLFAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/ -bench_bench_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bench_bench_bitcoin_LDADD = \ +bench_bench_verium_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CLFAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/ +bench_bench_verium_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +bench_bench_verium_LDADD = \ $(LIBBITCOIN_SERVER) \ $(LIBBITCOIN_WALLET) \ $(LIBBITCOIN_SERVER) \ @@ -65,16 +65,16 @@ bench_bench_bitcoin_LDADD = \ $(EVENT_LIBS) if ENABLE_ZMQ -bench_bench_bitcoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +bench_bench_verium_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif if ENABLE_WALLET -bench_bench_bitcoin_SOURCES += bench/coin_selection.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_balance.cpp +bench_bench_verium_SOURCES += bench/coin_selection.cpp +bench_bench_verium_SOURCES += bench/wallet_balance.cpp endif -bench_bench_bitcoin_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(CRYPTO_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(MINIUPNPC_LIBS) -bench_bench_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +bench_bench_verium_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(CRYPTO_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(MINIUPNPC_LIBS) +bench_bench_verium_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) CLEAN_BITCOIN_BENCH = bench/*.gcda bench/*.gcno $(GENERATED_BENCH_FILES) @@ -82,13 +82,13 @@ CLEANFILES += $(CLEAN_BITCOIN_BENCH) bench/data.cpp: bench/data/block413567.raw.h -bitcoin_bench: $(BENCH_BINARY) +verium_bench: $(BENCH_BINARY) bench: $(BENCH_BINARY) FORCE $(BENCH_BINARY) -bitcoin_bench_clean : FORCE - rm -f $(CLEAN_BITCOIN_BENCH) $(bench_bench_bitcoin_OBJECTS) $(BENCH_BINARY) +verium_bench_clean : FORCE + rm -f $(CLEAN_BITCOIN_BENCH) $(bench_bench_verium_OBJECTS) $(BENCH_BINARY) %.raw.h: %.raw @$(MKDIR_P) $(@D) diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index a8d3154107..2e1461c153 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -2,10 +2,10 @@ # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -bin_PROGRAMS += qt/bitcoin-qt +bin_PROGRAMS += qt/verium-qt EXTRA_LIBRARIES += qt/libbitcoinqt.a -# bitcoin qt core # +# verium qt core # include Makefile.qt_locale.include QT_FORMS_UI = \ @@ -318,35 +318,35 @@ $(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) : | $(QT_MOC) $(QT_MOC): $(PROTOBUF_H) $(QT_MOC_CPP): $(PROTOBUF_H) -# bitcoin-qt binary # -qt_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ +# verium-qt binary # +qt_verium_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ $(QT_INCLUDES) $(PROTOBUF_CFLAGS) $(QR_CFLAGS) -qt_bitcoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) +qt_verium_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) -qt_bitcoin_qt_SOURCES = qt/main.cpp +qt_verium_qt_SOURCES = qt/main.cpp if TARGET_WINDOWS - qt_bitcoin_qt_SOURCES += $(BITCOIN_RC) + qt_verium_qt_SOURCES += $(BITCOIN_RC) endif -qt_bitcoin_qt_LDADD = qt/libbitcoinqt.a $(LIBBITCOIN_SERVER) +qt_verium_qt_LDADD = qt/libbitcoinqt.a $(LIBBITCOIN_SERVER) if ENABLE_WALLET -qt_bitcoin_qt_LDADD += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) +qt_verium_qt_LDADD += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) endif if ENABLE_ZMQ -qt_bitcoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +qt_verium_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif -qt_bitcoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) \ +qt_verium_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) \ $(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \ $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) if ENABLE_BIP70 -qt_bitcoin_qt_LDADD += $(SSL_LIBS) +qt_verium_qt_LDADD += $(SSL_LIBS) else if TARGET_WINDOWS -qt_bitcoin_qt_LDADD += $(SSL_LIBS) +qt_verium_qt_LDADD += $(SSL_LIBS) endif endif -qt_bitcoin_qt_LDADD += $(CRYPTO_LIBS) -qt_bitcoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -qt_bitcoin_qt_LIBTOOLFLAGS = $(AM_LIBTOOLFLAGS) --tag CXX +qt_verium_qt_LDADD += $(CRYPTO_LIBS) +qt_verium_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +qt_verium_qt_LIBTOOLFLAGS = $(AM_LIBTOOLFLAGS) --tag CXX #locale/foo.ts -> locale/foo.qm QT_QM=$(QT_TS:.ts=.qm) @@ -370,17 +370,17 @@ $(QT_QRC_LOCALE_CPP): $(QT_QRC_LOCALE) $(QT_QM) $(QT_QRC_CPP): $(QT_QRC) $(QT_FORMS_H) $(RES_ICONS) $(RES_IMAGES) $(RES_MOVIES) $(PROTOBUF_H) @test -f $(RCC) - $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name bitcoin $< | \ + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name verium $< | \ $(SED) -e '/^\*\*.*Created:/d' -e '/^\*\*.*by:/d' > $@ CLEAN_QT = $(nodist_qt_libbitcoinqt_a_SOURCES) $(QT_QM) $(QT_FORMS_H) qt/*.gcda qt/*.gcno qt/temp_bitcoin_locale.qrc CLEANFILES += $(CLEAN_QT) -bitcoin_qt_clean: FORCE - rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) qt/bitcoin-qt$(EXEEXT) $(LIBBITCOINQT) +verium_qt_clean: FORCE + rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) qt/verium-qt$(EXEEXT) $(LIBBITCOINQT) -bitcoin_qt : qt/bitcoin-qt$(EXEEXT) +verium_qt : qt/verium-qt$(EXEEXT) ui_%.h: %.ui @test -f $(UIC) diff --git a/src/Makefile.qttest.include b/src/Makefile.qttest.include index 4acfff809e..5e9ba15d28 100644 --- a/src/Makefile.qttest.include +++ b/src/Makefile.qttest.include @@ -2,8 +2,8 @@ # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -bin_PROGRAMS += qt/test/test_bitcoin-qt -TESTS += qt/test/test_bitcoin-qt +bin_PROGRAMS += qt/test/test_verium-qt +TESTS += qt/test/test_verium-qt TEST_QT_MOC_CPP = \ qt/test/moc_apptests.cpp \ @@ -38,10 +38,10 @@ TEST_BITCOIN_CPP = \ TEST_BITCOIN_H = \ test/setup_common.h -qt_test_test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ +qt_test_test_verium_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ $(QT_INCLUDES) $(QT_TEST_INCLUDES) $(PROTOBUF_CFLAGS) -qt_test_test_bitcoin_qt_SOURCES = \ +qt_test_test_verium_qt_SOURCES = \ qt/test/apptests.cpp \ qt/test/compattests.cpp \ qt/test/rpcnestedtests.cpp \ @@ -52,40 +52,40 @@ qt_test_test_bitcoin_qt_SOURCES = \ $(TEST_BITCOIN_CPP) \ $(TEST_BITCOIN_H) if ENABLE_WALLET -qt_test_test_bitcoin_qt_SOURCES += \ +qt_test_test_verium_qt_SOURCES += \ qt/test/addressbooktests.cpp \ qt/test/wallettests.cpp \ wallet/test/wallet_test_fixture.cpp if ENABLE_BIP70 -qt_test_test_bitcoin_qt_SOURCES += \ +qt_test_test_verium_qt_SOURCES += \ qt/test/paymentservertests.cpp endif # ENABLE_BIP70 endif # ENABLE_WALLET -nodist_qt_test_test_bitcoin_qt_SOURCES = $(TEST_QT_MOC_CPP) +nodist_qt_test_test_verium_qt_SOURCES = $(TEST_QT_MOC_CPP) -qt_test_test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) +qt_test_test_verium_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) if ENABLE_WALLET -qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) +qt_test_test_verium_qt_LDADD += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) endif if ENABLE_ZMQ -qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +qt_test_test_verium_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif -qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \ +qt_test_test_verium_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \ $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) $(QT_LIBS) \ $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \ $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) -qt_test_test_bitcoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -qt_test_test_bitcoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) +qt_test_test_verium_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +qt_test_test_verium_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) CLEAN_BITCOIN_QT_TEST = $(TEST_QT_MOC_CPP) qt/test/*.gcda qt/test/*.gcno CLEANFILES += $(CLEAN_BITCOIN_QT_TEST) -test_bitcoin_qt : qt/test/test_bitcoin-qt$(EXEEXT) +test_verium_qt : qt/test/test_verium-qt$(EXEEXT) -test_bitcoin_qt_check : qt/test/test_bitcoin-qt$(EXEEXT) FORCE +test_verium_qt_check : qt/test/test_verium-qt$(EXEEXT) FORCE $(MAKE) check-TESTS TESTS=$^ -test_bitcoin_qt_clean: FORCE - rm -f $(CLEAN_BITCOIN_QT_TEST) $(qt_test_test_bitcoin_qt_OBJECTS) +test_verium_qt_clean: FORCE + rm -f $(CLEAN_BITCOIN_QT_TEST) $(qt_test_test_verium_qt_OBJECTS) diff --git a/src/Makefile.test.include b/src/Makefile.test.include index d3fe138133..63245fc7a4 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -29,11 +29,11 @@ FUZZ_TARGETS = \ if ENABLE_FUZZ noinst_PROGRAMS += $(FUZZ_TARGETS:=) else -bin_PROGRAMS += test/test_bitcoin +bin_PROGRAMS += test/test_verium endif TEST_SRCDIR = test -TEST_BINARY=test/test_bitcoin$(EXEEXT) +TEST_BINARY=test/test_verium$(EXEEXT) JSON_TEST_FILES = \ test/data/script_tests.json \ @@ -77,7 +77,7 @@ FUZZ_SUITE_LD_COMMON = \ $(CRYPTO_LIBS) \ $(EVENT_PTHREADS_LIBS) -# test_bitcoin binary # +# test_verium binary # BITCOIN_TESTS =\ test/arith_uint256_tests.cpp \ test/scriptnum10.h \ @@ -177,22 +177,22 @@ BITCOIN_TEST_SUITE += \ wallet/test/init_test_fixture.h endif -test_test_bitcoin_SOURCES = $(BITCOIN_TEST_SUITE) $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) -test_test_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(TESTDEFS) $(EVENT_CFLAGS) -test_test_bitcoin_LDADD = +test_test_verium_SOURCES = $(BITCOIN_TEST_SUITE) $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) +test_test_verium_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(TESTDEFS) $(EVENT_CFLAGS) +test_test_verium_LDADD = if ENABLE_WALLET -test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET) +test_test_verium_LDADD += $(LIBBITCOIN_WALLET) endif -test_test_bitcoin_LDADD += $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \ +test_test_verium_LDADD += $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \ $(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS) -test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +test_test_verium_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -test_test_bitcoin_LDADD += $(BDB_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(RAPIDCHECK_LIBS) -test_test_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static +test_test_verium_LDADD += $(BDB_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(RAPIDCHECK_LIBS) +test_test_verium_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static if ENABLE_ZMQ -test_test_bitcoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +test_test_verium_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif if ENABLE_FUZZ @@ -323,7 +323,7 @@ test_fuzz_blocktransactionsrequest_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLA test_fuzz_blocktransactionsrequest_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON) endif # ENABLE_FUZZ -nodist_test_test_bitcoin_SOURCES = $(GENERATED_TEST_FILES) +nodist_test_test_verium_SOURCES = $(GENERATED_TEST_FILES) $(BITCOIN_TESTS): $(GENERATED_TEST_FILES) @@ -332,20 +332,20 @@ CLEAN_BITCOIN_TEST = test/*.gcda test/*.gcno $(GENERATED_TEST_FILES) $(BITCOIN_T CLEANFILES += $(CLEAN_BITCOIN_TEST) if TARGET_WINDOWS -bitcoin_test: $(TEST_BINARY) +verium_test: $(TEST_BINARY) else if ENABLE_BENCH -bitcoin_test: $(TEST_BINARY) $(BENCH_BINARY) +verium_test: $(TEST_BINARY) $(BENCH_BINARY) else -bitcoin_test: $(TEST_BINARY) +verium_test: $(TEST_BINARY) endif endif -bitcoin_test_check: $(TEST_BINARY) FORCE +verium_test_check: $(TEST_BINARY) FORCE $(MAKE) check-TESTS TESTS=$^ -bitcoin_test_clean : FORCE - rm -f $(CLEAN_BITCOIN_TEST) $(test_test_bitcoin_OBJECTS) $(TEST_BINARY) +verium_test_clean : FORCE + rm -f $(CLEAN_BITCOIN_TEST) $(test_test_verium_OBJECTS) $(TEST_BINARY) check-local: $(BITCOIN_TESTS:.cpp=.cpp.test) if BUILD_BITCOIN_TX @@ -357,7 +357,7 @@ endif if TARGET_WINDOWS else if ENABLE_BENCH - @echo "Running bench/bench_bitcoin -evals=1 -scaling=0..." + @echo "Running bench/bench_verium -evals=1 -scaling=0..." $(BENCH_BINARY) -evals=1 -scaling=0 > /dev/null endif endif diff --git a/src/qt/Makefile b/src/qt/Makefile index b9dcf0c599..6da43b511e 100644 --- a/src/qt/Makefile +++ b/src/qt/Makefile @@ -1,9 +1,9 @@ .PHONY: FORCE all: FORCE - $(MAKE) -C .. bitcoin_qt test_bitcoin_qt + $(MAKE) -C .. verium_qt test_verium_qt clean: FORCE - $(MAKE) -C .. bitcoin_qt_clean test_bitcoin_qt_clean + $(MAKE) -C .. verium_qt_clean test_verium_qt_clean check: FORCE - $(MAKE) -C .. test_bitcoin_qt_check -bitcoin-qt bitcoin-qt.exe: FORCE - $(MAKE) -C .. bitcoin_qt + $(MAKE) -C .. test_verium_qt_check +verium-qt verium-qt.exe: FORCE + $(MAKE) -C .. verium_qt diff --git a/src/qt/test/Makefile b/src/qt/test/Makefile index a02f86b62a..66da729fb3 100644 --- a/src/qt/test/Makefile +++ b/src/qt/test/Makefile @@ -1,6 +1,6 @@ all: - $(MAKE) -C ../../ test_bitcoin_qt + $(MAKE) -C ../../ test_verium_qt clean: - $(MAKE) -C ../../ test_bitcoin_qt_clean + $(MAKE) -C ../../ test_verium_qt_clean check: - $(MAKE) -C ../../ test_bitcoin_qt_check + $(MAKE) -C ../../ test_verium_qt_check diff --git a/src/test/Makefile b/src/test/Makefile index 87bf73fec9..46b09c205a 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -1,6 +1,6 @@ all: - $(MAKE) -C .. bitcoin_test + $(MAKE) -C .. verium_test clean: - $(MAKE) -C .. bitcoin_test_clean + $(MAKE) -C .. verium_test_clean check: - $(MAKE) -C .. bitcoin_test_check + $(MAKE) -C .. verium_test_check From 2079d175330fa2f1ac5cb29a263ecbb0a15b1824 Mon Sep 17 00:00:00 2001 From: Matthieu 'JP' DERASSE Date: Mon, 11 May 2020 23:21:12 +0200 Subject: [PATCH 082/388] Move back to btc travis. Will customize it later --- ci/README.md | 15 +-- ci/extended_lint/04_install.sh | 12 +++ ci/extended_lint/06_script.sh | 9 ++ ci/lint/04_install.sh | 3 +- ci/lint/05_before_script.sh | 2 +- ci/lint/06_script.sh | 20 +++- ci/retry/README.md | 4 +- ci/retry/retry | 6 +- ci/test/00_setup_env.sh | 40 +++----- ci/test/00_setup_env_amd64_asan.sh | 13 +++ ci/test/00_setup_env_amd64_fuzz.sh | 16 +++ ...tive.sh => 00_setup_env_amd64_nowallet.sh} | 6 +- ...ative_qt5.sh => 00_setup_env_amd64_qt5.sh} | 10 +- ci/test/00_setup_env_amd64_trusty.sh | 15 +++ ci/test/00_setup_env_amd64_tsan.sh | 14 +++ ci/test/00_setup_env_arm.sh | 16 +-- ci/test/00_setup_env_arm_host.sh | 30 ------ ci/test/00_setup_env_i686.sh | 14 +++ ci/test/00_setup_env_i686_centos.sh | 15 --- ci/test/00_setup_env_mac.sh | 7 +- ci/test/00_setup_env_mac_host.sh | 17 ---- ci/test/00_setup_env_win64.sh | 1 - ci/test/03_before_install.sh | 2 +- ci/test/04_install.sh | 97 ++++--------------- ci/test/05_before_script.sh | 31 ++---- ci/test/06_script_a.sh | 29 +++--- ci/test/06_script_b.sh | 31 +++--- ci/test/wrap-qemu.sh | 18 ---- 28 files changed, 200 insertions(+), 293 deletions(-) create mode 100755 ci/extended_lint/04_install.sh create mode 100755 ci/extended_lint/06_script.sh create mode 100644 ci/test/00_setup_env_amd64_asan.sh create mode 100644 ci/test/00_setup_env_amd64_fuzz.sh rename ci/test/{00_setup_env_native.sh => 00_setup_env_amd64_nowallet.sh} (80%) rename ci/test/{00_setup_env_native_qt5.sh => 00_setup_env_amd64_qt5.sh} (52%) create mode 100644 ci/test/00_setup_env_amd64_trusty.sh create mode 100644 ci/test/00_setup_env_amd64_tsan.sh delete mode 100644 ci/test/00_setup_env_arm_host.sh create mode 100644 ci/test/00_setup_env_i686.sh delete mode 100644 ci/test/00_setup_env_i686_centos.sh delete mode 100644 ci/test/00_setup_env_mac_host.sh delete mode 100755 ci/test/wrap-qemu.sh diff --git a/ci/README.md b/ci/README.md index d2ea255b4b..16c481158f 100644 --- a/ci/README.md +++ b/ci/README.md @@ -8,21 +8,11 @@ and numbered according to which stage and lifecycle step it belongs to. ### Running a stage locally -Be aware that the tests will be built and run in-place, so please run at your own risk. -If the repository is not a fresh git clone, you might have to clean files from previous builds or test runs first. - -The ci needs to perform various sysadmin tasks such as installing packages or writing to the user's home directory. -While most of the actions are done inside a docker container, this is not possible for all. Thus, cache directories, -such as the depends cache, previous release binaries, or ccache, are mounted as read-write into the docker container. While it should be fine to run -the ci system locally on you development box, the ci scripts can generally be assumed to have received less review and -testing compared to other parts of the codebase. If you want to keep the work tree clean, you might want to run the ci -system in a virtual machine with a Linux operating system of your choice. - To allow for a wide range of tested environments, but also ensure reproducibility to some extent, the test stage requires `docker` to be installed. To install all requirements on Ubuntu, run ``` -sudo apt install docker.io bash +sudo apt install docker.io ccache bash git ``` To run the default test stage, @@ -36,3 +26,6 @@ To run the test stage with a specific configuration, ``` FILE_ENV="./ci/test/00_setup_env_arm.sh" ./ci/test_run_all.sh ``` + +Be aware that the tests will be build and run in-place, so please run at your own risk. +If the repository is not a fresh git clone, you might have to clean files from previous builds or test runs first. diff --git a/ci/extended_lint/04_install.sh b/ci/extended_lint/04_install.sh new file mode 100755 index 0000000000..123d874a84 --- /dev/null +++ b/ci/extended_lint/04_install.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C + +CPPCHECK_VERSION=1.86 +curl -s https://codeload.github.com/danmar/cppcheck/tar.gz/${CPPCHECK_VERSION} | tar -zxf - --directory /tmp/ +(cd /tmp/cppcheck-${CPPCHECK_VERSION}/ && make CFGDIR=/tmp/cppcheck-${CPPCHECK_VERSION}/cfg/ > /dev/null) +export PATH="$PATH:/tmp/cppcheck-${CPPCHECK_VERSION}/" diff --git a/ci/extended_lint/06_script.sh b/ci/extended_lint/06_script.sh new file mode 100755 index 0000000000..e8228c9c4d --- /dev/null +++ b/ci/extended_lint/06_script.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C + +test/lint/extended-lint-all.sh diff --git a/ci/lint/04_install.sh b/ci/lint/04_install.sh index 085f98a7ef..12c3bfce45 100755 --- a/ci/lint/04_install.sh +++ b/ci/lint/04_install.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Copyright (c) 2018-2019 The Verium Core developers +# Copyright (c) 2018 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -8,7 +8,6 @@ export LC_ALL=C travis_retry pip3 install codespell==1.15.0 travis_retry pip3 install flake8==3.7.8 -travis_retry pip3 install yq SHELLCHECK_VERSION=v0.6.0 curl -s "https://storage.googleapis.com/shellcheck/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | tar --xz -xf - --directory /tmp/ diff --git a/ci/lint/05_before_script.sh b/ci/lint/05_before_script.sh index fa3d155bbd..28bcbb47f7 100755 --- a/ci/lint/05_before_script.sh +++ b/ci/lint/05_before_script.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Copyright (c) 2018-2019 The Verium Core developers +# Copyright (c) 2018 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/ci/lint/06_script.sh b/ci/lint/06_script.sh index 47a4a73c13..c7dea599dc 100755 --- a/ci/lint/06_script.sh +++ b/ci/lint/06_script.sh @@ -1,7 +1,25 @@ #!/usr/bin/env bash # -# Copyright (c) 2018-2019 The Verium Core developers +# Copyright (c) 2018 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. export LC_ALL=C + +if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then + test/lint/commit-script-check.sh $TRAVIS_COMMIT_RANGE +fi + +test/lint/git-subtree-check.sh src/crypto/ctaes +test/lint/git-subtree-check.sh src/secp256k1 +test/lint/git-subtree-check.sh src/univalue +test/lint/git-subtree-check.sh src/leveldb +test/lint/check-doc.py +test/lint/check-rpc-mappings.py . +test/lint/lint-all.sh + +if [ "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" ] && [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then + git log --merges --before="2 days ago" -1 --format='%H' > ./contrib/verify-commits/trusted-sha512-root-commit + travis_retry gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $(&2 } -# Parameters: max_tries min_sleep max_sleep constant_sleep fail_script EXECUTION_COMMAND +# Paramters: max_tries min_sleep max_sleep constant_sleep fail_script EXECUTION_COMMAND retry() { local max_tries="$1"; shift @@ -83,8 +83,8 @@ Usage: $retry [options] -- execute command -v, --verbose Verbose output -t, --tries=# Set max retries: Default 10 -s, --sleep=secs Constant sleep amount (seconds) - -m, --min=secs Exponential Backoff: minimum sleep amount (seconds): Default 0.3 - -x, --max=secs Exponential Backoff: maximum sleep amount (seconds): Default 60 + -m, --min=secs Exponenetial Backoff: minimum sleep amount (seconds): Default 0.3 + -x, --max=secs Exponenetial Backoff: maximum sleep amount (seconds): Default 60 -f, --fail="script +cmds" Fail Script: run in case of final failure EOF } diff --git a/ci/test/00_setup_env.sh b/ci/test/00_setup_env.sh index f5c9f0402d..94598835ac 100755 --- a/ci/test/00_setup_env.sh +++ b/ci/test/00_setup_env.sh @@ -6,12 +6,6 @@ export LC_ALL=C.UTF-8 -# The root dir. -# The ci system copies this folder. -# This is where the build is done (depends and dist). -BASE_ROOT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../ >/dev/null 2>&1 && pwd ) -export BASE_ROOT_DIR - echo "Setting specific values in env" if [ -n "${FILE_ENV}" ]; then set -o errexit; @@ -19,42 +13,34 @@ if [ -n "${FILE_ENV}" ]; then source "${FILE_ENV}" fi +BASE_ROOT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../ >/dev/null 2>&1 && pwd ) +export BASE_ROOT_DIR + echo "Fallback to default values in env (if not yet set)" # The number of parallel jobs to pass down to make and test_runner.py export MAKEJOBS=${MAKEJOBS:--j4} # A folder for the ci system to put temporary files (ccache, datadirs for tests, ...) -# This folder only exists on the ci host. export BASE_SCRATCH_DIR=${BASE_SCRATCH_DIR:-$BASE_ROOT_DIR/ci/scratch/} -# What host to compile for. See also ./depends/README.md -# Tests that need cross-compilation export the appropriate HOST. -# Tests that run natively guess the host -export HOST=${HOST:-$("$BASE_ROOT_DIR/depends/config.guess")} -# Whether to prefer BusyBox over GNU utilities -export USE_BUSY_BOX=${USE_BUSY_BOX:-false} -export RUN_UNIT_TESTS=${RUN_UNIT_TESTS:-false} -export RUN_FUNCTIONAL_TESTS=${RUN_FUNCTIONAL_TESTS:-false} +export HOST=${HOST:-x86_64-unknown-linux-gnu} +export RUN_UNIT_TESTS=${RUN_UNIT_TESTS:-true} +export RUN_FUNCTIONAL_TESTS=${RUN_FUNCTIONAL_TESTS:-true} export RUN_FUZZ_TESTS=${RUN_FUZZ_TESTS:-false} -export CONTAINER_NAME=${CONTAINER_NAME:-ci_unnamed} export DOCKER_NAME_TAG=${DOCKER_NAME_TAG:-ubuntu:18.04} # Randomize test order. # See https://www.boost.org/doc/libs/1_71_0/libs/test/doc/html/boost_test/utf_reference/rt_param_reference/random.html export BOOST_TEST_RANDOM=${BOOST_TEST_RANDOM:-1} -export CCACHE_SIZE=${CCACHE_SIZE:-900M} +export CCACHE_SIZE=${CCACHE_SIZE:-100M} export CCACHE_TEMPDIR=${CCACHE_TEMPDIR:-/tmp/.ccache-temp} export CCACHE_COMPRESS=${CCACHE_COMPRESS:-1} -# The cache dir. -# This folder exists on the ci host and ci guest. Changes are propagated back and forth. export CCACHE_DIR=${CCACHE_DIR:-$BASE_SCRATCH_DIR/.ccache} -# The depends dir. -# This folder exists on the ci host and ci guest. Changes are propagated back and forth. -export DEPENDS_DIR=${DEPENDS_DIR:-$BASE_ROOT_DIR/depends} -# Folder where the build is done (bin and lib). -export BASE_OUTDIR=${BASE_OUTDIR:-$BASE_SCRATCH_DIR/out/$HOST} +# Folder where the build is done (depends and dist). Can not be changed and is equal to the root of the git repo +export BASE_BUILD_DIR=${BASE_BUILD_DIR:-$BASE_ROOT_DIR} +# Folder where the build is done (bin and lib). Can not be changed. +export BASE_OUTDIR=${BASE_OUTDIR:-$BASE_BUILD_DIR/out/$HOST} export SDK_URL=${SDK_URL:-https://bitcoincore.org/depends-sources/sdks} export WINEDEBUG=${WINEDEBUG:-fixme-all} -export DOCKER_PACKAGES=${DOCKER_PACKAGES:-build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps} +export DOCKER_PACKAGES=${DOCKER_PACKAGES:-build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3} export GOAL=${GOAL:-install} -export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_SCRATCH_DIR}/qa-assets} +export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_BUILD_DIR}/qa-assets} export PATH=${BASE_ROOT_DIR}/ci/retry:$PATH export CI_RETRY_EXE=${CI_RETRY_EXE:retry} -export INSTALL_DB4=${INSTALL_DB4:-false} \ No newline at end of file diff --git a/ci/test/00_setup_env_amd64_asan.sh b/ci/test/00_setup_env_amd64_asan.sh new file mode 100644 index 0000000000..46b870e145 --- /dev/null +++ b/ci/test/00_setup_env_amd64_asan.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C.UTF-8 + +export HOST=x86_64-unknown-linux-gnu +export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev" +export NO_DEPENDS=1 +export GOAL="install" +export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=address,integer,undefined CC=clang CXX=clang++" diff --git a/ci/test/00_setup_env_amd64_fuzz.sh b/ci/test/00_setup_env_amd64_fuzz.sh new file mode 100644 index 0000000000..7bdfc2c320 --- /dev/null +++ b/ci/test/00_setup_env_amd64_fuzz.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C.UTF-8 + +export HOST=x86_64-unknown-linux-gnu +export PACKAGES="clang llvm python3 libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev" +export NO_DEPENDS=1 +export RUN_UNIT_TESTS=false +export RUN_FUNCTIONAL_TESTS=false +export RUN_FUZZ_TESTS=true +export GOAL="install" +export BITCOIN_CONFIG="--enable-fuzz --with-sanitizers=fuzzer,address,undefined CC=clang CXX=clang++" diff --git a/ci/test/00_setup_env_native.sh b/ci/test/00_setup_env_amd64_nowallet.sh similarity index 80% rename from ci/test/00_setup_env_native.sh rename to ci/test/00_setup_env_amd64_nowallet.sh index 5b040b9c3a..d5a2ba3111 100644 --- a/ci/test/00_setup_env_native.sh +++ b/ci/test/00_setup_env_amd64_nowallet.sh @@ -6,8 +6,8 @@ export LC_ALL=C.UTF-8 -export CONTAINER_NAME=ci_native +export HOST=x86_64-unknown-linux-gnu export PACKAGES="python3-zmq" +export DEP_OPTS="NO_WALLET=1" export GOAL="install" -export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports --with-gui=no" -export INSTALL_DB4="true" \ No newline at end of file +export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports" diff --git a/ci/test/00_setup_env_native_qt5.sh b/ci/test/00_setup_env_amd64_qt5.sh similarity index 52% rename from ci/test/00_setup_env_native_qt5.sh rename to ci/test/00_setup_env_amd64_qt5.sh index eb796dc64a..55820ea835 100644 --- a/ci/test/00_setup_env_native_qt5.sh +++ b/ci/test/00_setup_env_amd64_qt5.sh @@ -6,13 +6,9 @@ export LC_ALL=C.UTF-8 -export CONTAINER_NAME=ci_native_qt5 -export PACKAGES="python3-zmq libssl-dev libevent-dev bsdmainutils python3 libcurl4-openssl-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libminizip-dev zlib1g-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev" -export DEP_OPTS="" +export HOST=x86_64-unknown-linux-gnu +export PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libdbus-1-dev libharfbuzz-dev" +export DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1" export TEST_RUNNER_EXTRA="--coverage --extended --exclude feature_dbcrash" # Run extended tests so that coverage does not fail, but exclude the very slow dbcrash -export RUN_UNIT_TESTS_SEQUENTIAL="false" -export RUN_UNIT_TESTS="false" export GOAL="install" -export INSTALL_DB4="true" -export NO_DEPENDS=1 export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --enable-debug CFLAGS=\"-g0 -O2 -funsigned-char\" CXXFLAGS=\"-g0 -O2 -funsigned-char\"" diff --git a/ci/test/00_setup_env_amd64_trusty.sh b/ci/test/00_setup_env_amd64_trusty.sh new file mode 100644 index 0000000000..51e98788c7 --- /dev/null +++ b/ci/test/00_setup_env_amd64_trusty.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C.UTF-8 + +export HOST=x86_64-unknown-linux-gnu +export DOCKER_NAME_TAG=ubuntu:14.04 +export PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libicu-dev libpng-dev libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.1++-dev libzmq3-dev libqrencode-dev" +export NO_DEPENDS=1 +export RUN_FUNCTIONAL_TESTS=false +export GOAL="install" +export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=no" diff --git a/ci/test/00_setup_env_amd64_tsan.sh b/ci/test/00_setup_env_amd64_tsan.sh new file mode 100644 index 0000000000..82ac988c41 --- /dev/null +++ b/ci/test/00_setup_env_amd64_tsan.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C.UTF-8 + +export HOST=x86_64-unknown-linux-gnu +export DOCKER_NAME_TAG=ubuntu:16.04 +export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev" +export NO_DEPENDS=1 +export GOAL="install" +export BITCOIN_CONFIG="--enable-zmq --disable-wallet --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=thread --disable-hardening --disable-asm CC=clang CXX=clang++" diff --git a/ci/test/00_setup_env_arm.sh b/ci/test/00_setup_env_arm.sh index 22a527537e..ac7ace8c3b 100644 --- a/ci/test/00_setup_env_arm.sh +++ b/ci/test/00_setup_env_arm.sh @@ -7,22 +7,10 @@ export LC_ALL=C.UTF-8 export HOST=arm-linux-gnueabihf -# The host arch is unknown, so we run the tests through qemu. -# If the host is arm and wants to run the tests natively, it can set QEMU_USER_CMD to the empty string. -if [ -z ${QEMU_USER_CMD+x} ]; then export QEMU_USER_CMD="${QEMU_USER_CMD:-"qemu-arm -L /usr/arm-linux-gnueabihf/"}"; fi -export DPKG_ADD_ARCH="armhf" -export PACKAGES="python3-zmq g++-arm-linux-gnueabihf busybox libc6:armhf libstdc++6:armhf libfontconfig1:armhf libxcb1:armhf" -if [ -n "$QEMU_USER_CMD" ]; then - # Likely cross-compiling, so install the needed gcc and qemu-user - export PACKAGES="$PACKAGES qemu-user" -fi -export CONTAINER_NAME=ci_arm_linux -# Use debian to avoid 404 apt errors when cross compiling -export DOCKER_NAME_TAG="debian:buster" -export USE_BUSY_BOX=true +export PACKAGES="python3 g++-arm-linux-gnueabihf" export RUN_UNIT_TESTS=false export RUN_FUNCTIONAL_TESTS=false export GOAL="install" # -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1" # This could be removed once the ABI change warning does not show up by default -export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi --enable-werror --with-gui=no" +export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi" diff --git a/ci/test/00_setup_env_arm_host.sh b/ci/test/00_setup_env_arm_host.sh deleted file mode 100644 index 40d729797d..0000000000 --- a/ci/test/00_setup_env_arm_host.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2019 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C.UTF-8 - -export HOST=arm-linux-gnueabihf -# The host arch is unknown, so we run the tests through qemu. -# If the host is arm and wants to run the tests natively, it can set QEMU_USER_CMD to the empty string. -if [ -z ${QEMU_USER_CMD+x} ]; then export QEMU_USER_CMD="${QEMU_USER_CMD:-"qemu-arm -L /usr/arm-linux-gnueabihf/"}"; fi -export DPKG_ADD_ARCH="armhf" -export PACKAGES="python3-zmq libssl-dev libevent-dev bsdmainutils python3 libcurl4-openssl-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libminizip-dev zlib1g-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev" -if [ -n "$QEMU_USER_CMD" ]; then - # Likely cross-compiling, so install the needed gcc and qemu-user - export PACKAGES="$PACKAGES qemu-user" -fi -export CONTAINER_NAME=ci_arm_linux -# Use debian to avoid 404 apt errors when cross compiling -export DOCKER_NAME_TAG="debian:buster" -export USE_BUSY_BOX=false -export RUN_UNIT_TESTS=false -export RUN_FUNCTIONAL_TESTS=false -export GOAL="install" -export NO_DEPENDS=1 -export INSTALL_DB4="true" -# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1" -# This could be removed once the ABI change warning does not show up by default -export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi --enable-werror" diff --git a/ci/test/00_setup_env_i686.sh b/ci/test/00_setup_env_i686.sh new file mode 100644 index 0000000000..63068dc95d --- /dev/null +++ b/ci/test/00_setup_env_i686.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2019 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C.UTF-8 + +export HOST=i686-pc-linux-gnu +export DEP_OPTS="PROTOBUF=1" +export PACKAGES="g++-multilib python3-zmq" +export GOAL="install" +export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-bip70 --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" +export CONFIG_SHELL="/bin/dash" diff --git a/ci/test/00_setup_env_i686_centos.sh b/ci/test/00_setup_env_i686_centos.sh deleted file mode 100644 index 5688799f9e..0000000000 --- a/ci/test/00_setup_env_i686_centos.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2020 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C.UTF-8 - -export HOST=i686-pc-linux-gnu -export CONTAINER_NAME=ci_i686_centos_7 -export DOCKER_NAME_TAG=centos:7 -export DOCKER_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python36-zmq which patch lbzip2 dash" -export GOAL="install" -export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-reduce-exports" -export CONFIG_SHELL="/bin/dash" diff --git a/ci/test/00_setup_env_mac.sh b/ci/test/00_setup_env_mac.sh index c56b2ab676..f384ba9263 100644 --- a/ci/test/00_setup_env_mac.sh +++ b/ci/test/00_setup_env_mac.sh @@ -6,11 +6,10 @@ export LC_ALL=C.UTF-8 -export CONTAINER_NAME=ci_macos_cross -export HOST=x86_64-apple-darwin16 +export HOST=x86_64-apple-darwin14 export PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools" -export OSX_SDK=10.14 +export OSX_SDK=10.11 export RUN_UNIT_TESTS=false export RUN_FUNCTIONAL_TESTS=false export GOAL="deploy" -export BITCOIN_CONFIG="--enable-reduce-exports --enable-werror" +export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --enable-werror" diff --git a/ci/test/00_setup_env_mac_host.sh b/ci/test/00_setup_env_mac_host.sh deleted file mode 100644 index 7c78afcc0f..0000000000 --- a/ci/test/00_setup_env_mac_host.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2019 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C.UTF-8 - -export HOST=x86_64-apple-darwin16 -export PIP_PACKAGES="zmq" -export RUN_UNIT_TESTS=false -export RUN_FUNCTIONAL_TESTS=false -export GOAL="install" -export BITCOIN_CONFIG="--with-gui=qt5 --enable-reduce-exports --enable-werror" -# Run without depends -export NO_DEPENDS=1 -export OSX_SDK="" diff --git a/ci/test/00_setup_env_win64.sh b/ci/test/00_setup_env_win64.sh index a34933731c..1e04c4287a 100644 --- a/ci/test/00_setup_env_win64.sh +++ b/ci/test/00_setup_env_win64.sh @@ -6,7 +6,6 @@ export LC_ALL=C.UTF-8 -export CONTAINER_NAME=ci_win64 export HOST=x86_64-w64-mingw32 export PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64" export RUN_FUNCTIONAL_TESTS=false diff --git a/ci/test/03_before_install.sh b/ci/test/03_before_install.sh index e939b9eeeb..5086114ba1 100755 --- a/ci/test/03_before_install.sh +++ b/ci/test/03_before_install.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Copyright (c) 2018-2019 The Bitcoin Core developers +# Copyright (c) 2018 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/ci/test/04_install.sh b/ci/test/04_install.sh index 0c526ef3b7..54d7a9b814 100755 --- a/ci/test/04_install.sh +++ b/ci/test/04_install.sh @@ -1,107 +1,50 @@ #!/usr/bin/env bash # -# Copyright (c) 2018-2020 The Bitcoin Core developers +# Copyright (c) 2018 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. export LC_ALL=C.UTF-8 -if [[ $DOCKER_NAME_TAG == centos* ]]; then - export LC_ALL=en_US.utf8 -fi -if [[ $QEMU_USER_CMD == qemu-s390* ]]; then - export LC_ALL=C -fi +mkdir -p "${BASE_SCRATCH_DIR}" +ccache echo "Creating ccache dir if it didn't already exist" -if [ "$TRAVIS_OS_NAME" == "osx" ]; then - export PATH="/usr/local/opt/ccache/libexec:$PATH" - ${CI_RETRY_EXE} pip3 install $PIP_PACKAGES +if [ ! -d ${DIR_QA_ASSETS} ]; then + git clone https://github.com/bitcoin-core/qa-assets ${DIR_QA_ASSETS} fi +export DIR_FUZZ_IN=${DIR_QA_ASSETS}/fuzz_seed_corpus/ -mkdir -p "${BASE_SCRATCH_DIR}" -mkdir -p "${CCACHE_DIR}" - -export ASAN_OPTIONS="detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1" -export LSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/lsan" -export TSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/tsan:log_path=${BASE_SCRATCH_DIR}/sanitizer-output/tsan" -export UBSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1:report_error_type=1" -env | grep -E '^(BITCOIN_CONFIG|BASE_|QEMU_|CCACHE_|WINEDEBUG|LC_ALL|BOOST_TEST_RANDOM|CONFIG_SHELL|(ASAN|LSAN|TSAN|UBSAN)_OPTIONS)' | tee /tmp/env +mkdir -p "${BASE_BUILD_DIR}/sanitizer-output/" +export ASAN_OPTIONS="" +export LSAN_OPTIONS="suppressions=${BASE_BUILD_DIR}/test/sanitizer_suppressions/lsan" +export TSAN_OPTIONS="suppressions=${BASE_BUILD_DIR}/test/sanitizer_suppressions/tsan:log_path=${BASE_BUILD_DIR}/sanitizer-output/tsan" +export UBSAN_OPTIONS="suppressions=${BASE_BUILD_DIR}/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1" +env | grep -E '^(BITCOIN_CONFIG|CCACHE_|WINEDEBUG|LC_ALL|BOOST_TEST_RANDOM|CONFIG_SHELL|(ASAN|LSAN|TSAN|UBSAN)_OPTIONS)' | tee /tmp/env if [[ $HOST = *-mingw32 ]]; then DOCKER_ADMIN="--cap-add SYS_ADMIN" elif [[ $BITCOIN_CONFIG = *--with-sanitizers=*address* ]]; then # If ran with (ASan + LSan), Docker needs access to ptrace (https://github.com/google/sanitizers/issues/764) DOCKER_ADMIN="--cap-add SYS_PTRACE" fi -export P_CI_DIR="$PWD" - -if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then +if [ -z "$RUN_CI_ON_HOST" ]; then echo "Creating $DOCKER_NAME_TAG container to run in" ${CI_RETRY_EXE} docker pull "$DOCKER_NAME_TAG" - DOCKER_ID=$(docker run $DOCKER_ADMIN -idt \ - --mount type=bind,src=$BASE_ROOT_DIR,dst=/ro_base,readonly \ - --mount type=bind,src=$CCACHE_DIR,dst=$CCACHE_DIR \ - --mount type=bind,src=$DEPENDS_DIR,dst=$DEPENDS_DIR \ - -w $BASE_ROOT_DIR \ - --env-file /tmp/env \ - --name $CONTAINER_NAME \ - $DOCKER_NAME_TAG) + DOCKER_ID=$(docker run $DOCKER_ADMIN -idt --mount type=bind,src=$BASE_BUILD_DIR,dst=$BASE_BUILD_DIR --mount type=bind,src=$CCACHE_DIR,dst=$CCACHE_DIR -w $BASE_BUILD_DIR --env-file /tmp/env $DOCKER_NAME_TAG) DOCKER_EXEC () { - docker exec $DOCKER_ID bash -c "export PATH=$BASE_SCRATCH_DIR/bins/:\$PATH && cd $P_CI_DIR && $*" + docker exec $DOCKER_ID bash -c "cd $PWD && $*" } else echo "Running on host system without docker wrapper" DOCKER_EXEC () { - bash -c "export PATH=$BASE_SCRATCH_DIR/bins/:\$PATH && cd $P_CI_DIR && $*" + bash -c "cd $PWD && $*" } fi -if [ -n "$DPKG_ADD_ARCH" ]; then - DOCKER_EXEC dpkg --add-architecture "$DPKG_ADD_ARCH" -fi +DOCKER_EXEC free -m -h +DOCKER_EXEC echo "Number of CPUs \(nproc\): $(nproc)" -if [[ $DOCKER_NAME_TAG == centos* ]]; then - ${CI_RETRY_EXE} DOCKER_EXEC yum -y install epel-release - ${CI_RETRY_EXE} DOCKER_EXEC yum -y install $DOCKER_PACKAGES $PACKAGES -elif [ "$CI_USE_APT_INSTALL" != "no" ]; then - ${CI_RETRY_EXE} DOCKER_EXEC apt-get update - ${CI_RETRY_EXE} DOCKER_EXEC apt-get install --no-install-recommends --no-upgrade -y $PACKAGES $DOCKER_PACKAGES -fi +${CI_RETRY_EXE} DOCKER_EXEC apt-get update +${CI_RETRY_EXE} DOCKER_EXEC apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES $DOCKER_PACKAGES -if [ "$TRAVIS_OS_NAME" == "osx" ]; then - top -l 1 -s 0 | awk ' /PhysMem/ {print}' - echo "Number of CPUs: $(sysctl -n hw.logicalcpu)" -else - DOCKER_EXEC free -m -h - DOCKER_EXEC echo "Number of CPUs \(nproc\):" \$\(nproc\) - DOCKER_EXEC echo $(lscpu | grep Endian) - DOCKER_EXEC echo "Free disk space:" - DOCKER_EXEC df -h -fi - -if [ ! -d ${DIR_QA_ASSETS} ]; then - if [ "$RUN_FUZZ_TESTS" = "true" ]; then - DOCKER_EXEC git clone https://github.com/bitcoin-core/qa-assets ${DIR_QA_ASSETS} - fi -fi -export DIR_FUZZ_IN=${DIR_QA_ASSETS}/fuzz_seed_corpus/ - -DOCKER_EXEC mkdir -p "${BASE_SCRATCH_DIR}/sanitizer-output/" - -if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then - echo "Create $BASE_ROOT_DIR" - DOCKER_EXEC rsync -a /ro_base/ $BASE_ROOT_DIR -fi - -if [ "$USE_BUSY_BOX" = "true" ]; then - echo "Setup to use BusyBox utils" - DOCKER_EXEC mkdir -p $BASE_SCRATCH_DIR/bins/ - # tar excluded for now because it requires passing in the exact archive type in ./depends (fixed in later BusyBox version) - # find excluded for now because it does not recognize the -delete option in ./depends (fixed in later BusyBox version) - # ar excluded for now because it does not recognize the -q option in ./depends (unknown if fixed) - # shellcheck disable=SC1010 - DOCKER_EXEC for util in \$\(busybox --list \| grep -v "^ar$" \| grep -v "^tar$" \| grep -v "^find$"\)\; do ln -s \$\(command -v busybox\) $BASE_SCRATCH_DIR/bins/\$util\; done - # Print BusyBox version - DOCKER_EXEC patch --help -fi diff --git a/ci/test/05_before_script.sh b/ci/test/05_before_script.sh index 835f80a32c..516d3fc042 100755 --- a/ci/test/05_before_script.sh +++ b/ci/test/05_before_script.sh @@ -1,37 +1,24 @@ #!/usr/bin/env bash # -# Copyright (c) 2018-2019 The Bitcoin Core developers +# Copyright (c) 2018 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. export LC_ALL=C.UTF-8 -# Make sure default datadir does not exist and is never read by creating a dummy file -if [ "$TRAVIS_OS_NAME" == "osx" ]; then - echo > $HOME/Library/Application\ Support/Verium -else - DOCKER_EXEC echo \> \$HOME/.verium -fi +DOCKER_EXEC echo \> \$HOME/.bitcoin # Make sure default datadir does not exist and is never read by creating a dummy file -DOCKER_EXEC mkdir -p ${DEPENDS_DIR}/SDKs ${DEPENDS_DIR}/sdk-sources +mkdir -p depends/SDKs depends/sdk-sources -if [ -n "$OSX_SDK" ] && [ ! -f ${DEPENDS_DIR}/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then - curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o ${DEPENDS_DIR}/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz +if [ -n "$OSX_SDK" ] && [ ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then + curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz fi -if [ -n "$OSX_SDK" ] && [ -f ${DEPENDS_DIR}/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then - DOCKER_EXEC tar -C ${DEPENDS_DIR}/SDKs -xf ${DEPENDS_DIR}/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz +if [ -n "$OSX_SDK" ] && [ -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then + tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz fi if [[ $HOST = *-mingw32 ]]; then DOCKER_EXEC update-alternatives --set $HOST-g++ \$\(which $HOST-g++-posix\) fi if [ -z "$NO_DEPENDS" ]; then - if [[ $DOCKER_NAME_TAG == centos* ]]; then - # CentOS has problems building the depends if the config shell is not explicitly set - # (i.e. for libevent a Makefile with an empty SHELL variable is generated, leading to - # an error as the first command is executed) - SHELL_OPTS="CONFIG_SHELL=/bin/bash" - else - SHELL_OPTS="CONFIG_SHELL=" - fi - DOCKER_EXEC $SHELL_OPTS make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS -fi \ No newline at end of file + DOCKER_EXEC CONFIG_SHELL= make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS +fi diff --git a/ci/test/06_script_a.sh b/ci/test/06_script_a.sh index cb847e5f50..eb6ade7919 100755 --- a/ci/test/06_script_a.sh +++ b/ci/test/06_script_a.sh @@ -1,53 +1,46 @@ #!/usr/bin/env bash # -# Copyright (c) 2018-2019 The Bitcoin Core developers +# Copyright (c) 2018 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. export LC_ALL=C.UTF-8 -BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$DEPENDS_DIR/$HOST --bindir=$BASE_OUTDIR/bin --libdir=$BASE_OUTDIR/lib" +BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$BASE_BUILD_DIR/depends/$HOST --bindir=$BASE_OUTDIR/bin --libdir=$BASE_OUTDIR/lib" if [ -z "$NO_DEPENDS" ]; then DOCKER_EXEC ccache --max-size=$CCACHE_SIZE fi -if [ "$INSTALL_DB4" = "true" ]; then - BEGIN_FOLD db4 - DOCKER_EXEC ./contrib/install_db4.sh $DEPENDS_DIR > /dev/null # only error log - BITCOIN_CONFIG_ALL+=" BDB_LIBS=\"-L${DEPENDS_DIR}/db4/lib -ldb_cxx-4.8\" BDB_CFLAGS=\"-I${DEPENDS_DIR}/db4/include\"" - END_FOLD -fi - BEGIN_FOLD autogen if [ -n "$CONFIG_SHELL" ]; then - DOCKER_EXEC "$CONFIG_SHELL" -c "./autogen.sh" + DOCKER_EXEC "$CONFIG_SHELL" -c "./autogen.sh" else DOCKER_EXEC ./autogen.sh fi END_FOLD -DOCKER_EXEC mkdir -p build -export P_CI_DIR="$P_CI_DIR/build" +mkdir -p build +cd build || (echo "could not enter build directory"; exit 1) BEGIN_FOLD configure -DOCKER_EXEC ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( (DOCKER_EXEC cat config.log) && false) +DOCKER_EXEC ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false) END_FOLD BEGIN_FOLD distdir -# Create folder on host and docker, so that `cd` works -mkdir -p "verium-$HOST" DOCKER_EXEC make distdir VERSION=$HOST END_FOLD -export P_CI_DIR="$P_CI_DIR/verium-$HOST" +cd "bitcoin-$HOST" || (echo "could not enter distdir bitcoin-$HOST"; exit 1) BEGIN_FOLD configure -DOCKER_EXEC ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( (DOCKER_EXEC cat config.log) && false) +DOCKER_EXEC ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false) END_FOLD set -o errtrace -trap 'DOCKER_EXEC "cat ${BASE_SCRATCH_DIR}/sanitizer-output/* 2> /dev/null"' ERR +trap 'DOCKER_EXEC "cat ${BASE_BUILD_DIR}/sanitizer-output/* 2> /dev/null"' ERR BEGIN_FOLD build DOCKER_EXEC make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && DOCKER_EXEC make $GOAL V=1 ; false ) END_FOLD + +cd ${BASE_BUILD_DIR} || (echo "could not enter travis build dir $BASE_BUILD_DIR"; exit 1) diff --git a/ci/test/06_script_b.sh b/ci/test/06_script_b.sh index cde531ab81..ea7beae85f 100755 --- a/ci/test/06_script_b.sh +++ b/ci/test/06_script_b.sh @@ -1,31 +1,16 @@ #!/usr/bin/env bash # -# Copyright (c) 2018-2019 The Bitcoin Core developers +# Copyright (c) 2018 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. export LC_ALL=C.UTF-8 -if [ -n "$QEMU_USER_CMD" ]; then - BEGIN_FOLD wrap-qemu - # Generate all binaries, so that they can be wrapped - DOCKER_EXEC make $MAKEJOBS -C src/secp256k1 VERBOSE=1 - DOCKER_EXEC make $MAKEJOBS -C src/univalue VERBOSE=1 - DOCKER_EXEC "${BASE_ROOT_DIR}/ci/test/wrap-qemu.sh" - END_FOLD -fi - -bash -c "${CI_WAIT}" & # Print dots in case the tests take a long time to run +cd "build/bitcoin-$HOST" || (echo "could not enter distdir build/bitcoin-$HOST"; exit 1) if [ "$RUN_UNIT_TESTS" = "true" ]; then BEGIN_FOLD unit-tests - DOCKER_EXEC LD_LIBRARY_PATH=$DEPENDS_DIR/$HOST/lib make $MAKEJOBS check VERBOSE=1 - END_FOLD -fi - -if [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]; then - BEGIN_FOLD unit-tests-seq - DOCKER_EXEC LD_LIBRARY_PATH=$DEPENDS_DIR/$HOST/lib "${BASE_ROOT_DIR}/build/verium-*/src/test/test_bitcoin" --catch_system_errors=no -l test_suite + DOCKER_EXEC LD_LIBRARY_PATH=$BASE_BUILD_DIR/depends/$HOST/lib make $MAKEJOBS check VERBOSE=1 END_FOLD fi @@ -33,4 +18,12 @@ if [ "$RUN_FUNCTIONAL_TESTS" = "true" ]; then BEGIN_FOLD functional-tests DOCKER_EXEC test/functional/test_runner.py --ci $MAKEJOBS --tmpdirprefix "${BASE_SCRATCH_DIR}/test_runner/" --ansi --combinedlogslen=4000 ${TEST_RUNNER_EXTRA} --quiet --failfast END_FOLD -fi \ No newline at end of file +fi + +if [ "$RUN_FUZZ_TESTS" = "true" ]; then + BEGIN_FOLD fuzz-tests + DOCKER_EXEC test/fuzz/test_runner.py -l DEBUG ${DIR_FUZZ_IN} + END_FOLD +fi + +cd ${BASE_BUILD_DIR} || (echo "could not enter travis build dir $BASE_BUILD_DIR"; exit 1) diff --git a/ci/test/wrap-qemu.sh b/ci/test/wrap-qemu.sh deleted file mode 100755 index f1d3088748..0000000000 --- a/ci/test/wrap-qemu.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2018 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -export LC_ALL=C.UTF-8 - -for b_name in {"${BASE_OUTDIR}/bin"/*,src/secp256k1/*tests,src/univalue/{no_nul,test_json,unitester,object}}; do - # shellcheck disable=SC2044 - for b in $(find "${BASE_ROOT_DIR}" -executable -type f -name $(basename $b_name)); do - echo "Wrap $b ..." - mv "$b" "${b}_orig" - echo '#!/usr/bin/env bash' > "$b" - echo "$QEMU_USER_CMD \"${b}_orig\" \"\$@\"" >> "$b" - chmod +x "$b" - done -done From b7c69d8e948200ac7437c52e0761066755b0d31d Mon Sep 17 00:00:00 2001 From: Matthieu 'JP' DERASSE Date: Mon, 11 May 2020 23:35:07 +0200 Subject: [PATCH 083/388] Finishing renaming --- Makefile.am | 15 - build-aux/m4/bitcoin_qt.m4 | 4 +- configure.ac | 6 - doc/Doxyfile.in | 2460 ----------------- doc/JSON-RPC-interface.md | 38 +- doc/README.md | 63 +- doc/README_doxygen.md | 15 - doc/README_osx.md | 97 + doc/README_windows.txt | 14 +- doc/REST-interface.md | 60 +- doc/assets-attribution.md | 2 +- doc/benchmarking.md | 57 +- doc/bips.md | 40 - doc/bitcoin_logo_doxygen.png | Bin 3272 -> 0 bytes doc/build-freebsd.md | 6 +- doc/build-netbsd.md | 56 +- doc/build-openbsd.md | 28 +- doc/build-osx.md | 231 +- doc/build-unix.md | 323 ++- doc/build-windows.md | 104 +- doc/dependencies.md | 55 +- doc/descriptors.md | 195 -- doc/developer-notes.md | 978 ------- doc/dnsseed-policy.md | 17 +- doc/files.md | 44 +- doc/fuzzing.md | 97 - doc/gitian-building.md | 4 - doc/init.md | 118 +- doc/man/Makefile.am | 10 +- doc/man/{bitcoin-cli.1 => verium-cli.1} | 30 +- doc/man/{bitcoin-qt.1 => verium-qt.1} | 20 +- doc/man/{bitcoin-tx.1 => verium-tx.1} | 22 +- doc/man/{bitcoin-wallet.1 => verium-wallet.1} | 18 +- doc/man/{bitcoind.1 => veriumd.1} | 22 +- doc/productivity.md | 8 +- doc/psbt.md | 143 - doc/rapidcheck.md | 18 +- doc/reduce-memory.md | 12 +- doc/reduce-traffic.md | 17 +- doc/release-notes.md | 129 +- doc/release-notes/.empty | 0 doc/release-notes/release-notes-0.10.0.md | 762 ----- doc/release-notes/release-notes-0.10.1.md | 143 - doc/release-notes/release-notes-0.10.2.md | 86 - doc/release-notes/release-notes-0.10.3.md | 165 -- doc/release-notes/release-notes-0.10.4.md | 172 -- doc/release-notes/release-notes-0.11.0.md | 505 ---- doc/release-notes/release-notes-0.11.1.md | 172 -- doc/release-notes/release-notes-0.11.2.md | 217 -- doc/release-notes/release-notes-0.12.0.md | 894 ------ doc/release-notes/release-notes-0.12.1.md | 198 -- doc/release-notes/release-notes-0.13.0.md | 868 ------ doc/release-notes/release-notes-0.13.1.md | 410 --- doc/release-notes/release-notes-0.13.2.md | 178 -- doc/release-notes/release-notes-0.14.0.md | 873 ------ doc/release-notes/release-notes-0.14.1.md | 143 - doc/release-notes/release-notes-0.14.2.md | 102 - doc/release-notes/release-notes-0.14.3.md | 118 - doc/release-notes/release-notes-0.15.0.1.md | 87 - doc/release-notes/release-notes-0.15.0.md | 878 ------ doc/release-notes/release-notes-0.15.1.md | 277 -- doc/release-notes/release-notes-0.15.2.md | 118 - doc/release-notes/release-notes-0.16.0.md | 720 ----- doc/release-notes/release-notes-0.16.1.md | 145 - doc/release-notes/release-notes-0.16.2.md | 116 - doc/release-notes/release-notes-0.16.3.md | 88 - doc/release-notes/release-notes-0.17.0.1.md | 41 - doc/release-notes/release-notes-0.17.0.md | 1105 -------- doc/release-notes/release-notes-0.17.1.md | 168 -- doc/release-notes/release-notes-0.18.0.md | 1224 -------- doc/release-notes/release-notes-0.18.1.md | 136 - doc/release-notes/release-notes-0.19.0.1.md | 1089 -------- doc/release-notes/release-notes-0.19.0.md | 6 - doc/release-notes/release-notes-0.3.12.md | 13 - doc/release-notes/release-notes-0.3.13.md | 26 - doc/release-notes/release-notes-0.3.14.md | 11 - doc/release-notes/release-notes-0.3.15.md | 6 - doc/release-notes/release-notes-0.3.16.md | 1 - doc/release-notes/release-notes-0.3.17.md | 12 - doc/release-notes/release-notes-0.3.18.md | 11 - doc/release-notes/release-notes-0.3.19.md | 9 - doc/release-notes/release-notes-0.3.20.1.md | 1 - doc/release-notes/release-notes-0.3.20.2.md | 17 - doc/release-notes/release-notes-0.3.20.md | 22 - doc/release-notes/release-notes-0.3.21.md | 20 - doc/release-notes/release-notes-0.3.22.md | 16 - doc/release-notes/release-notes-0.3.23.md | 10 - doc/release-notes/release-notes-0.3.24.md | 20 - doc/release-notes/release-notes-0.4.0.md | 70 - doc/release-notes/release-notes-0.4.1.md | 38 - doc/release-notes/release-notes-0.4.2.md | 1 - doc/release-notes/release-notes-0.4.3.md | 21 - doc/release-notes/release-notes-0.4.4.md | 30 - doc/release-notes/release-notes-0.4.5.md | 1 - doc/release-notes/release-notes-0.4.6.md | 37 - doc/release-notes/release-notes-0.5.0.md | 70 - doc/release-notes/release-notes-0.5.1.md | 43 - doc/release-notes/release-notes-0.5.2.md | 22 - doc/release-notes/release-notes-0.5.3.md | 42 - doc/release-notes/release-notes-0.5.4.md | 39 - doc/release-notes/release-notes-0.5.5.md | 37 - doc/release-notes/release-notes-0.6.0.md | 138 - doc/release-notes/release-notes-0.6.1.md | 2 - doc/release-notes/release-notes-0.6.2.md | 50 - doc/release-notes/release-notes-0.6.3.md | 29 - doc/release-notes/release-notes-0.7.0.md | 169 -- doc/release-notes/release-notes-0.7.1.md | 110 - doc/release-notes/release-notes-0.7.2.md | 68 - doc/release-notes/release-notes-0.8.0.md | 139 - doc/release-notes/release-notes-0.8.1.md | 22 - doc/release-notes/release-notes-0.8.2.md | 137 - doc/release-notes/release-notes-0.8.3.md | 18 - doc/release-notes/release-notes-0.8.4.md | 83 - doc/release-notes/release-notes-0.8.5.md | 44 - doc/release-notes/release-notes-0.8.6.md | 66 - doc/release-notes/release-notes-0.9.0.md | 411 --- doc/release-notes/release-notes-0.9.1.md | 53 - doc/release-notes/release-notes-0.9.2.1.md | 207 -- doc/release-notes/release-notes-0.9.2.md | 207 -- doc/release-notes/release-notes-0.9.3.md | 101 - doc/release-notes/release-notes-0.9.4.md | 95 - doc/release-notes/release-notes-0.9.5.md | 60 - doc/release-process.md | 391 --- doc/shared-libraries.md | 6 +- doc/tor.md | 101 +- doc/translation_process.md | 109 - doc/translation_strings_policy.md | 36 +- doc/{bitcoin-conf.md => verium-conf.md} | 16 +- doc/zmq.md | 41 +- share/examples/{bitcoin.conf => verium.conf} | 28 +- share/pixmaps/addressbook16.bmp | Bin 0 -> 1334 bytes share/pixmaps/addressbook16mask.bmp | Bin 0 -> 126 bytes share/pixmaps/addressbook20.bmp | Bin 0 -> 1478 bytes share/pixmaps/addressbook20mask.bmp | Bin 0 -> 142 bytes share/pixmaps/bitcoin-bc.ico | Bin 0 -> 22486 bytes share/pixmaps/bitcoin.ico | Bin 68756 -> 306398 bytes share/pixmaps/bitcoin32.xpm | 364 ++- share/pixmaps/bitcoin80.xpm | 292 ++ share/pixmaps/check.ico | Bin 0 -> 766 bytes share/pixmaps/favicon.ico | Bin 0 -> 2550 bytes share/pixmaps/nsis-header.bmp | Bin 25820 -> 34254 bytes share/pixmaps/nsis-wizard.bmp | Bin 154544 -> 206038 bytes share/pixmaps/send16.bmp | Bin 0 -> 1334 bytes share/pixmaps/send16mask.bmp | Bin 0 -> 126 bytes share/pixmaps/send16masknoshadow.bmp | Bin 0 -> 126 bytes share/pixmaps/send20.bmp | Bin 0 -> 1478 bytes share/pixmaps/send20mask.bmp | Bin 0 -> 142 bytes share/qt/Info.plist.in | 20 +- share/qt/extract_strings_qt.py | 4 +- share/rpcauth/rpcauth.py | 2 +- share/setup.nsi.in | 12 +- src/qt/locale/bitcoin_ar.ts | 2 +- src/qt/locale/bitcoin_ca.ts | 4 +- src/qt/locale/bitcoin_cs.ts | 4 +- src/qt/locale/bitcoin_cy.ts | 4 +- src/qt/locale/bitcoin_da.ts | 4 +- src/qt/locale/bitcoin_de.ts | 4 +- src/qt/locale/bitcoin_el.ts | 4 +- src/qt/locale/bitcoin_en.ts | 2 +- src/qt/locale/bitcoin_en_GB.ts | 4 +- src/qt/locale/bitcoin_eo.ts | 2 +- src/qt/locale/bitcoin_es.ts | 4 +- src/qt/locale/bitcoin_es_CL.ts | 4 +- src/qt/locale/bitcoin_es_CO.ts | 4 +- src/qt/locale/bitcoin_es_DO.ts | 4 +- src/qt/locale/bitcoin_es_MX.ts | 4 +- src/qt/locale/bitcoin_es_VE.ts | 4 +- src/qt/locale/bitcoin_et.ts | 4 +- src/qt/locale/bitcoin_eu.ts | 4 +- src/qt/locale/bitcoin_fa.ts | 2 +- src/qt/locale/bitcoin_fi.ts | 4 +- src/qt/locale/bitcoin_fil.ts | 4 +- src/qt/locale/bitcoin_fr.ts | 4 +- src/qt/locale/bitcoin_he.ts | 2 +- src/qt/locale/bitcoin_hi.ts | 2 +- src/qt/locale/bitcoin_hr.ts | 4 +- src/qt/locale/bitcoin_hu.ts | 4 +- src/qt/locale/bitcoin_id.ts | 4 +- src/qt/locale/bitcoin_is.ts | 4 +- src/qt/locale/bitcoin_it.ts | 4 +- src/qt/locale/bitcoin_ja.ts | 2 +- src/qt/locale/bitcoin_ka.ts | 2 +- src/qt/locale/bitcoin_ko.ts | 2 +- src/qt/locale/bitcoin_lt.ts | 4 +- src/qt/locale/bitcoin_ml.ts | 2 +- src/qt/locale/bitcoin_ms.ts | 4 +- src/qt/locale/bitcoin_nb.ts | 4 +- src/qt/locale/bitcoin_nl.ts | 4 +- src/qt/locale/bitcoin_pl.ts | 4 +- src/qt/locale/bitcoin_pt.ts | 4 +- src/qt/locale/bitcoin_pt_BR.ts | 4 +- src/qt/locale/bitcoin_ro.ts | 4 +- src/qt/locale/bitcoin_ru.ts | 2 +- src/qt/locale/bitcoin_sk.ts | 4 +- src/qt/locale/bitcoin_sl.ts | 4 +- src/qt/locale/bitcoin_sr.ts | 2 +- src/qt/locale/bitcoin_sr@latin.ts | 2 +- src/qt/locale/bitcoin_sv.ts | 4 +- src/qt/locale/bitcoin_szl.ts | 4 +- src/qt/locale/bitcoin_ta.ts | 2 +- src/qt/locale/bitcoin_te.ts | 2 +- src/qt/locale/bitcoin_tr.ts | 4 +- src/qt/locale/bitcoin_uk.ts | 2 +- src/qt/locale/bitcoin_vi.ts | 4 +- src/qt/locale/bitcoin_zh_CN.ts | 2 +- src/qt/locale/bitcoin_zh_HK.ts | 2 +- src/qt/locale/bitcoin_zh_TW.ts | 2 +- 207 files changed, 1519 insertions(+), 20724 deletions(-) delete mode 100644 doc/Doxyfile.in delete mode 100644 doc/README_doxygen.md create mode 100644 doc/README_osx.md delete mode 100644 doc/bips.md delete mode 100644 doc/bitcoin_logo_doxygen.png delete mode 100644 doc/descriptors.md delete mode 100644 doc/developer-notes.md delete mode 100644 doc/fuzzing.md delete mode 100644 doc/gitian-building.md rename doc/man/{bitcoin-cli.1 => verium-cli.1} (81%) rename doc/man/{bitcoin-qt.1 => verium-qt.1} (97%) rename doc/man/{bitcoin-tx.1 => verium-tx.1} (83%) rename doc/man/{bitcoin-wallet.1 => verium-wallet.1} (74%) rename doc/man/{bitcoind.1 => veriumd.1} (96%) delete mode 100644 doc/psbt.md create mode 100644 doc/release-notes/.empty delete mode 100644 doc/release-notes/release-notes-0.10.0.md delete mode 100644 doc/release-notes/release-notes-0.10.1.md delete mode 100644 doc/release-notes/release-notes-0.10.2.md delete mode 100644 doc/release-notes/release-notes-0.10.3.md delete mode 100644 doc/release-notes/release-notes-0.10.4.md delete mode 100644 doc/release-notes/release-notes-0.11.0.md delete mode 100644 doc/release-notes/release-notes-0.11.1.md delete mode 100644 doc/release-notes/release-notes-0.11.2.md delete mode 100644 doc/release-notes/release-notes-0.12.0.md delete mode 100644 doc/release-notes/release-notes-0.12.1.md delete mode 100644 doc/release-notes/release-notes-0.13.0.md delete mode 100644 doc/release-notes/release-notes-0.13.1.md delete mode 100644 doc/release-notes/release-notes-0.13.2.md delete mode 100644 doc/release-notes/release-notes-0.14.0.md delete mode 100644 doc/release-notes/release-notes-0.14.1.md delete mode 100644 doc/release-notes/release-notes-0.14.2.md delete mode 100644 doc/release-notes/release-notes-0.14.3.md delete mode 100644 doc/release-notes/release-notes-0.15.0.1.md delete mode 100644 doc/release-notes/release-notes-0.15.0.md delete mode 100644 doc/release-notes/release-notes-0.15.1.md delete mode 100644 doc/release-notes/release-notes-0.15.2.md delete mode 100644 doc/release-notes/release-notes-0.16.0.md delete mode 100644 doc/release-notes/release-notes-0.16.1.md delete mode 100644 doc/release-notes/release-notes-0.16.2.md delete mode 100644 doc/release-notes/release-notes-0.16.3.md delete mode 100644 doc/release-notes/release-notes-0.17.0.1.md delete mode 100644 doc/release-notes/release-notes-0.17.0.md delete mode 100644 doc/release-notes/release-notes-0.17.1.md delete mode 100644 doc/release-notes/release-notes-0.18.0.md delete mode 100644 doc/release-notes/release-notes-0.18.1.md delete mode 100644 doc/release-notes/release-notes-0.19.0.1.md delete mode 100644 doc/release-notes/release-notes-0.19.0.md delete mode 100644 doc/release-notes/release-notes-0.3.12.md delete mode 100644 doc/release-notes/release-notes-0.3.13.md delete mode 100644 doc/release-notes/release-notes-0.3.14.md delete mode 100644 doc/release-notes/release-notes-0.3.15.md delete mode 100644 doc/release-notes/release-notes-0.3.16.md delete mode 100644 doc/release-notes/release-notes-0.3.17.md delete mode 100644 doc/release-notes/release-notes-0.3.18.md delete mode 100644 doc/release-notes/release-notes-0.3.19.md delete mode 100644 doc/release-notes/release-notes-0.3.20.1.md delete mode 100644 doc/release-notes/release-notes-0.3.20.2.md delete mode 100644 doc/release-notes/release-notes-0.3.20.md delete mode 100644 doc/release-notes/release-notes-0.3.21.md delete mode 100644 doc/release-notes/release-notes-0.3.22.md delete mode 100644 doc/release-notes/release-notes-0.3.23.md delete mode 100644 doc/release-notes/release-notes-0.3.24.md delete mode 100644 doc/release-notes/release-notes-0.4.0.md delete mode 100644 doc/release-notes/release-notes-0.4.1.md delete mode 100644 doc/release-notes/release-notes-0.4.2.md delete mode 100644 doc/release-notes/release-notes-0.4.3.md delete mode 100644 doc/release-notes/release-notes-0.4.4.md delete mode 100644 doc/release-notes/release-notes-0.4.5.md delete mode 100644 doc/release-notes/release-notes-0.4.6.md delete mode 100644 doc/release-notes/release-notes-0.5.0.md delete mode 100644 doc/release-notes/release-notes-0.5.1.md delete mode 100644 doc/release-notes/release-notes-0.5.2.md delete mode 100644 doc/release-notes/release-notes-0.5.3.md delete mode 100644 doc/release-notes/release-notes-0.5.4.md delete mode 100644 doc/release-notes/release-notes-0.5.5.md delete mode 100644 doc/release-notes/release-notes-0.6.0.md delete mode 100644 doc/release-notes/release-notes-0.6.1.md delete mode 100644 doc/release-notes/release-notes-0.6.2.md delete mode 100644 doc/release-notes/release-notes-0.6.3.md delete mode 100644 doc/release-notes/release-notes-0.7.0.md delete mode 100644 doc/release-notes/release-notes-0.7.1.md delete mode 100644 doc/release-notes/release-notes-0.7.2.md delete mode 100644 doc/release-notes/release-notes-0.8.0.md delete mode 100644 doc/release-notes/release-notes-0.8.1.md delete mode 100644 doc/release-notes/release-notes-0.8.2.md delete mode 100644 doc/release-notes/release-notes-0.8.3.md delete mode 100644 doc/release-notes/release-notes-0.8.4.md delete mode 100644 doc/release-notes/release-notes-0.8.5.md delete mode 100644 doc/release-notes/release-notes-0.8.6.md delete mode 100644 doc/release-notes/release-notes-0.9.0.md delete mode 100644 doc/release-notes/release-notes-0.9.1.md delete mode 100644 doc/release-notes/release-notes-0.9.2.1.md delete mode 100644 doc/release-notes/release-notes-0.9.2.md delete mode 100644 doc/release-notes/release-notes-0.9.3.md delete mode 100644 doc/release-notes/release-notes-0.9.4.md delete mode 100644 doc/release-notes/release-notes-0.9.5.md delete mode 100644 doc/release-process.md delete mode 100644 doc/translation_process.md rename doc/{bitcoin-conf.md => verium-conf.md} (69%) rename share/examples/{bitcoin.conf => verium.conf} (86%) create mode 100755 share/pixmaps/addressbook16.bmp create mode 100755 share/pixmaps/addressbook16mask.bmp create mode 100755 share/pixmaps/addressbook20.bmp create mode 100755 share/pixmaps/addressbook20mask.bmp create mode 100755 share/pixmaps/bitcoin-bc.ico mode change 100644 => 100755 share/pixmaps/bitcoin.ico mode change 100644 => 100755 share/pixmaps/bitcoin32.xpm create mode 100755 share/pixmaps/bitcoin80.xpm create mode 100755 share/pixmaps/check.ico create mode 100755 share/pixmaps/favicon.ico mode change 100644 => 100755 share/pixmaps/nsis-header.bmp mode change 100644 => 100755 share/pixmaps/nsis-wizard.bmp create mode 100755 share/pixmaps/send16.bmp create mode 100755 share/pixmaps/send16mask.bmp create mode 100755 share/pixmaps/send16masknoshadow.bmp create mode 100755 share/pixmaps/send20.bmp create mode 100755 share/pixmaps/send20mask.bmp diff --git a/Makefile.am b/Makefile.am index 9c928a0776..8e4440ecb5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -292,21 +292,6 @@ CLEANFILES = $(OSX_DMG) $(BITCOIN_WIN_INSTALLER) DISTCHECK_CONFIGURE_FLAGS = --enable-man -doc/doxygen/.stamp: doc/Doxyfile FORCE - $(MKDIR_P) $(@D) - $(DOXYGEN) $^ - $(AM_V_at) touch $@ - -if HAVE_DOXYGEN -docs: doc/doxygen/.stamp -else -docs: - @echo "error: doxygen not found" -endif - -clean-docs: - rm -rf doc/doxygen - clean-local: clean-docs rm -rf coverage_percent.txt test_verium.coverage/ total.coverage/ test/tmp/ cache/ $(OSX_APP) rm -rf test/functional/__pycache__ test/functional/test_framework/__pycache__ test/cache share/rpcauth/__pycache__ diff --git a/build-aux/m4/bitcoin_qt.m4 b/build-aux/m4/bitcoin_qt.m4 index d579dc2ed5..b3086be0e5 100644 --- a/build-aux/m4/bitcoin_qt.m4 +++ b/build-aux/m4/bitcoin_qt.m4 @@ -7,7 +7,7 @@ dnl Output: If qt version is auto, set bitcoin_enable_qt to false. Else, exit. AC_DEFUN([BITCOIN_QT_FAIL],[ if test "x$bitcoin_qt_want_version" = xauto && test "x$bitcoin_qt_force" != xyes; then if test "x$bitcoin_enable_qt" != xno; then - AC_MSG_WARN([$1; bitcoin-qt frontend will not be built]) + AC_MSG_WARN([$1; verium-qt frontend will not be built]) fi bitcoin_enable_qt=no bitcoin_enable_qt_test=no @@ -54,7 +54,7 @@ AC_DEFUN([BITCOIN_QT_INIT],[ dnl enable qt support AC_ARG_WITH([gui], [AS_HELP_STRING([--with-gui@<:@=no|qt5|auto@:>@], - [build bitcoin-qt GUI (default=auto)])], + [build verium-qt GUI (default=auto)])], [ bitcoin_qt_want_version=$withval if test "x$bitcoin_qt_want_version" = xyes; then diff --git a/configure.ac b/configure.ac index 06ec3d636e..dba3024d3a 100644 --- a/configure.ac +++ b/configure.ac @@ -96,11 +96,6 @@ AC_PATH_PROG(HEXDUMP,hexdump) AC_PATH_TOOL(READELF, readelf) AC_PATH_TOOL(CPPFILT, c++filt) AC_PATH_TOOL(OBJCOPY, objcopy) -AC_PATH_PROG(DOXYGEN, doxygen) -if test -z "$DOXYGEN"; then - AC_MSG_WARN([Doxygen not found]) -fi -AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"]) AC_ARG_VAR(PYTHONPATH, Augments the default search path for python module files) @@ -1623,7 +1618,6 @@ AC_SUBST(PROTOBUF_LIBS) AC_SUBST(QR_LIBS) AC_CONFIG_FILES([Makefile src/Makefile doc/man/Makefile share/setup.nsi share/qt/Info.plist test/config.ini]) AC_CONFIG_FILES([contrib/devtools/split-debug.sh],[chmod +x contrib/devtools/split-debug.sh]) -AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([doc/Doxyfile])]) AC_CONFIG_LINKS([contrib/filter-lcov.py:contrib/filter-lcov.py]) AC_CONFIG_LINKS([test/functional/test_runner.py:test/functional/test_runner.py]) AC_CONFIG_LINKS([test/util/bitcoin-util-test.py:test/util/bitcoin-util-test.py]) diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in deleted file mode 100644 index cd7ccf80ab..0000000000 --- a/doc/Doxyfile.in +++ /dev/null @@ -1,2460 +0,0 @@ -# Doxyfile 1.8.12 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "Bitcoin Core" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = @PACKAGE_VERSION@ - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "P2P Digital Currency" - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = doc/bitcoin_logo_doxygen.png - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = doc/doxygen - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = YES - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 0. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 0 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = YES - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO, these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = src doc/README_doxygen.md - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, -# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.d \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.idl \ - *.odl \ - *.cs \ - *.php \ - *.php3 \ - *.inc \ - *.m \ - *.mm \ - *.dox \ - *.py \ - *.f90 \ - *.f \ - *.for \ - *.vhd \ - *.vhdl - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = src/leveldb \ - src/json \ - src/test \ - src/qt/test - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = boost \ - google - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = doc/README_doxygen.md - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.bitcoin.Bitcoin-Core - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.bitcoin.Bitcoin-Core - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://www.mathjax.org/mathjax - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /